diff --git a/app/build.gradle b/app/build.gradle index 099b9a62c7..4e4402af4b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,14 +43,8 @@ android { } defaultConfig { - vectorDrawables.useSupportLibrary = true multiDexEnabled true - javaCompileOptions { - annotationProcessorOptions { - arguments = [eventBusIndex: 'com.gh.EventBusIndex'] - } - } ndk { // 如果不添加 `arm64` 调用系统的 PackageManager 的方法读取安装包信息的时候会出现 native 层闪退,草 @@ -107,6 +101,12 @@ android { } } + kapt { + arguments { + arg("AROUTER_MODULE_NAME", project.name) + } + } + buildTypes { debug { debuggable true @@ -203,83 +203,40 @@ dependencies { testImplementation 'junit:junit:4.12' debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakcanary}" - debugImplementation "com.squareup.okhttp3:logging-interceptor:${okHttp}" + // debugImplementation "com.gu.android:toolargetool:${toolargetool}" // 需要使用调试时才启用 debugImplementation "com.github.nichbar:WhatTheStack:${whatTheStack}" debugImplementation "io.github.didi.dokit:dokitx:${dokit}" - implementation "androidx.core:core-ktx:${core}" - implementation "androidx.fragment:fragment-ktx:${fragment}" - implementation "androidx.multidex:multidex:${multiDex}" - implementation "androidx.appcompat:appcompat:${appCompat}" - implementation "androidx.cardview:cardview:${cardView}" - implementation "androidx.annotation:annotation:${annotation}" - implementation "androidx.constraintlayout:constraintlayout:${constraintLayout}" - implementation "androidx.recyclerview:recyclerview:${recyclerView}" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifeCycle" - implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifeCycle" - implementation "androidx.lifecycle:lifecycle-common-java8:$lifeCycle" - implementation "androidx.lifecycle:lifecycle-extensions:$lifeCycleExtensions" - implementation "androidx.room:room-runtime:${room}" - implementation "androidx.room:room-rxjava2:${room}" - implementation "androidx.core:core-ktx:${ktx}" - implementation "androidx.viewpager2:viewpager2:${viewpager2}" - implementation "androidx.webkit:webkit:${webkit}" - kapt "androidx.room:room-compiler:${room}" - implementation "com.google.android.material:material:${material}" + implementation "androidx.multidex:multidex:${multiDex}" + implementation "androidx.fragment:fragment-ktx:${fragment}" + + implementation "androidx.annotation:annotation:${annotation}" + + implementation "androidx.viewpager2:viewpager2:${viewpager2}" + kapt "androidx.room:room-compiler:${room}" implementation "com.kyleduo.switchbutton:library:${switchButton}" - implementation "com.facebook.fresco:fresco:${fresco}" - implementation "com.facebook.fresco:animated-gif-lite:${fresco}" - implementation "com.facebook.fresco:animated-drawable:${fresco}" - implementation "com.facebook.fresco:animated-webp:${fresco}" - implementation "com.facebook.fresco:webpsupport:${fresco}" - - implementation "com.squareup.okhttp3:okhttp:${okHttp}" - implementation "com.leon.channel:helper:${apkChannelPackage}" - implementation "com.squareup.retrofit2:retrofit:${retrofit}" - implementation "com.squareup.retrofit2:converter-gson:${retrofit}" // include gson 2.7 - implementation "com.squareup.retrofit2:adapter-rxjava2:${retrofit}" - implementation "com.j256.ormlite:ormlite-android:${ormlite}" implementation "com.j256.ormlite:ormlite-core:${ormlite}" implementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}" - implementation "org.greenrobot:eventbus:${eventbus}" - kapt "org.greenrobot:eventbus-annotation-processor:${eventbusApt}" - - implementation "io.reactivex.rxjava2:rxjava:${rxJava2}" - implementation "io.reactivex.rxjava2:rxandroid:${rxAndroid2}" - implementation "com.jakewharton.rxbinding2:rxbinding:${rxBinding2}" - - implementation "com.google.zxing:core:${zxing}" - implementation "com.google.zxing:android-core:${zxing}" - - implementation "com.daimajia.swipelayout:library:${swipeLayout}" - implementation "com.google.android:flexbox:${flexbox}" - implementation "pub.devrel:easypermissions:${easypermissions}" - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "com.contrarywind:Android-PickerView:${pickerView}" - implementation "com.scwang.smartrefresh:SmartRefreshLayout:${smartRefreshLayout}" implementation "net.cachapa.expandablelayout:expandablelayout:${expandableLayout}" // 用于比较 versionName 是大于小于或等于 implementation "com.g00fy2:versioncompare:${versioncompare}" - implementation "top.zibin:Luban:${luban}" - - implementation "com.squareup.picasso:picasso:${picasso}" - // for video streaming implementation("com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:$gsyVideo", { exclude module: "gsyvideoplayer-androidvideocache" @@ -291,38 +248,17 @@ dependencies { implementation "com.llew.huawei:verifier:${verifier}" - implementation "com.github.tbruyelle:rxpermissions:${rxPermissions}" - implementation "com.lg:skeleton:${skeleton}" - implementation "com.tencent.mm.opensdk:wechat-sdk-android-without-mta:${mta}" - implementation "com.github.nichbar:AndroidRomChecker:${romChecker}" - debugImplementation "com.github.nichbar.chucker:library:${chucker}" - releaseImplementation "com.github.nichbar.chucker:library-no-op:${chucker}" teaImplementation "com.bytedance.applog:RangersAppLog-Lite-cn:${bytedanceApplog}" implementation "com.aliyun.dpa:oss-android-sdk:${oss}" - implementation "com.airbnb.android:lottie:${lottie}" - implementation "net.lingala.zip4j:zip4j:${zip4j}" - implementation "io.sentry:sentry-android:4.3.0" - - implementation("com.github.piasy:BigImageViewer:${bigImageViewer}", { - exclude group: 'com.squareup.okhttp3' - exclude group: 'androidx.swiperefreshlayout' - exclude group: 'com.github.bumptech.glide' - exclude group: 'com.facebook.fresco' - }) - implementation "com.github.PhilJay:MPAndroidChart:${chart}" - - implementation "com.lahm.library:easy-protector-release:${easyProtector}" - implementation "com.github.hsiafan:apk-parser:${apkParser}" implementation "org.nanohttpd:nanohttpd:${nanohttpd}" - implementation "com.aliyun.openservices:aliyun-log-android-sdk:${aliyunLog}" implementation "com.lg:easyfloat:${easyFloat}" implementation "io.github.florent37:shapeofview:${shapeOfView}" @@ -333,13 +269,12 @@ dependencies { implementation "com.lg:gid:${gid}" - implementation "com.louiscad.splitties:splitties-fun-pack-android-base-with-views-dsl:${splitties}" - compileOnly "com.github.axen1314.lancet:lancet-base:${lancet_version}" + kapt "com.alibaba:arouter-compiler:$arouterVersion" - implementation project(':libraries:LGLibrary') - implementation project(':libraries:QQShare') - implementation project(':libraries:Matisse') + implementation (project(':module_common')) { + exclude group: 'androidx.swiperefreshlayout' + } } File propFile = file('sign.properties') if (propFile.exists()) { @@ -595,4 +530,4 @@ project.afterEvaluate { } } } -} +} \ No newline at end of file diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt index 7b697e4cb6..5338165eaf 100644 --- a/app/proguard-rules.txt +++ b/app/proguard-rules.txt @@ -14,8 +14,11 @@ } #--------- remove logs end ---------------- +# inline getter method +-allowaccessmodification + #--------- remove useless mtahelper class -------- --assumenosideeffects class com.gh.common.util.MtaHelper { +-assumenosideeffects class com.gh.gamecenter.core.utils.MtaHelper { public static void onEvent(...); public static void onEventWithTime(...); public static void onEventWithBasicDeviceInfo(...); @@ -65,6 +68,7 @@ -keep class com.gh.common.view.* {*;} -keep class com.gh.gamecenter.db.info.* {*;} -keep class com.gh.gamecenter.entity.* {*;} +-keep class com.gh.gamecenter.common.entity.* {*;} -keep class com.gh.gamecenter.qa.entity.* {*;} -keep class com.gh.gamecenter.retrofit.* {*;} -keep class com.gh.gamecenter.eventbus.* {*;} @@ -155,3 +159,12 @@ public static void directToSuggestion(...); } +# ARouter +-keep public class com.alibaba.android.arouter.routes.**{*;} +-keep public class com.alibaba.android.arouter.facade.**{*;} +-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} +# 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口 +-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider +# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现 +-keep class * implements com.alibaba.android.arouter.facade.template.IProvider + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 09456e3115..47a1f41388 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -735,6 +735,10 @@ android:name="com.gh.gamecenter.qa.subject.CommunitySubjectActivity" android:screenOrientation="portrait" /> + + : ToolBarAct mViewModel.setUploadVideoListener(this) mKeyboardHeightProvider = KeyboardHeightProvider(this) mRichEditor.post { mKeyboardHeightProvider?.start() } + mRichEditor.enableForceDark(NightModeUtils.isNightMode(this)) // 防止个别手机在Js里无法获取粘贴内容 mRichEditor.addJavascriptInterface(OnPasteListener(), "onPasteListener") mRichEditor.addJavascriptInterface(OnCursorChangeListener(), "OnCursorChangeListener") @@ -735,6 +740,14 @@ abstract class BaseRichEditorActivity : ToolBarAct abstract fun provideViewModel(): VM abstract fun getVideoGuideKey(): String + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + mRichEditor.enableForceDark(NightModeUtils.isNightMode(this)) + } + companion object { const val ELEMENT_NAME_BOLD = " b " const val ELEMENT_NAME_ITALIC = " i " diff --git a/app/src/main/java/com/gh/base/BaseRichEditorViewModel.kt b/app/src/main/java/com/gh/base/BaseRichEditorViewModel.kt index 86169f0a01..c632d1db8b 100644 --- a/app/src/main/java/com/gh/base/BaseRichEditorViewModel.kt +++ b/app/src/main/java/com/gh/base/BaseRichEditorViewModel.kt @@ -9,15 +9,17 @@ import android.text.TextUtils import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.runOnUiThread +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.entity.LocalVideoEntity import com.gh.gamecenter.entity.QuoteCountEntity import com.gh.gamecenter.qa.BbsType -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.retrofit.service.ApiService import com.gh.gamecenter.video.upload.OnUploadListener diff --git a/app/src/main/java/com/gh/base/DownloadToolbarActivity.kt b/app/src/main/java/com/gh/base/DownloadToolbarActivity.kt new file mode 100644 index 0000000000..350a7a5bb1 --- /dev/null +++ b/app/src/main/java/com/gh/base/DownloadToolbarActivity.kt @@ -0,0 +1,115 @@ +package com.gh.base + +import android.os.Bundle +import android.text.TextUtils +import android.view.MenuItem +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import androidx.core.content.ContextCompat +import androidx.lifecycle.ViewModelProviders +import com.gh.download.DownloadManager +import com.gh.gamecenter.DownloadManagerActivity +import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.SPUtils.getBoolean +import com.gh.gamecenter.entity.GameUpdateEntity +import com.gh.gamecenter.eventbus.EBDownloadStatus +import com.gh.gamecenter.packagehelper.PackageViewModel +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode + +// TODO:移动到module_download模块中 +abstract class DownloadToolbarActivity : ToolBarActivity() { + + private var mDownloadCountHint: TextView? = null + private var mPackageViewModel: PackageViewModel? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + if (!getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu()) { + mPackageViewModel = ViewModelProviders.of(this, PackageViewModel.Factory())[PackageViewModel::class.java] + mPackageViewModel = viewModelProvider(PackageViewModel.Factory()) + mPackageViewModel?.filterSameUpdateLiveData?.observe(this) { updateList: List -> + updateDownloadCountHint(updateList) + } + } + } + + override fun setToolbarMenu(res: Int) { + // 青少年模式下要隐藏下载按钮 + if (getBoolean(Constants.SP_TEENAGER_MODE) && res == R.menu.menu_download) return + super.setToolbarMenu(res) + } + + override fun inflateMenu(res: Int) { + super.inflateMenu(res) + if (showDownloadMenu()) { + createDownloadMenu(res) + } + } + + private fun createDownloadMenu(res: Int) { + if (res != R.menu.menu_download) { + menuInflater.inflate(R.menu.menu_download, mActionMenuView.menu) + } + if (mPackageViewModel != null) { + updateDownloadCountHint(mPackageViewModel?.filterSameUpdateLiveData?.value) + } + val downloadMenuView = mActionMenuView.menu.findItem(R.id.menu_download).actionView + mDownloadCountHint = downloadMenuView.findViewById(R.id.menu_download_count_hint) + } + + override fun onMenuItemClick(item: MenuItem?): Boolean { + if (item!!.itemId == R.id.menu_download) { +// MtaHelper.onEvent("下载管理", "下载管理入口", getActivityNameInChinese()); + val intent = DownloadManagerActivity.getDownloadMangerIntent(this, mEntrance) + startActivity(intent) + return true + } + return super.onMenuItemClick(item) + } + + private fun updateDownloadCountHint(updateList: List?) { + if (mDownloadCountHint == null || updateList.isNullOrEmpty()) return + val count = DownloadManager.getInstance().getDownloadOrUpdateCount(updateList) + if (count != null) { + mDownloadCountHint!!.visibility = View.VISIBLE + mDownloadCountHint!!.text = count + val params = mDownloadCountHint!!.layoutParams + if (TextUtils.isEmpty(count)) { + params.width = DisplayUtils.dip2px(6f) + params.height = DisplayUtils.dip2px(6f) + } else { + params.width = DisplayUtils.dip2px(12f) + params.height = DisplayUtils.dip2px(12f) + } + mDownloadCountHint!!.layoutParams = params + } else { + mDownloadCountHint!!.visibility = View.GONE + } + } + + protected open fun showDownloadMenu(): Boolean { + return false + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEventMainThread(status: EBDownloadStatus?) { + if (!getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu() && mPackageViewModel != null) { + updateDownloadCountHint(mPackageViewModel?.filterSameUpdateLiveData?.value) + } + } + + override fun onNightModeChange() { + super.onNightModeChange() + if (showDownloadMenu() && getMenuItem(R.id.menu_download) != null) { + (getMenuItem(R.id.menu_download).actionView.findViewById(R.id.menu_download_iv) as ImageView).setImageDrawable( + ContextCompat.getDrawable(this, R.drawable.toolbar_download) + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/base/GHUmengNotificationService.kt b/app/src/main/java/com/gh/base/GHUmengNotificationService.kt deleted file mode 100644 index a7a1e0ccd7..0000000000 --- a/app/src/main/java/com/gh/base/GHUmengNotificationService.kt +++ /dev/null @@ -1,229 +0,0 @@ -//package com.gh.base -// -//import android.app.Notification -//import android.app.NotificationChannel -//import android.app.NotificationManager -//import android.app.PendingIntent -//import android.content.Context -//import android.content.Intent -//import android.os.Build -//import android.os.Bundle -//import android.preference.PreferenceManager -//import android.text.TextUtils -//import android.view.View -//import androidx.core.app.NotificationCompat -//import androidx.core.text.htmlEncode -//import com.gh.common.notifier.Notifier -//import com.gh.common.util.* -//import com.gh.gamecenter.R -//import com.gh.gamecenter.entity.PushEntity -//import com.gh.gamecenter.entity.PushMessageEntity -//import com.gh.gamecenter.entity.PushMessageUnreadEntity -//import com.gh.gamecenter.entity.PushNotificationEntity -//import com.gh.gamecenter.manager.UserManager -//import com.gh.gamecenter.message.MessageUnreadRepository -//import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity -//import com.gh.gamecenter.receiver.UmengMessageReceiver -//import com.gh.gamecenter.receiver.UmengMessageReceiver.Companion.TYPE_CLICK -//import com.gh.gamecenter.receiver.UmengMessageReceiver.Companion.TYPE_REMOVE -//import com.gh.gamecenter.retrofit.Response -//import com.gh.gamecenter.retrofit.RetrofitManager -//import com.google.gson.Gson -//import com.umeng.message.UmengMessageService -//import io.reactivex.android.schedulers.AndroidSchedulers -//import io.reactivex.schedulers.Schedulers -//import okhttp3.MediaType -//import okhttp3.RequestBody -//import okhttp3.ResponseBody -//import org.android.agoo.common.AgooConstants -//import org.json.JSONObject -//import retrofit2.HttpException -//import java.util.* -// -//class GHUmengNotificationService : UmengMessageService() { -// -// companion object { -// const val ACTION_UMENG = "com.gh.gamecenter.UMENG" -// const val MESSAGE_FROM_SYSTEM = "message_from_system" -// const val HALO_MESSAGE_DIALOG = "HALO_MESSAGE_DIALOG" -// const val HALO_MESSAGE_CENTER = "HALO_MESSAGE_CENTER" -// const val ANSWER = "answer" -// const val FOLLOW_QUESTION = "follow_question" -// const val NOTIFICATION_ID = 2015 -// const val DISPLAY_TYPE_NOTIFICATION = "notification" -// const val DISPLAY_TYPE_CUSTOM = "custom" -// const val MESSAGE_ID = "message_id" -// const val NOTIFICATION_MESSAGE_ID = "notification_message_id" // 通知中心消息 ID -// const val PUSH_ID = "push_id" -// } -// -// val notificationTags = arrayOf("GH_UMENG_TAG_1", "GH_UMENG_TAG_2", "GH_UMENG_TAG_3") -// val gson = Gson() -// -// override fun onMessage(context: Context, intent: Intent) { -// val message = intent.getStringExtra(AgooConstants.MESSAGE_BODY) -// val isMessageFromSystem = intent.getBooleanExtra(MESSAGE_FROM_SYSTEM, false) -// -// try { -// val pushData = message.toObject() -// pushData?.let { handlePushData(context, it, message, isMessageFromSystem) } -// } catch (e: Exception) { -// e.printStackTrace() -// } -// } -// -// private fun handlePushData(context: Context, pushData: PushEntity, message: String, isMessageFromSystem: Boolean) { -// val notificationManager = context.applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager -// -// if (pushData.displayType == DISPLAY_TYPE_NOTIFICATION) { -// // 其它类型的透传信息 -// // 显示到通知栏 -// val msg = message.toObject() -// val data = msg?.extra?.data -// -// // 系统推送(非自定义信息),直接处理跳转 -// if (isMessageFromSystem) { -// val intent = Intent() -// intent.setClass(context, UmengMessageReceiver::class.java) -// intent.putExtra(EntranceUtils.KEY_DATA, data?.link) -// intent.putExtra(EntranceUtils.KEY_TYPE, UmengMessageReceiver.DIRECT_ONLY) -// intent.putExtra(EntranceUtils.KEY_MESSAGE, message) -// intent.putExtra(NOTIFICATION_MESSAGE_ID, data?.messageId) -// context.sendBroadcast(intent) -// return -// } -// -// // 用户未登录的情况下不生成消息中心通知,避免用户掉登录了还收到跳转至消息中心的通知 -// if (data != null -// && data.link?.link == "system" -// && !UserManager.getInstance().isLoggedIn) { -// return -// } -// -// val clickIntent = Intent() -// val removeIntent = Intent() -// -// clickIntent.setClass(context, UmengMessageReceiver::class.java) -// clickIntent.putExtra(EntranceUtils.KEY_DATA, data?.link) -// clickIntent.putExtra(EntranceUtils.KEY_MESSAGE, message) -// clickIntent.putExtra(MESSAGE_ID, msg?.msgId) -// clickIntent.putExtra(PUSH_ID, data?.pushId) -// clickIntent.putExtra(NOTIFICATION_MESSAGE_ID, data?.messageId) -// clickIntent.putExtra(EntranceUtils.KEY_TYPE, TYPE_CLICK) -// -// removeIntent.setClass(context, UmengMessageReceiver::class.java) -// removeIntent.putExtra(EntranceUtils.KEY_TYPE, TYPE_REMOVE) -// removeIntent.putExtra(EntranceUtils.KEY_MESSAGE, message) -// -// val clickPendingIntent = PendingIntent.getBroadcast(context, System.currentTimeMillis().toInt(), -// clickIntent, PendingIntent.FLAG_UPDATE_CURRENT) -// -// val deletePendingIntent = PendingIntent.getBroadcast(context, System.currentTimeMillis().toInt() + 1, -// removeIntent, PendingIntent.FLAG_UPDATE_CURRENT) -// -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { -// val channel = NotificationChannel("Halo_Push", "Halo_Push", NotificationManager.IMPORTANCE_DEFAULT) -// notificationManager.createNotificationChannel(channel) -// } -// -// val notification = NotificationCompat.Builder(context, "Halo_Push") -// .setSmallIcon(R.drawable.ic_notification) -// .setTicker(pushData.body?.ticker) -// .setContentTitle(pushData.body?.title) -// .setContentText(pushData.body?.text?.fromHtml()) -// .setContentIntent(clickPendingIntent) -// .setDeleteIntent(deletePendingIntent) -// .build() -// notification.flags = notification.flags or Notification.FLAG_AUTO_CANCEL -// -// notificationManager.notify(getNotificationTag(context), NOTIFICATION_ID, notification) -// } else { -// if (UserManager.getInstance().isLoggedIn && -// HALO_MESSAGE_DIALOG == pushData.body?.custom && -// MessageUnreadRepository.unreadLiveData.value != null) { -// // 回答了问题或者关注了问题的消息 -// val msg = gson.fromJson(message, PushMessageEntity::class.java) -// val data = msg?.extra?.data -// -// val type = if (ANSWER == data?.type) { -// "回答了你的问题" -// } else { -// "回答了你关注的问题" -// } -// -// val userName = StringUtils.shrinkStringWithDot(data?.userEntity?.name, 8) -// val displayText = userName + type -// -// if (Notifier.isActivityValid(CurrentActivityHolder.getCurrentActivity()) && -// Notifier.shouldShowNotifier(data?.answer?.id + displayText)) { -// Notifier.create(CurrentActivityHolder.getCurrentActivity()) -// .setText(displayText) -// .setDuration(5000) -// .setIcon(data?.userEntity?.icon) -// .setOnClickListener(View.OnClickListener { -// val bundle = Bundle() -// bundle.putString(EntranceUtils.KEY_ANSWER_ID, data?.answer?.id) -// bundle.putString(EntranceUtils.KEY_ENTRANCE, EntranceUtils.ENTRANCE_UMENG) -// bundle.putString(EntranceUtils.KEY_TO, AnswerDetailActivity::class.java.name) -// EntranceUtils.jumpActivity(context, bundle) -// -// MtaHelper.onEvent("消息弹窗", type, "Does not contains any parameter.") -// -// // 标记已读 -// val jsonObject = JSONObject() -// jsonObject.put("type", type) -// val body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) -// -// RetrofitManager.getInstance().api.postMessageRead(UserManager.getInstance().userId, data?.id, body) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(object : Response() { -// override fun onResponse(response: ResponseBody?) { -// super.onResponse(response) -// MessageUnreadRepository.loadMessageUnreadData() -// } -// -// override fun onFailure(e: HttpException?) { -// e?.printStackTrace() -// } -// }) -// Notifier.hide() -// }) -// .show(false) -// Notifier.tagNotifierAsShowed(data?.answer?.id + displayText) -// } -// } else if (HALO_MESSAGE_CENTER == pushData.body?.custom) { -// // 消息中心逻辑 -// val msg = gson.fromJson(message, PushMessageUnreadEntity::class.java) -// val data = msg?.extra?.data -// data?.let { MessageUnreadRepository.loadMessageUnreadData() } -// } -// } -// } -// -// /** -// * 规则:最多三条消息,以旧换新 -// * -// * @return NotificationTag -// */ -// private fun getNotificationTag(context: Context): String { -// val sp = PreferenceManager.getDefaultSharedPreferences(context) -// val edit = sp.edit() -// -// val timeTagMap = HashMap() -// for (tag in notificationTags) { -// val time = sp.getLong(tag, 0) -// if (time == 0L) { -// edit.putLong(tag, System.currentTimeMillis()).apply() -// return tag -// } else { -// timeTagMap[time] = tag -// } -// } -// -// val minTime = Collections.min(timeTagMap.keys) -// val tag = timeTagMap[minTime] -// edit.putLong(tag, System.currentTimeMillis()).apply() -// return if (TextUtils.isEmpty(tag)) notificationTags[0] else tag!! -// } -//} \ No newline at end of file diff --git a/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt b/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt index 5ac6f1bfbb..8514ce8de7 100644 --- a/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt +++ b/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt @@ -3,12 +3,11 @@ package com.gh.base import android.app.Activity import android.app.Application import android.os.Bundle -import com.gh.common.notifier.Notifier -import com.gh.common.util.DataUtils import com.gh.common.util.FloatingBackViewManager import com.gh.download.DownloadManager import com.gh.gamecenter.MainActivity import com.gh.gamecenter.SplashScreenActivity +import com.gh.gamecenter.core.utils.CurrentActivityHolder import com.gh.gamecenter.energy.EnergyCenterActivity import com.gh.gamecenter.forum.detail.ForumDetailActivity import com.gh.gamecenter.forum.list.ForumListActivity @@ -47,7 +46,6 @@ class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks { } if (HaloApp.isUserAcceptPrivacyPolicy(activity)) { - DataUtils.onResume(activity) // FIXME 这里应该只是部分Activity需要 try { // 初始化gameMap @@ -73,17 +71,13 @@ class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks { CurrentActivityHolder.activitySet.remove(activity) FloatingBackViewManager.dismissBackView() - if (HaloApp.isUserAcceptPrivacyPolicy(activity)) { - DataUtils.onPause(activity) - } - if (activity.isFinishing) { AppManager.getInstance().finishActivity(activity) } } override fun onActivityStopped(activity: Activity) { - Notifier.hide() + } override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) { diff --git a/app/src/main/java/com/gh/common/DefaultJsApi.kt b/app/src/main/java/com/gh/common/DefaultJsApi.kt index 04db3ec29c..5456a8dc5c 100644 --- a/app/src/main/java/com/gh/common/DefaultJsApi.kt +++ b/app/src/main/java/com/gh/common/DefaultJsApi.kt @@ -8,13 +8,21 @@ import android.webkit.JavascriptInterface import androidx.annotation.Keep import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentActivity -import com.gh.base.CurrentActivityHolder -import com.gh.common.constant.Constants -import com.gh.common.loghub.LoghubUtils -import com.gh.common.tracker.Tracker +import com.gh.gamecenter.core.utils.CurrentActivityHolder +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.gh.gamecenter.common.tracker.Tracker import com.gh.common.util.* -import com.gh.common.view.dsbridge.CompletionHandler +import com.gh.common.util.LogUtils +import com.gh.gamecenter.common.view.dsbridge.CompletionHandler import com.gh.gamecenter.* +import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.energy.EnergyCenterActivity import com.gh.gamecenter.energy.EnergyHouseActivity import com.gh.gamecenter.entity.* diff --git a/app/src/main/java/com/gh/common/DefaultUrlHandler.kt b/app/src/main/java/com/gh/common/DefaultUrlHandler.kt index 2c0c1f6007..dcfca67f95 100644 --- a/app/src/main/java/com/gh/common/DefaultUrlHandler.kt +++ b/app/src/main/java/com/gh/common/DefaultUrlHandler.kt @@ -5,8 +5,8 @@ import android.content.Intent import android.net.Uri import android.text.TextUtils import android.util.Base64 -import com.gh.base.CurrentActivityHolder -import com.gh.common.constant.Constants +import com.gh.gamecenter.core.utils.CurrentActivityHolder +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* import com.gh.common.util.DirectUtils.directToFeedback import com.gh.common.util.DirectUtils.directToGameDetailVideoStreaming @@ -15,11 +15,16 @@ import com.gh.common.util.DirectUtils.directToGameVideo import com.gh.common.util.DirectUtils.directToLegacyVideoDetail import com.gh.common.util.DirectUtils.directToLinkPage import com.gh.common.util.DirectUtils.directToQa -import com.gh.common.util.GsonUtils.gson +import com.gh.gamecenter.core.utils.GsonUtils.gson import com.gh.gamecenter.LibaoDetailActivity import com.gh.gamecenter.MainActivity import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.EnvHelper +import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.entity.* import com.gh.gamecenter.gamecollection.publish.GameCollectionEditActivity import com.gh.gamecenter.qa.BbsType @@ -78,7 +83,7 @@ object DefaultUrlHandler { e.printStackTrace() } - EntranceUtils.HOST_QQ_QUN -> { + EntranceConsts.HOST_QQ_QUN -> { val key = uri.getQueryParameter("key") if (!DirectUtils.directToQqGroup(context, key)) { Utils.toast(context, "请检查是否已经安装手机QQ") @@ -146,7 +151,7 @@ object DefaultUrlHandler { ) } } - EntranceUtils.HOST_UPLOAD_VIDEO -> { + EntranceConsts.HOST_UPLOAD_VIDEO -> { val titleParameter = uri.getQueryParameter("title") val title = if (titleParameter.isNullOrEmpty()) "" else "#$titleParameter#" val categoryId = uri.getQueryParameter("category_id") ?: "" @@ -157,16 +162,16 @@ object DefaultUrlHandler { val tagActivityName = uri.getQueryParameter("tagActivityName") ?: "" val linkEntity = VideoLinkEntity(title, categoryId, link, tagActivityId, tagActivityName) val simpleGameEntity = SimpleGameEntity(gameId, gameName) - CheckLoginUtils.checkLogin(context, null, true, EntranceUtils.ENTRANCE_BROWSER) { - DirectUtils.directToVideoManager(context, linkEntity, simpleGameEntity, EntranceUtils.ENTRANCE_BROWSER, "") + CheckLoginUtils.checkLogin(context, null, true, EntranceConsts.ENTRANCE_BROWSER) { + DirectUtils.directToVideoManager(context, linkEntity, simpleGameEntity, EntranceConsts.ENTRANCE_BROWSER, "") } } - EntranceUtils.HOST_USERHOME -> { + EntranceConsts.HOST_USERHOME -> { val position = uri.getQueryParameter("position") val subtype = uri.getQueryParameter("sub_type") ?: "" DirectUtils.directToHomeActivity(context, id, subtype, if (position.isNullOrEmpty()) -1 else position.toInt(), entrance, "") } - EntranceUtils.HOST_VIDEO_MORE -> { + EntranceConsts.HOST_VIDEO_MORE -> { val referer = uri.getQueryParameter("referer") ?: "" val type = uri.getQueryParameter("type") ?: "" val act = uri.getQueryParameter("act") ?: "" @@ -198,48 +203,48 @@ object DefaultUrlHandler { sectionName ) } - EntranceUtils.HOST_VIDEO_DETAIL -> { + EntranceConsts.HOST_VIDEO_DETAIL -> { DirectUtils.directToVideoDetail(context, id, entrance, path) } - EntranceUtils.HOST_VIDEO_SINGLE -> { + EntranceConsts.HOST_VIDEO_SINGLE -> { val referer = uri.getQueryParameter("referer") ?: "" DirectUtils.directToVideoDetail( context, id, VideoDetailContainerViewModel.Location.SINGLE_VIDEO.value, false, "", entrance, "", if (TextUtils.isEmpty(referer)) "" else referer ) } - EntranceUtils.HOST_VIDEO_STREAMING_HOME -> { + EntranceConsts.HOST_VIDEO_STREAMING_HOME -> { intent = Intent(context, MainActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP intent.putExtra(MainActivity.SWITCH_TO_VIDEO, true) context.startActivity(intent) } - EntranceUtils.HOST_VIDEO_STREAMING_DESC -> { + EntranceConsts.HOST_VIDEO_STREAMING_DESC -> { directToGameDetailVideoStreaming(context, id, entrance) } - EntranceUtils.HOST_VIDEO_COLLECTION -> { + EntranceConsts.HOST_VIDEO_COLLECTION -> { directToGameVideo(context, id, entrance, "") } - EntranceUtils.HOST_CATEGORY -> { + EntranceConsts.HOST_CATEGORY -> { val title = uri.getQueryParameter("title") DirectUtils.directCategoryDirectory(context, id, title ?: "", entrance, "") } - EntranceUtils.HOST_COLUMN_COLLECTION -> { + EntranceConsts.HOST_COLUMN_COLLECTION -> { val name = uri.getQueryParameter("name") DirectUtils.directToColumnCollection(context, id, -1, entrance, name ?: "") } - EntranceUtils.HOST_COLUMN -> { - DirectUtils.directToSubject(context, id, uri.getQueryParameter(EntranceUtils.KEY_NAME), entrance) + EntranceConsts.HOST_COLUMN -> { + DirectUtils.directToSubject(context, id, uri.getQueryParameter(EntranceConsts.KEY_NAME), entrance) } - EntranceUtils.HOST_COMMUNITY_QUESTION_LABEL_DETAIL -> { + EntranceConsts.HOST_COMMUNITY_QUESTION_LABEL_DETAIL -> { val community = CommunityEntity() community.id = uri.getQueryParameter("community_id") ?: "" community.name = uri.getQueryParameter("community_name") ?: "" val tag = uri.getQueryParameter("tag") ?: "" DirectUtils.directAskColumnLabelDetail(context, tag, community, entrance, "") } - EntranceUtils.HOST_COMMUNITY_COLUMN_DETAIL -> { + EntranceConsts.HOST_COMMUNITY_COLUMN_DETAIL -> { val community = CommunityEntity() community.id = uri.getQueryParameter("community_id") ?: "" community.name = uri.getQueryParameter("community_name") ?: "" @@ -247,42 +252,42 @@ object DefaultUrlHandler { DirectUtils.directAskColumnDetail(context, columnId, community, entrance, "") } - EntranceUtils.HOST_BLOCK -> { + EntranceConsts.HOST_BLOCK -> { val name = uri.getQueryParameter("name") ?: "" val entity = SubjectRecommendEntity(link = id, name = name, text = name) DirectUtils.directToBlock(context, entity, entrance) } - EntranceUtils.HOST_SERVER_BLOCK -> { + EntranceConsts.HOST_SERVER_BLOCK -> { DirectUtils.directToGameServers(context, entrance = entrance, path = "") } - EntranceUtils.HOST_AMWAY_BLOCK -> { + EntranceConsts.HOST_AMWAY_BLOCK -> { DirectUtils.directToAmway(context, entrance = entrance, path = "") } - EntranceUtils.HOST_HELP -> { + EntranceConsts.HOST_HELP -> { val name = uri.getQueryParameter("name") ?: "" DirectUtils.directToQa(context, name, id) } - EntranceUtils.HOST_HELP_COLLECTION -> { + EntranceConsts.HOST_HELP_COLLECTION -> { val name = uri.getQueryParameter("name") ?: "" DirectUtils.directToQaCollection(context, name, id) } - EntranceUtils.HOST_GAME_UPLOAD -> { + EntranceConsts.HOST_GAME_UPLOAD -> { DirectUtils.directGameUpload(context, entrance = entrance, path = "") } - EntranceUtils.HOST_GAME_ZONE -> { + EntranceConsts.HOST_GAME_ZONE -> { val zoneUrl = uri.getQueryParameter("url") ?: "" DirectUtils.directGameZone(context, id, zoneUrl, entrance) } - EntranceUtils.HOST_LINK -> { + EntranceConsts.HOST_LINK -> { try { val dataString = uri.getQueryParameter("data") if (!TextUtils.isEmpty(dataString)) { @@ -296,43 +301,43 @@ object DefaultUrlHandler { } } - EntranceUtils.HOST_GAME_NEWS -> { + EntranceConsts.HOST_GAME_NEWS -> { DirectUtils.directToGameNews( context, - uri.getQueryParameter(EntranceUtils.KEY_GAME_ID), - uri.getQueryParameter(EntranceUtils.KEY_GAME_NAME), + uri.getQueryParameter(EntranceConsts.KEY_GAME_ID), + uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME), entrance ); } - EntranceUtils.HOST_GAME_CALENDAR -> { - directToGameServerCalendar(context, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID)) + EntranceConsts.HOST_GAME_CALENDAR -> { + directToGameServerCalendar(context, uri.getQueryParameter(EntranceConsts.KEY_GAME_ID)) } - EntranceUtils.HOST_HISTORY_APK -> { - DirectUtils.directToHistoryApk(context, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID)) + EntranceConsts.HOST_HISTORY_APK -> { + DirectUtils.directToHistoryApk(context, uri.getQueryParameter(EntranceConsts.KEY_GAME_ID)) } - EntranceUtils.HOST_FORUM_DETAIL -> { + EntranceConsts.HOST_FORUM_DETAIL -> { DirectUtils.directForumDetail(context, id, entrance) } - EntranceUtils.HOST_GAME_RATING_DETAIL -> { + EntranceConsts.HOST_GAME_RATING_DETAIL -> { DirectUtils.directToGameRatingDetail( context, - uri.getQueryParameter(EntranceUtils.KEY_GAME_ID), - uri.getQueryParameter(EntranceUtils.KEY_COMMENT_ID), - EntranceUtils.ENTRANCE_BROWSER + uri.getQueryParameter(EntranceConsts.KEY_GAME_ID), + uri.getQueryParameter(EntranceConsts.KEY_COMMENT_ID), + EntranceConsts.ENTRANCE_BROWSER ) } - EntranceUtils.HOST_FORUM -> { - val position = uri.getQueryParameter(EntranceUtils.KEY_POSITION)?.toInt() + EntranceConsts.HOST_FORUM -> { + val position = uri.getQueryParameter(EntranceConsts.KEY_POSITION)?.toInt() DirectUtils.directToForum(context, position ?: 0) } - EntranceUtils.HOST_UPLOAD_VIDEO_NEW -> { + EntranceConsts.HOST_UPLOAD_VIDEO_NEW -> { val activityName = uri.getQueryParameter("activity_name") ?: "" val activityId = uri.getQueryParameter("activity_id") ?: "" val original = uri.getQueryParameter("original") ?: "" @@ -370,39 +375,39 @@ object DefaultUrlHandler { ) } - EntranceUtils.HOST_SUGGESTION -> { - val platform = uri.getQueryParameter(EntranceUtils.KEY_PLATFORM) + EntranceConsts.HOST_SUGGESTION -> { + val platform = uri.getQueryParameter(EntranceConsts.KEY_PLATFORM) val platformName = PlatformUtils.getInstance(context).getPlatformName(platform) - val gameId = uri.getQueryParameter(EntranceUtils.KEY_GAMEID) - val packageMd5 = uri.getQueryParameter(EntranceUtils.KEY_PACKAGE_MD5) - val isQaFeedback = uri.getQueryParameter(EntranceUtils.KEY_IS_QA_FEEDBACK) == "true" + val gameId = uri.getQueryParameter(EntranceConsts.KEY_GAMEID) + val packageMd5 = uri.getQueryParameter(EntranceConsts.KEY_PACKAGE_MD5) + val isQaFeedback = uri.getQueryParameter(EntranceConsts.KEY_IS_QA_FEEDBACK) == "true" val content = if (TextUtils.isEmpty(gameId) || TextUtils.isEmpty(packageMd5)) String.format( "%s-%s-V%s,", - uri.getQueryParameter(EntranceUtils.KEY_GAME_NAME), + uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME), if (TextUtils.isEmpty(platformName)) platform else platformName, - uri.getQueryParameter(EntranceUtils.KEY_VERSION) + uri.getQueryParameter(EntranceConsts.KEY_VERSION) ) else String.format( "%s-%s-V%s\n游戏ID:%s\n游戏包MD5:%s\n", - uri.getQueryParameter(EntranceUtils.KEY_GAME_NAME), + uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME), if (TextUtils.isEmpty(platformName)) platform else platformName, - uri.getQueryParameter(EntranceUtils.KEY_VERSION), gameId, packageMd5 + uri.getQueryParameter(EntranceConsts.KEY_VERSION), gameId, packageMd5 ) val qaId = uri.getQueryParameter("qa_id") ?: "" - val qaContentId = uri.getQueryParameter(EntranceUtils.KEY_QA_CONTENT_ID) ?: "" - val qaTitle = uri.getQueryParameter(EntranceUtils.KEY_QA_TITLE) + val qaContentId = uri.getQueryParameter(EntranceConsts.KEY_QA_CONTENT_ID) ?: "" + val qaTitle = uri.getQueryParameter(EntranceConsts.KEY_QA_TITLE) if (!TextUtils.isEmpty(qaId)) { directToQa(context, qaTitle, qaId) } else { - directToFeedback(context, content, null, isQaFeedback, qaContentId, EntranceUtils.ENTRANCE_BROWSER) + directToFeedback(context, content, null, isQaFeedback, qaContentId, EntranceConsts.ENTRANCE_BROWSER) } } - EntranceUtils.HOST_HELP_AND_FEEDBACK -> { + EntranceConsts.HOST_HELP_AND_FEEDBACK -> { val position = uri.getQueryParameter("position") ?: "" DirectUtils.directToHelpAndFeedback(context, position.toInt()) } - EntranceUtils.HOST_HELP_DETAIL -> { + EntranceConsts.HOST_HELP_DETAIL -> { var url = uri.getQueryParameter("url") if (!url.isNullOrEmpty()) { context.startActivity(WebActivity.getIntent(context, url, false)) @@ -419,16 +424,19 @@ object DefaultUrlHandler { } } - EntranceUtils.HOST_GAME_COLLECTION_DETAIL -> { + EntranceConsts.HOST_GAME_COLLECTION_DETAIL -> { DirectUtils.directToGameCollectionDetail(context, id, entrance) } - EntranceUtils.HOST_GAME_COLLECTION_SQUARE -> { + EntranceConsts.HOST_GAME_COLLECTION_SQUARE -> { DirectUtils.directToGameCollectionSquare(context, entrance) } - EntranceUtils.HOST_GAME_COLLECTION_EDIT -> { - context.startActivity(GameCollectionEditActivity.getIntent(context, entrance)) + EntranceConsts.HOST_GAME_COLLECTION_EDIT -> { + val activityId = uri.getQueryParameter("activity_id") ?: "" + val activityName = uri.getQueryParameter("activity_name") ?: "" + val gameId = uri.getQueryParameter("game_id") ?: "" + context.startActivity(GameCollectionEditActivity.getIntent(context, activityId, activityName, gameId, entrance)) } else -> { diff --git a/app/src/main/java/com/gh/common/FixedRateJobHelper.kt b/app/src/main/java/com/gh/common/FixedRateJobHelper.kt index 8581083b04..4f39d60084 100644 --- a/app/src/main/java/com/gh/common/FixedRateJobHelper.kt +++ b/app/src/main/java/com/gh/common/FixedRateJobHelper.kt @@ -2,13 +2,13 @@ package com.gh.common import com.gh.common.exposure.ExposureManager import com.gh.common.filter.RegionSettingHelper -import com.gh.common.loghub.LoghubUtils -import com.gh.common.util.doOnMainProcessOnly -import com.gh.common.util.tryCatchInRelease +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.gh.gamecenter.common.utils.doOnMainProcessOnly +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.common.videolog.VideoRecordUtils import com.gh.download.DownloadDataHelper import com.gh.gamecenter.entity.TimeEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/common/LocalBroadcastReceiver.kt b/app/src/main/java/com/gh/common/LocalBroadcastReceiver.kt deleted file mode 100644 index b580dff689..0000000000 --- a/app/src/main/java/com/gh/common/LocalBroadcastReceiver.kt +++ /dev/null @@ -1,39 +0,0 @@ -//package com.gh.common -// -//import android.content.BroadcastReceiver -//import android.content.Context -//import android.content.Intent -//import com.gh.common.im.ImManager -//import com.gh.gamecenter.manager.UserManager -//import com.gh.gamecenter.retrofit.RetrofitManager -//import com.halo.assistant.HaloApp -//import com.m7.imkfsdk.chat.ChatActivity -//import io.reactivex.schedulers.Schedulers -// -///** -// * 可使用 [LocalBroadcastManager] 来进行简单的模块间消息通知 -// */ -// -//class LocalBroadcastReceiver : BroadcastReceiver() { -// -// override fun onReceive(context: Context?, intent: Intent?) { -// intent?.let { -// when (intent.action) { -// ChatActivity.ACTION_DISMISS_FLOATING_WINDOW -> { -// ImManager.dismissFloatingWindow() -// -// RetrofitManager.getInstance().api.postImEnding(UserManager.getInstance().userId) -// .subscribeOn(Schedulers.io()) -// .subscribe() -// } -// -// ChatActivity.ACTION_HIDE_UNREAD_DOT -> { -// ImManager.updateShouldShowFloatingWindowDot(false) -// } -// -// else -> return -// } -// } -// } -// -//} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/PushManager.kt b/app/src/main/java/com/gh/common/PushManager.kt deleted file mode 100644 index 1d62cff140..0000000000 --- a/app/src/main/java/com/gh/common/PushManager.kt +++ /dev/null @@ -1,117 +0,0 @@ -package com.gh.common - -import android.annotation.SuppressLint -import com.gh.gamecenter.entity.AliasEntity -import com.halo.assistant.HaloApp - -object PushManager { - - var deviceToken: String? = "" - - private var mPreviousAlias: AliasEntity? = null - private var mApplication = HaloApp.getInstance().application - - const val SP_PUSH_ALIAS = "push_alias" - - @JvmStatic - fun init(channel: String) { -// tryWithDefaultCatch { -// //初始化友盟推送 -// UMConfigure.init(mApplication, Config.UMENG_APPKEY, channel, UMConfigure.DEVICE_TYPE_PHONE, Config.UMENG_MESSAGE_SECRET) -// -// val pushAgent = PushAgent.getInstance(mApplication) -// -// runOnIoThread { registerDevice() } -// -// // 注册小米、华为和魅族通道 -// MiPushRegistar.register(mApplication, Config.MIPUSH_APPID, Config.MIPUSH_APPKEY) -// HuaWeiRegister.register(mApplication) -// MeizuRegister.register(mApplication, BuildConfig.MEIZUPUSH_APPID, BuildConfig.MEIZUPUSH_APPKEY) -// -// val aliasInSp = PreferenceManager.getDefaultSharedPreferences(mApplication).getString(SP_PUSH_ALIAS, "") -// mPreviousAlias = aliasInSp?.toObject() -// -// if (mPreviousAlias == null) { -// getAndSetAlias() -// } -// -// // 完全自定义处理(透传) -// pushAgent.setPushIntentServiceClass(GHUmengNotificationService::class.java) -// } - } - - private fun registerDevice() { -// PushAgent.getInstance(mApplication).register(object : IUmengRegisterCallback { -// override fun onSuccess(dToken: String) { -// //注册成功会返回device token -// deviceToken = dToken -// getAndSetAlias() -// Utils.log("deviceToken::$dToken") -// } -// -// override fun onFailure(s: String, s1: String) { -// Utils.log("deviceToken::" + "注册失败") -// } -// }) - } - - @SuppressLint("CheckResult") - @JvmStatic - fun getAndSetAlias() { -// if (deviceToken.isNullOrEmpty()) { -// registerDevice() -// return -// } -// -// val meta = MetaUtil.getMeta() -// -// val jsonObject = JSONObject() -// jsonObject.put("device_token", deviceToken) -// jsonObject.put("imei", meta.imei) -// jsonObject.put("android_id", meta.android_id) -// jsonObject.put("model", meta.model) -// jsonObject.put("manufacturer", meta.manufacturer) -// jsonObject.put("os", meta.os) -// jsonObject.put("os_version", meta.android_version) -// jsonObject.put("mac", meta.mac) -// jsonObject.put("gid", meta.gid) -// -// val body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) -// -// RetrofitManager.getInstance().api.getAlias(body) -// .subscribeOn(Schedulers.io()) -// .subscribe( -// { setAlias(it) }, -// { it.printStackTrace() } -// ) - } - - @JvmStatic - fun setAlias(alias: AliasEntity) { -// val pushAgent = PushAgent.getInstance(mApplication) -// -// mPreviousAlias = alias -// PreferenceManager.getDefaultSharedPreferences(mApplication).edit { -// putString(SP_PUSH_ALIAS, mPreviousAlias?.toJson()) -// } -// -// pushAgent.setAlias(alias.alias, alias.aliasType) { b, s -> -// Utils.log("注册别名 $b + $s") -// } - } - - @JvmStatic - fun deleteAlias() { -// val pushAgent = PushAgent.getInstance(mApplication) -// -// mPreviousAlias?.let { -// pushAgent.deleteAlias(it.alias, it.aliasType) { b, s -> -// Utils.log("删除别名 $b + $s") -// } -// } -// PreferenceManager.getDefaultSharedPreferences(mApplication).edit { -// putString(SP_PUSH_ALIAS, "") -// } -// mPreviousAlias = null - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index 017348cd39..4cc5abb9b2 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -1,26 +1,28 @@ package com.gh.common.constant; import android.annotation.SuppressLint; -import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import android.preference.PreferenceManager; import android.text.TextUtils; -import com.gh.common.util.EnvHelper; -import com.gh.common.util.GsonUtils; +import androidx.annotation.Nullable; + +import com.gh.gamecenter.common.utils.EnvHelper; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.common.util.PackageHelper; import com.gh.common.util.PackageUtils; -import com.gh.common.util.SPUtils; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.SuggestionActivity; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.GameGuidePopupEntity; import com.gh.gamecenter.entity.NewSettingsEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.retrofit.BiResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; @@ -33,8 +35,6 @@ import java.io.IOException; import java.util.List; import java.util.Locale; -import androidx.annotation.Nullable; - import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; @@ -45,10 +45,6 @@ public class Config { public static final String API_HOST = EnvHelper.getHost(); public static final String NEW_API_HOST = EnvHelper.getNewHost(); - /** - * 需要配置的请使用{@link PreferenceManager#getDefaultSharedPreferences(Context)} - */ - // Third-Party confs public static final String WECHAT_APPID = BuildConfig.WECHAT_APPID; public static final String WECHAT_SECRET = BuildConfig.WECHAT_SECRET; @@ -59,10 +55,7 @@ public class Config { // http://www.ghzs666.com/article/${articleId}.html public static final String URL_ARTICLE = "http://www.ghzs666.com/article/"; // ghzs/ghzs666 统一 - public static final String DEFAULT_CHANNEL = "GH_TEST3"; - public static final String DEFAULT_CHANNEL_FOR_RELEASE = "GH_LOST"; // 正式包的缺省渠道,避免因渠道丢失而回落到测试渠道 - - private static String SETTINGS_KEY = "settingsKey"; + private static final String SETTINGS_KEY = "settingsKey"; private static SettingsEntity mSettingsEntity; private static NewSettingsEntity mNewSettingsEntity; @@ -270,13 +263,6 @@ public class Config { return false; } - public static boolean isGameDomeSwitchOpen() { - return getSettings() != null && getSettings().getGameDomeSwitch().equals("on"); - } - public static boolean isPermissionPopupSwitchOpen() { - return getSettings() != null && getSettings().getPermissionPopupSwitch().equals("on"); - } - public static void fixHideFunction() { SharedPreferences preferences = PreferenceManager. getDefaultSharedPreferences(HaloApp.getInstance().getApplication()); diff --git a/app/src/main/java/com/gh/common/databind/AddKaiFuBindingAdapter.kt b/app/src/main/java/com/gh/common/databind/AddKaiFuBindingAdapter.kt index 1cd7efae08..b406e02e5c 100644 --- a/app/src/main/java/com/gh/common/databind/AddKaiFuBindingAdapter.kt +++ b/app/src/main/java/com/gh/common/databind/AddKaiFuBindingAdapter.kt @@ -13,10 +13,10 @@ import android.widget.PopupWindow import androidx.core.content.ContextCompat import androidx.databinding.BindingAdapter import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.OnViewClickListener -import com.gh.common.util.dip2px -import com.gh.common.util.toDrawable -import com.gh.common.view.BugFixedPopupWindow +import com.gh.gamecenter.common.callback.OnViewClickListener +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.R import com.gh.gamecenter.databinding.KaifuAddItemBinding import com.gh.gamecenter.databinding.LayoutAddKaifuPopupBinding @@ -87,8 +87,8 @@ object AddKaiFuBindingAdapter { }) if (i == list.size - 1) { - binding.kaifuAddTime.background = R.drawable.bg_add_kaifu_bottom_left.toDrawable() - binding.kaifuAddServerName.background = R.drawable.bg_add_kaifu_bottom_right.toDrawable() + binding.kaifuAddTime.background = R.drawable.bg_add_kaifu_bottom_left.toDrawable(view.context) + binding.kaifuAddServerName.background = R.drawable.bg_add_kaifu_bottom_right.toDrawable(view.context) } } } diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index 378758e7e4..532be0d389 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -19,7 +19,7 @@ import androidx.core.content.ContextCompat; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.base.OnViewClickListener; +import com.gh.gamecenter.common.callback.OnViewClickListener; import com.gh.common.constant.Config; import com.gh.common.dialog.CertificationDialog; import com.gh.common.dialog.PackageCheckDialogFragment; @@ -31,23 +31,23 @@ import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.common.util.DownloadDialogHelper; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.GameUtils; import com.gh.common.util.GameViewUtils; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.common.util.LogUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.NewsUtils; -import com.gh.common.util.NumberUtils; +import com.gh.gamecenter.core.utils.NumberUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.RealNameHelper; import com.gh.common.util.ReservationHelper; import com.gh.common.view.DownloadProgressBar; -import com.gh.common.view.DrawableView; +import com.gh.gamecenter.common.view.DrawableView; import com.gh.common.view.GameIconView; import com.gh.download.DownloadManager; import com.gh.download.dialog.DownloadDialog; @@ -428,7 +428,6 @@ public class BindingAdapters { } return; } - DataUtils.onGameLaunchEvent(v.getContext(), gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), location); PackageUtils.launchApplicationByPackageName(v.getContext(), gameEntity.getApk().get(0).getPackageName()); } else { DownloadDialog.showDownloadDialog( @@ -651,8 +650,6 @@ public class BindingAdapters { ApkEntity apkEntity = gameEntity.getApk().get(0); String msg = FileUtils.isCanDownload(progressBar.getContext(), apkEntity.getSize()); if (TextUtils.isEmpty(msg)) { - DataUtils.onGameDownloadEvent(progressBar.getContext(), gameEntity.getName(), apkEntity.getPlatform(), entrance, "下载开始", method); - DownloadManager.createDownload(progressBar.getContext(), apkEntity, gameEntity, diff --git a/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt index 2d39f74f2b..9b727e790e 100644 --- a/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/ApplyModeratorDialogFragment.kt @@ -6,12 +6,12 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import com.gh.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import com.gh.common.util.DirectUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.SpanBuilder -import com.gh.common.util.dip2px -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.gamecenter.R import com.gh.gamecenter.databinding.DialogApplyModeratorBinding @@ -27,7 +27,7 @@ class ApplyModeratorDialogFragment : BaseDialogFragment() { requireArguments().run { mGroupNumber = getString(KEY_GROUP_NUMBER) ?: "" mGroupKey = getString(KEY_GROUP_KEY) ?: "" - mParentTag = getString(EntranceUtils.KEY_PARENT_TAG) ?: "" + mParentTag = getString(EntranceConsts.KEY_PARENT_TAG) ?: "" } } @@ -83,7 +83,7 @@ class ApplyModeratorDialogFragment : BaseDialogFragment() { arguments = Bundle().apply { putString(KEY_GROUP_NUMBER, number) putString(KEY_GROUP_KEY, key) - putString(EntranceUtils.KEY_PARENT_TAG, tag) + putString(EntranceConsts.KEY_PARENT_TAG, tag) } }.show( activity.supportFragmentManager, diff --git a/app/src/main/java/com/gh/common/dialog/CertificationDialog.kt b/app/src/main/java/com/gh/common/dialog/CertificationDialog.kt index 9fbe20eedd..9b18db28a3 100644 --- a/app/src/main/java/com/gh/common/dialog/CertificationDialog.kt +++ b/app/src/main/java/com/gh/common/dialog/CertificationDialog.kt @@ -14,12 +14,16 @@ import android.view.View import android.widget.CheckBox import android.widget.TextView import androidx.appcompat.app.AppCompatActivity -import com.gh.common.avoidcallback.AvoidOnResultManager -import com.gh.common.avoidcallback.Callback -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.avoidcallback.AvoidOnResultManager +import com.gh.gamecenter.common.avoidcallback.Callback +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.ShellActivity +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.entity.AuthDialogEntity import com.gh.gamecenter.entity.AuthDialogLevel import com.gh.gamecenter.entity.GameEntity @@ -28,7 +32,7 @@ import com.google.gson.reflect.TypeToken import com.halo.assistant.fragment.user.UserInfoEditFragment import com.lightgame.utils.AppManager -class CertificationDialog(context: Context, private val authDialogEntity: AuthDialogEntity, val gameId: String, val listener: DialogUtils.ConfirmListener) : +class CertificationDialog(context: Context, private val authDialogEntity: AuthDialogEntity, val gameId: String, val listener: ConfirmListener) : Dialog(context, R.style.GhAlertDialog) { private lateinit var view: View @@ -134,7 +138,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi context, ShellActivity.Type.REAL_NAME_INFO, ).apply { - putExtra(EntranceUtils.KEY_GAME_ID, gameId) + putExtra(EntranceConsts.KEY_GAME_ID, gameId) }, object : Callback { override fun onActivityResult(resultCode: Int, data: Intent?) { if (resultCode == Activity.RESULT_OK && data != null) { @@ -152,7 +156,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi companion object { @JvmStatic - fun showCertificationDialog(context: Context, game: GameEntity, listener: DialogUtils.ConfirmListener) { + fun showCertificationDialog(context: Context, game: GameEntity, listener: ConfirmListener) { //1.先判断是否登录 是执行2 否执行3 //2.判断是否实名认证 是终止 否执行3 //3.判断是否需要弹出认证弹窗接口 @@ -168,7 +172,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi } @SuppressLint("CheckResult") - private fun authDialog(context: Context, game: GameEntity, listener: DialogUtils.ConfirmListener) { + private fun authDialog(context: Context, game: GameEntity, listener: ConfirmListener) { var authDialog: AuthDialogEntity? = null if (game.authDialog != null) { authDialog = game.authDialog diff --git a/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt b/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt index 738a610951..1eabd4963c 100644 --- a/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt +++ b/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt @@ -19,10 +19,14 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.constant.Constants -import com.gh.common.util.* +import com.gh.gamecenter.common.constant.Constants import com.gh.download.DownloadManager import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.countDownTimer +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.DialogDeviceRemindBinding import com.gh.gamecenter.entity.DeviceDialogEntity import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/common/dialog/GameOffServiceDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/GameOffServiceDialogFragment.kt index 2997a70949..fbbe148516 100644 --- a/app/src/main/java/com/gh/common/dialog/GameOffServiceDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/GameOffServiceDialogFragment.kt @@ -10,18 +10,16 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView import androidx.core.text.HtmlCompat -import com.gh.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import com.gh.common.util.DirectUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toColor +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.DialogGameOffServiceBinding import com.gh.gamecenter.entity.GameEntity // 游戏关闭下载弹窗 -class GameOffServiceDialogFragment -// : BaseTrackableDialogFragment() - : BaseDialogFragment() { +class GameOffServiceDialogFragment : BaseDialogFragment() { private var mDialog: GameEntity.Dialog? = null private var mBinding: DialogGameOffServiceBinding? = null @@ -78,14 +76,6 @@ class GameOffServiceDialogFragment return super.onCreateDialog(savedInstanceState).apply { setCanceledOnTouchOutside(true) } } -// override fun getEvent(): String { -// return "游戏下载状态按钮" -// } -// -// override fun getKey(): String { -// return "查看详情弹窗" -// } - companion object { const val KEY_DIALOG = "dialog" diff --git a/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt index 34bca83c83..354d2a7572 100644 --- a/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/InstallPermissionDialogFragment.kt @@ -13,15 +13,20 @@ import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentTransaction import com.airbnb.lottie.LottieAnimationView import com.gh.common.constant.Config -import com.gh.common.constant.Constants -import com.gh.common.util.* -import com.gh.common.util.PermissionHelper.INSTALL_PERMISSION_CODE +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.utils.PermissionHelper.INSTALL_PERMISSION_CODE import com.gh.common.xapk.XapkInstaller import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.utils.PermissionHelper +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.getExtension +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.core.utils.MtaHelper import com.lightgame.download.DownloadEntity import kotlin.random.Random -class InstallPermissionDialogFragment : BaseTrackableDialogFragment() { +class InstallPermissionDialogFragment : BaseDialogFragment() { lateinit var mView: View var isXapk = false @@ -54,18 +59,15 @@ class InstallPermissionDialogFragment : BaseTrackableDialogFragment() { } closeTv.setOnClickListener { - MtaHelper.onEvent(getEvent(), getKey(), "文案样式_点击以后再说") if (isXapk) { mCallBack?.invoke() } dismiss() } closeIv.setOnClickListener { - MtaHelper.onEvent(getEvent(), getKey(), "图标样式_点击关闭") dismiss() } activateTv.setOnClickListener { - MtaHelper.onEvent(getEvent(), getKey(), if (randomNumber == 0) "文案样式_点击立即开启" else "图标样式_点击立即开启") PermissionHelper.toInstallPermissionSetting(requireActivity()) if (isXapk) { SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, requireActivity().javaClass.name) @@ -84,10 +86,6 @@ class InstallPermissionDialogFragment : BaseTrackableDialogFragment() { } } - override fun getEvent(): String = "安装引导弹窗" - - override fun getKey(): String = "引导弹窗" - companion object { @JvmStatic fun show(activity: AppCompatActivity, downloadEntity: DownloadEntity, callBack: (() -> Unit)?) { diff --git a/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt index 8ef1e0ebb1..52b16e63a5 100644 --- a/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt @@ -10,12 +10,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat -import com.gh.common.util.GsonUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.PermissionHelper -import com.gh.common.util.fromHtml +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.PermissionHelper +import com.gh.gamecenter.common.utils.fromHtml import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import com.gh.gamecenter.databinding.DialogNotificationHintBinding import com.gh.gamecenter.entity.NotificationStyleEntity import com.gh.gamecenter.entity.NotificationUgc @@ -27,7 +28,7 @@ import java.io.InputStreamReader import kotlin.random.Random // 通知权限弹窗 -class NotificationHintDialogFragment : BaseTrackableDialogFragment() { +class NotificationHintDialogFragment : BaseDialogFragment() { private var mNotificationUgc: NotificationUgc? = null private val mBinding: DialogNotificationHintBinding by lazy { DialogNotificationHintBinding.inflate(layoutInflater) } @@ -68,8 +69,6 @@ class NotificationHintDialogFragment : BaseTrackableDialogFragment() { } activateTv.setOnClickListener { - MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "点击立即开启") - MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "${styleEntity.scenes}_${styleEntity.styleNo}_点击立即开启") dismissAllowingStateLoss() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { //这种方案适用于 API 26, 即8.0(含8.0)以上可以用 @@ -88,24 +87,12 @@ class NotificationHintDialogFragment : BaseTrackableDialogFragment() { closeIv.setOnClickListener { dismissAllowingStateLoss() - MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "点击关闭") - MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "${styleEntity.scenes}_${styleEntity.styleNo}_点击关闭") } } dialog?.setCanceledOnTouchOutside(true) } - override fun getEvent(): String { - return "推送引导弹窗" - } - - override fun getKey(): String { - return "引导弹窗" - } - - override fun trackWithBasicDeviceInfo() = true - private fun getJsonFromAssets(): String? { val stringBuilder = StringBuilder() var bufferedReader: BufferedReader? = null diff --git a/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt index 558547b06e..1da047ca1c 100644 --- a/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/PackageCheckDialogFragment.kt @@ -15,12 +15,16 @@ import androidx.fragment.app.FragmentTransaction import androidx.lifecycle.Lifecycle import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.common.util.LogUtils +import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.download.DownloadManager import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentPackageCheckBinding import com.gh.gamecenter.databinding.PackageCheckItemBinding import com.gh.gamecenter.entity.DetectionObjectEntity @@ -52,7 +56,7 @@ class PackageCheckDialogFragment : BaseDialogFragment() { private var mAdapter: PackageCheckAdapter? = null private var mAllInstalledPackages = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0) var gameEntity: GameEntity? = null - var callBack: DialogUtils.ConfirmListener? = null + var callBack: ConfirmListener? = null private val dataWatcher = object : DataWatcher() { override fun onDataChanged(downloadEntity: DownloadEntity) { @@ -318,7 +322,7 @@ class PackageCheckDialogFragment : BaseDialogFragment() { companion object { @JvmStatic - fun show(activity: AppCompatActivity, gameEntity: GameEntity, callBack: DialogUtils.ConfirmListener) { + fun show(activity: AppCompatActivity, gameEntity: GameEntity, callBack: ConfirmListener) { val packageDialogEntity = gameEntity.packageDialog if (packageDialogEntity == null) { callBack.onConfirm() diff --git a/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt index 870b813a37..1ec238cb47 100644 --- a/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt +++ b/app/src/main/java/com/gh/common/dialog/PrivacyPolicyDialogFragment.kt @@ -12,14 +12,14 @@ import android.view.* import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentTransaction -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.dip2px -import com.gh.common.util.fromHtml -import com.gh.common.view.CustomLinkMovementMethod import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.fromHtml +import com.gh.gamecenter.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.databinding.DialogPrivacyProtocolBinding import com.gh.gamecenter.entity.DialogEntity import com.lightgame.utils.AppManager diff --git a/app/src/main/java/com/gh/common/view/ReserveDialog.kt b/app/src/main/java/com/gh/common/dialog/ReserveDialog.kt similarity index 91% rename from app/src/main/java/com/gh/common/view/ReserveDialog.kt rename to app/src/main/java/com/gh/common/dialog/ReserveDialog.kt index 39fbc96ca8..833de11e87 100644 --- a/app/src/main/java/com/gh/common/view/ReserveDialog.kt +++ b/app/src/main/java/com/gh/common/dialog/ReserveDialog.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.common.dialog import android.os.Bundle import android.view.LayoutInflater @@ -6,12 +6,13 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.util.ImageUtils -import com.gh.common.util.fromHtml +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.fromHtml import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.view.FixLinearLayoutManager import com.gh.gamecenter.databinding.DialogReserveBinding import com.gh.gamecenter.databinding.DialogReserveItemBinding import com.gh.gamecenter.entity.SimpleGameEntity diff --git a/app/src/main/java/com/gh/common/dialog/ReserveDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/ReserveDialogFragment.kt deleted file mode 100644 index bfa1f8732b..0000000000 --- a/app/src/main/java/com/gh/common/dialog/ReserveDialogFragment.kt +++ /dev/null @@ -1,384 +0,0 @@ -//package com.gh.common.dialog -// -//import android.annotation.SuppressLint -//import android.app.Application -//import android.os.Bundle -//import android.text.Html -//import android.view.* -//import android.view.animation.AnimationUtils -//import android.widget.EditText -//import android.widget.TextView -//import androidx.lifecycle.AndroidViewModel -//import androidx.lifecycle.MutableLiveData -//import androidx.lifecycle.Observer -//import butterknife.BindView -//import butterknife.ButterKnife -//import butterknife.OnClick -//import com.gh.base.fragment.BaseDialogFragment -//import com.gh.common.AppExecutor -//import com.gh.common.constant.Config -//import com.gh.common.history.HistoryHelper -//import com.gh.common.repository.ReservationRepository -//import com.gh.common.util.* -//import com.gh.gamecenter.R -//import com.gh.gamecenter.entity.GameEntity -//import com.gh.gamecenter.entity.NotificationUgc -//import com.gh.gamecenter.manager.UserManager -//import com.gh.gamecenter.retrofit.BiResponse -//import com.gh.gamecenter.retrofit.RetrofitManager -//import com.halo.assistant.HaloApp -//import com.lightgame.utils.Utils -//import io.reactivex.android.schedulers.AndroidSchedulers -//import io.reactivex.schedulers.Schedulers -//import okhttp3.ResponseBody -//import org.json.JSONArray -//import org.json.JSONObject -// -//// 预约弹窗 -//@Deprecated("v5.6.0废弃") -//class ReserveDialogFragment -// : BaseDialogFragment(), KeyboardHeightObserver { -//// : BaseTrackableDialogFragment() { -// -// @BindView(R.id.reserve_hint_tv) -// lateinit var reserveHintTv: TextView -// -// @BindView(R.id.reserve_content_tv) -// lateinit var reserveContentTv: TextView -// -// @BindView(R.id.reserve_completed_content_tv) -// lateinit var reserveCompletedContentTv: TextView -// -// @BindView(R.id.mobile_et) -// lateinit var mobileEt: EditText -// -// @BindView(R.id.reserve_container) -// lateinit var reserveContainer: View -// -// @BindView(R.id.reserve_completed_container) -// lateinit var reserveCompletedContainer: View -// -// @BindView(R.id.customizable_btn) -// lateinit var customizableBtn: TextView -// -// @BindView(R.id.content_container) -// lateinit var contentContainer: View -// -// @BindView(R.id.mobile_index_container) -// lateinit var mobileIndexContainer: View -// -// @BindView(R.id.mobile_index_reserve) -// lateinit var mobileIndexReserve: TextView -// -// @BindView(R.id.mobile_index_user) -// lateinit var mobileIndexUser: TextView -// -// @BindView(R.id.mobile_et_delete) -// lateinit var mobileEtDelete: View -// -// @BindView(R.id.layout_container) -// lateinit var layoutContainer: View -// -// private lateinit var mViewModel: ReserveViewModel -// -// var successCallback: SuccessCallback? = null -// -// private var mGame: GameEntity? = null -// private var mGameId: String = "" -// private var mGameName: String = "" -// -// private var mKeyboardHeightProvider: KeyboardHeightProvider? = null -// -// override fun onCreate(savedInstanceState: Bundle?) { -// super.onCreate(savedInstanceState) -// -// mGame = requireArguments().getParcelable(EntranceUtils.KEY_GAME) -// mGameId = mGame?.id ?:"" -// mGameName = mGame?.name ?:"" -// -// mViewModel = viewModelProvider() -// mKeyboardHeightProvider = KeyboardHeightProvider(activity) -// mKeyboardHeightProvider?.start() -// } -// -// override fun onActivityCreated(savedInstanceState: Bundle?) { -// super.onActivityCreated(savedInstanceState) -// dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) -// } -// -// override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { -// return inflater.inflate(R.layout.dialog_reserve_game, null) -// } -// -//// override fun getEvent(): String { -//// return "预约游戏" -//// } -//// -//// override fun getKey(): String { -//// return "预约功能操作" -//// } -// -// @Suppress("DEPRECATION") -// @SuppressLint("SetTextI18n") -// override fun onViewCreated(view: View, savedInstanceState: Bundle?) { -// super.onViewCreated(view, savedInstanceState) -// ButterKnife.bind(this, view) -// -// val reserveContent = "游戏上线,您将收到免费短信提醒" -// reserveContentTv.text = Html.fromHtml(reserveContent) -// -// -// mobileEt.setTextChangedListener { s, _, _, _ -> -// mobileIndexContainer.visibility = View.GONE -// mobileEtDelete.goneIf(s.trim().isEmpty()) -// } -// -// mViewModel.reservation.observeNonNull(this) { -// if (it.success) { -// showSuccessDialog(it.withMobile, it.boundWechat) -// successCallback?.onSuccess() -// HistoryHelper.insertGameEntity(mGame!!) -// } -// } -// -// mViewModel.reserveMobile.observe(viewLifecycleOwner, Observer { -// setMobileIndexHint(it) -// }) -// -// dialog?.setCanceledOnTouchOutside(true) -// } -// -// private fun showSuccessDialog(withMobile: Boolean, boundWechat: Boolean) { -// reserveHintTv.text = "游戏预约成功" -// reserveContainer.visibility = View.GONE -// reserveCompletedContainer.visibility = View.VISIBLE -// -// val reservation = Config.getSettings()?.appointment -// val dialogConfig = if (withMobile) reservation?.withMobile else reservation?.withoutMobile -// -// reserveCompletedContentTv.text = dialogConfig?.htmlContent?.fromHtml() -// if (dialogConfig?.text.isNullOrEmpty() -// || (dialogConfig?.type == "wechat_bind" && boundWechat)) { -// customizableBtn.visibility = View.GONE -// } else { -// customizableBtn.text = dialogConfig?.text -// customizableBtn.setOnClickListener { -//// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击跳转按钮") -// DirectUtils.directToLinkPage( -// requireContext(), -// dialogConfig!!.toLinkEntity(), -// "(游戏预约)", -// "") -// dismissAllowingStateLoss() -// } -// } -// } -// -// private fun setMobileIndexHint(reserveMobile: String?) { -// var userMobile = UserManager.getInstance().userInfoEntity?.mobile -// if (reserveMobile == userMobile) userMobile = null -// -// if (!reserveMobile.isNullOrEmpty()) { -// mobileIndexReserve.visibility = View.VISIBLE -// mobileIndexReserve.text = reserveMobile -// } else { -// mobileIndexReserve.visibility = View.GONE -// } -// -// if (!userMobile.isNullOrEmpty()) { -// mobileIndexUser.visibility = View.VISIBLE -// mobileIndexUser.text = userMobile -// } else { -// mobileIndexUser.visibility = View.GONE -// } -// mobileIndexContainer.goneIf(mobileIndexUser.visibility == View.GONE && mobileIndexReserve.visibility == View.GONE) -// if (mobileIndexContainer.visibility ==View.VISIBLE) { -// mobileIndexContainer.animation = AnimationUtils.loadAnimation(requireContext(), R.anim.reserve_dialog_index_anim) -// } -// } -// -// @OnClick(R.id.reserve_with_mobile_btn, -// R.id.reserve_without_mobile_btn, -// R.id.content_container, -// R.id.close_btn, -// R.id.customizable_btn, -// R.id.mobile_index_reserve, -// R.id.mobile_index_user, -// R.id.mobile_et_delete, -// R.id.mobile_et, -// R.id.layout_container) -// fun onClick(view: View) { -// when (view.id) { -// R.id.reserve_without_mobile_btn -> { -//// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击无手机号预约") -// if (mobileIndexContainer.visibility == View.VISIBLE) { -// mobileIndexContainer.visibility = View.GONE -// return -// } -// -// mViewModel.reserve(gameId = mGameId, gameName = mGameName) -// } -// -// R.id.reserve_with_mobile_btn -> { -// if (mobileIndexContainer.visibility == View.VISIBLE) { -// mobileIndexContainer.visibility = View.GONE -// return -// } -// -// val mobile = mobileEt.text.toString() -// if (mobile.length < 11 || !mobile.startsWith("1")) { -// Utils.toast(context, "手机号格式错误,请检查并重新输入") -// return -// } -// -//// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击立即预约") -// mViewModel.reserve(gameId = mGameId, gameName = mGameName, mobile = mobile) -// } -// -// R.id.close_btn -> { -//// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击关闭") -// dismissAllowingStateLoss() -// AppExecutor.uiExecutor.executeWithDelay(Runnable { -// NotificationHelper.showNotificationHintDialog(NotificationUgc.RESERVE_GAME) -// }, 1000) -// } -// R.id.content_container -> { -// mobileIndexContainer.visibility = View.GONE -// } -// R.id.mobile_index_reserve -> { -// mobileEt.setText(mobileIndexReserve.text.toString()) -// mobileEt.setSelection(mobileEt.text.length) -// mobileIndexContainer.visibility = View.GONE -// } -// R.id.mobile_index_user -> { -// mobileEt.setText(mobileIndexUser.text.toString()) -// mobileEt.setSelection(mobileEt.text.length) -// mobileIndexContainer.visibility = View.GONE -// } -// R.id.mobile_et_delete -> { -// mobileEt.setText("") -// } -// R.id.mobile_et -> { -// mobileIndexContainer.visibility = View.GONE -// } -// R.id.layout_container -> { -// dismissAllowingStateLoss() -// } -// } -// } -// -// override fun onResume() { -// super.onResume() -// if (HaloApp.getInstance().mCacheKeyboardHeight > 0) { -// val attributes = dialog?.window?.attributes -// val heightPixels = requireContext().resources.displayMetrics.heightPixels -// val mCacheKeyboardHeight = HaloApp.getInstance().mCacheKeyboardHeight -// val statusBarHeight = DisplayUtils.getStatusBarHeight(requireContext().resources) -// dialog?.window?.attributes?.height = heightPixels - mCacheKeyboardHeight - statusBarHeight -// attributes?.gravity = Gravity.TOP -// dialog?.window?.attributes = attributes -// } -// mKeyboardHeightProvider?.setKeyboardHeightObserver(this) -// } -// -// override fun onPause() { -// super.onPause() -// mKeyboardHeightProvider?.setKeyboardHeightObserver(null) -// } -// -// override fun onDestroy() { -// super.onDestroy() -// mKeyboardHeightProvider?.close() -// } -// -// override fun onKeyboardHeightChanged(height: Int, orientation: Int) { -// if (height > 0) { -// val attributes = dialog?.window?.attributes -// attributes?.gravity = Gravity.CENTER -// dialog?.window?.attributes = attributes -// HaloApp.getInstance().mCacheKeyboardHeight = height -// } -// } -// -// companion object { -// @JvmStatic -// fun getInstance(gameEntity: GameEntity, successCallback: SuccessCallback) = ReserveDialogFragment().apply { -// arguments = Bundle().apply { -// putParcelable(EntranceUtils.KEY_GAME, gameEntity) -// } -// this.successCallback = successCallback -// } -// } -// -// interface SuccessCallback { -// fun onSuccess() -// } -//} -// -//class ReserveViewModel(application: Application) : AndroidViewModel(application) { -// val reservation = MutableLiveData() -// -// val reserveMobile = MutableLiveData() -// -// init { -// getAppointmentMobile() -// } -// -// @SuppressLint("CheckResult") -// fun reserve(gameId: String, gameName: String, mobile: String = "") { -// -// val requestMap = hashMapOf() -// requestMap["game_id"] = gameId -// if (mobile.isNotEmpty()) { -// requestMap["mobile"] = mobile -// } -// -// RetrofitManager.getInstance().api -// .createNewGameReservation(requestMap.createRequestBody()) -// .subscribeOn(Schedulers.io()) -// .subscribe(object : BiResponse() { -// override fun onSuccess(data: ResponseBody) { -// var boundWechat = false -// tryWithDefaultCatch { -// boundWechat = JSONObject(data.string() ?: "").getBoolean("wechat_bind") -// } -// -// reservation.postValue(Reservation(success = true, withMobile = mobile.isNotEmpty(), boundWechat = boundWechat)) -// ReservationRepository.addReservationToMemoryAndRefresh(gameId) -// -//// MtaHelper.onEvent("预约游戏", "预约", gameName) -// } -// -// override fun onFailure(exception: Exception) { -// Utils.toast(getApplication(), exception.message) -// } -// }) -// } -// -// @SuppressLint("CheckResult") -// private fun getAppointmentMobile() { -// RetrofitManager.getInstance().api -// .getAppointmentMobile(UserManager.getInstance().userId) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(object : BiResponse() { -// override fun onSuccess(data: ResponseBody) { -// var mobile: String? = null -// tryCatchInRelease { -// val jsonArray = JSONArray(data.string()) -// if (jsonArray.length() > 0) { -// mobile = jsonArray.get(0).toString() -// } -// } -// -// reserveMobile.postValue(mobile) -// } -// -// override fun onFailure(exception: Exception) { -// reserveMobile.postValue(null) -// } -// }) -// } -// -// class Reservation(var success: Boolean = false, var withMobile: Boolean = false, var boundWechat: Boolean = false) -//} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/exposure/ExposureConverters.kt b/app/src/main/java/com/gh/common/exposure/ExposureConverters.kt index 0ad6eed89d..8b3392b110 100644 --- a/app/src/main/java/com/gh/common/exposure/ExposureConverters.kt +++ b/app/src/main/java/com/gh/common/exposure/ExposureConverters.kt @@ -1,8 +1,9 @@ package com.gh.common.exposure import androidx.room.TypeConverter -import com.gh.common.exposure.meta.Meta -import com.gh.common.util.GsonUtils +import com.gh.gamecenter.common.entity.ExposureEntity +import com.gh.gamecenter.common.exposure.meta.Meta +import com.gh.gamecenter.core.utils.GsonUtils import java.util.* import kotlin.collections.ArrayList diff --git a/app/src/main/java/com/gh/common/exposure/ExposureEvent.kt b/app/src/main/java/com/gh/common/exposure/ExposureEvent.kt index 4be2f800e1..9b5ff1cc4d 100644 --- a/app/src/main/java/com/gh/common/exposure/ExposureEvent.kt +++ b/app/src/main/java/com/gh/common/exposure/ExposureEvent.kt @@ -4,12 +4,13 @@ import android.os.Parcelable import androidx.annotation.Keep import androidx.room.Entity import androidx.room.PrimaryKey -import com.gh.common.constant.Constants -import com.gh.common.exposure.meta.Meta -import com.gh.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.exposure.meta.Meta +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.common.exposure.time.TimeUtil -import com.gh.common.util.getFirstElementDividedByDivider +import com.gh.gamecenter.common.utils.getFirstElementDividedByDivider import com.gh.download.server.BrowserInstallHelper +import com.gh.gamecenter.common.entity.ExposureEntity import com.gh.gamecenter.entity.GameEntity import com.lightgame.download.DownloadEntity import kotlinx.parcelize.Parcelize diff --git a/app/src/main/java/com/gh/common/exposure/ExposureManager.kt b/app/src/main/java/com/gh/common/exposure/ExposureManager.kt index 662f8537b5..2251c86967 100644 --- a/app/src/main/java/com/gh/common/exposure/ExposureManager.kt +++ b/app/src/main/java/com/gh/common/exposure/ExposureManager.kt @@ -1,10 +1,11 @@ package com.gh.common.exposure import com.aliyun.sls.android.producer.Log -import com.gh.common.loghub.LoghubHelper -import com.gh.common.util.toJson -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.loghub.LoghubHelper +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.common.utils.FixedSizeLinkedHashSet import com.halo.assistant.HaloApp import com.lightgame.utils.Utils import java.util.concurrent.ExecutorService @@ -126,19 +127,4 @@ object ExposureManager { logTime = event.time.toLong() } - class FixedSizeLinkedHashSet(var maxSize: Int) : LinkedHashSet() { - override fun add(element: T): Boolean { - if (size == maxSize) { - pop() - } - return super.add(element); - } - - private fun pop() { - if (size > 0) { - remove(iterator().next()) - } - } - } - } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/exposure/ExposureUtils.kt b/app/src/main/java/com/gh/common/exposure/ExposureUtils.kt index 50afe9b958..63e0018513 100644 --- a/app/src/main/java/com/gh/common/exposure/ExposureUtils.kt +++ b/app/src/main/java/com/gh/common/exposure/ExposureUtils.kt @@ -3,7 +3,8 @@ package com.gh.common.exposure import android.text.TextUtils import com.g00fy2.versioncompare.Version import com.gh.common.util.PackageUtils -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.FixedSizeLinkedHashSet +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameEntity import com.halo.assistant.HaloApp @@ -11,7 +12,7 @@ import com.lightgame.download.DownloadEntity object ExposureUtils { - private val mDownloadCompleteTraceEventIdSet = ExposureManager.FixedSizeLinkedHashSet(3) + private val mDownloadCompleteTraceEventIdSet = FixedSizeLinkedHashSet(3) @JvmStatic fun logADownloadExposureEvent( diff --git a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt index a18d7d3fda..b5eae07f58 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt @@ -1,14 +1,14 @@ package com.gh.common.filter import android.annotation.SuppressLint -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.debounceActionWithInterval -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.debounceActionWithInterval +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.R import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.functions.Function diff --git a/app/src/main/java/com/gh/common/history/HistoryHelper.kt b/app/src/main/java/com/gh/common/history/HistoryHelper.kt index b00d427fa0..723646f90c 100644 --- a/app/src/main/java/com/gh/common/history/HistoryHelper.kt +++ b/app/src/main/java/com/gh/common/history/HistoryHelper.kt @@ -1,10 +1,10 @@ package com.gh.common.history -import com.gh.common.runOnIoThread -import com.gh.common.util.clearHtmlFormatCompletely -import com.gh.common.util.removeInsertedContent -import com.gh.common.util.removeVideoContent -import com.gh.common.util.tryCatchInRelease +import com.gh.gamecenter.common.utils.clearHtmlFormatCompletely +import com.gh.gamecenter.common.utils.removeInsertedContent +import com.gh.gamecenter.common.utils.removeVideoContent +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.runOnIoThread import com.gh.gamecenter.entity.* import com.gh.gamecenter.qa.entity.AnswerDetailEntity import com.gh.gamecenter.qa.entity.AnswerEntity @@ -108,7 +108,7 @@ object HistoryHelper { @JvmStatic fun deleteGamesCollectionEntity(gameCollectionId: String) { - runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.gamesCollectionDao().deleteGamesCollection(GamesCollectionEntity(id = gameCollectionId)) }} + runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.gamesCollectionDao().deleteGamesCollection(GamesCollectionEntity(id = gameCollectionId)) } } } diff --git a/app/src/main/java/com/gh/common/im/ImHintHelper.kt b/app/src/main/java/com/gh/common/im/ImHintHelper.kt deleted file mode 100644 index 0626ae338c..0000000000 --- a/app/src/main/java/com/gh/common/im/ImHintHelper.kt +++ /dev/null @@ -1,67 +0,0 @@ -//package com.gh.common.im -// -//import android.app.Activity -//import androidx.core.view.ViewCompat -//import android.view.View -//import android.view.ViewGroup -// -//object ImHintHelper { -// -// @JvmStatic -// fun show(activity: Activity?) { -// activity?.let { -// var hintView = retrieveHintViewFromActivity(it) -// if (hintView == null) { -// hintView = ImHintView(it) -// hintView.showDot(ImManager.shouldShowFloatingWindowDot) -// -// val decorView = it.window.decorView as ViewGroup -// it.runOnUiThread { -// decorView.addView(hintView) -// } -// } else { -// hintView.showDot(ImManager.shouldShowFloatingWindowDot) -// } -// } -// } -// -// @JvmStatic -// fun dismiss(activity: Activity?) { -// activity?.let { -// clearCurrent(it) -// } -// } -// -// private fun retrieveHintViewFromActivity(activity: Activity?) : ImHintView? { -// (activity?.window?.decorView as? ViewGroup)?.let { -// for (i in 0..it.childCount) { -// val childView = if (it.getChildAt(i) is ImHintView) it.getChildAt(i) as ImHintView else null -// if (childView != null && childView.windowToken != null) { -// return childView -// } -// } -// return null -// } -// return null -// } -// -// private fun clearCurrent(activity: Activity?) { -// (activity?.window?.decorView as? ViewGroup)?.let { -// for (i in 0..it.childCount) { -// val childView = if (it.getChildAt(i) is ImHintView) it.getChildAt(i) as ImHintView else null -// if (childView != null && childView.windowToken != null) { -// ViewCompat.animate(childView).alpha(0f).withEndAction(getRemoveViewRunnable(childView)) -// } -// } -// } -// } -// -// private fun getRemoveViewRunnable(childView: View?): Runnable { -// return Runnable { -// childView?.let { -// (childView.parent as? ViewGroup)?.removeView(childView) -// } -// } -// } -// -//} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/im/ImHintView.kt b/app/src/main/java/com/gh/common/im/ImHintView.kt deleted file mode 100644 index e4893a338f..0000000000 --- a/app/src/main/java/com/gh/common/im/ImHintView.kt +++ /dev/null @@ -1,45 +0,0 @@ -//package com.gh.common.im -// -//import android.app.Activity -//import android.content.Context -//import android.util.AttributeSet -//import android.util.TypedValue -//import android.view.View -//import android.widget.RelativeLayout -//import androidx.core.view.ViewCompat -//import com.gh.common.util.DisplayUtils -//import com.gh.gamecenter.R -//import kotlinx.android.synthetic.main.view_im_hint.view.* -// -//class ImHintView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) -// : RelativeLayout(context, attrs, defStyle) { -// -// init { -// inflate(context, R.layout.view_im_hint, this) -// -// ViewCompat.setTranslationZ(this, Integer.MAX_VALUE.toFloat() - 1) -// -// ivContainer.setOnClickListener { -// if (context is Activity) { -// ImManager.startChatActivity(context) -// ImManager.removeNotification() -// } -// } -// -// val lp = ivContainer.layoutParams as RelativeLayout.LayoutParams -// -// lp.setMargins(0, 0, dp2px(30f), dp2px(106f) + DisplayUtils.retrieveNavigationHeight(context)) -// } -// -// fun showDot(show: Boolean) { -// if (show) { -// unreadDot.visibility = View.VISIBLE -// } else { -// unreadDot.visibility = View.GONE -// } -// } -// -// private fun dp2px(dp: Float): Int { -// return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.applicationContext.resources.displayMetrics).toInt() -// } -//} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/im/ImManager.kt b/app/src/main/java/com/gh/common/im/ImManager.kt deleted file mode 100644 index 1569b5bf59..0000000000 --- a/app/src/main/java/com/gh/common/im/ImManager.kt +++ /dev/null @@ -1,145 +0,0 @@ -package com.gh.common.im - -import android.app.Activity -import com.gh.gamecenter.HelpAndFeedbackActivity -import com.gh.gamecenter.MainActivity -import com.gh.gamecenter.MessageActivity - -object ImManager { - - const val IM_KEY = "893be270-9c75-11e8-a344-212975ba32b9" - const val SP_FLOATING_WINDOW_KEY = "IM_FLOATING_WINDOW" - const val SP_FLOATING_WINDOW_DOT_KEY = "IM_FLOATING_WINDOW_DOT" - - var shouldShowFloatingWindow = false - var shouldShowFloatingWindowDot = false - - // 记录当前用户 ID 避免重复初始化 - var currentUserId = "" - - @JvmStatic - fun attachIm() { -// try { -// if (UserManager.getInstance().userInfoEntity != null && -// currentUserId != UserManager.getInstance().userId) { -// currentUserId = UserManager.getInstance().userId -// MoorUtils.init(HaloApp.getInstance().application) -// Utils.init(HaloApp.getInstance().application) -// IMChatManager.getInstance().init( -// HaloApp.getInstance().application, -// ImReceiver.UNIQUE_BROADCAST_ACTION, -// IM_KEY, -// UserManager.getInstance().userInfoEntity?.name + "(" + UserManager.getInstance().userId + ")", -// UserManager.getInstance().userId) -// -// shouldShowFloatingWindow = SPUtils.getBoolean(SP_FLOATING_WINDOW_KEY + UserManager.getInstance().userId) -// shouldShowFloatingWindowDot = SPUtils.getBoolean(SP_FLOATING_WINDOW_DOT_KEY + UserManager.getInstance().userId) -// updateFloatingWindow() -// } -// } catch (e: Exception) { -// e.printStackTrace() -// } - } - - @JvmStatic - fun detachIm() { -// try { -// IMChatManager.getInstance().quitSDk() -// shouldShowFloatingWindow = false -// updateFloatingWindow() -// removeNotification() -// } catch (e: Exception) { -// e.printStackTrace() -// } - } - - @JvmStatic - fun startChatActivity(activity: Activity, inputContent: String? = "", requestCode: Int? = null) { -// if (!UserManager.getInstance().userId.isNullOrEmpty()) { -// try { -// SPUtils.setBoolean(SP_FLOATING_WINDOW_DOT_KEY + UserManager.getInstance().userId, false) -// shouldShowFloatingWindowDot = false -// val chatHelper = KfStartHelper(activity, UserManager.getInstance().userInfoEntity?.icon, inputContent, requestCode) -// chatHelper.initSdkChat( -// ImReceiver.UNIQUE_BROADCAST_ACTION, -// IM_KEY, -// UserManager.getInstance().userInfoEntity?.name + "(" + UserManager.getInstance().userId + ")" -// + "[" + BuildConfig.VERSION_NAME + "]", -// UserManager.getInstance().userId) -// } catch (e: Exception) { -// e.printStackTrace() -// } -// } - } - - @JvmStatic - fun showFloatingWindow() { - updateShouldShowFloatingWindow(true) - updateShouldShowFloatingWindowDot(true) - updateFloatingWindow() - } - - @JvmStatic - fun dismissFloatingWindow() { - updateShouldShowFloatingWindow(false) - updateShouldShowFloatingWindowDot(false) - updateFloatingWindow() - } - - @JvmStatic - fun removeNotification() { -// val notificationManager = HaloApp.getInstance().application?.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager -// notificationManager.cancel(ImReceiver.NOTIFICATION_ID) - } - - @JvmStatic - fun updateFloatingWindow() { -// try { -// CurrentActivityHolder.getCurrentActivity()?.let { -// if (isActivityValid(it)) { -// if (shouldShowFloatingWindow) { -// ImHintHelper.show(it) -// } else { -// ImHintHelper.dismiss(it) -// removeNotification() -// } -// } -// } -// } catch (e: Exception) { -// e.printStackTrace() -// } - } - - @JvmStatic - fun sendFeedbackMessage(message: String) { -// val fromToMessage = IMMessage.createTxtMessage(message) -// runOnIoThread { -// tryWithDefaultCatch { -// IMChat.getInstance().sendMessage(fromToMessage, object : ChatListener { -// override fun onProgress(p0: Int) {} -// override fun onSuccess() {} -// override fun onFailed() {} -// }) -// } -// } - } - - fun updateShouldShowFloatingWindow(show: Boolean) { -// SPUtils.setBoolean(SP_FLOATING_WINDOW_KEY + UserManager.getInstance().userId, show) -// shouldShowFloatingWindow = show - } - - fun updateShouldShowFloatingWindowDot(show: Boolean) { -// SPUtils.setBoolean(SP_FLOATING_WINDOW_DOT_KEY + UserManager.getInstance().userId, show) -// shouldShowFloatingWindowDot = show - } - - private fun isActivityValid(activity: Activity): Boolean { - return when (activity) { - is MainActivity -> true - is HelpAndFeedbackActivity -> true - is MessageActivity -> true - else -> false - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/im/ImReceiver.kt b/app/src/main/java/com/gh/common/im/ImReceiver.kt deleted file mode 100644 index e85974ed5c..0000000000 --- a/app/src/main/java/com/gh/common/im/ImReceiver.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.gh.common.im - -import android.app.NotificationManager -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent - -class ImReceiver : BroadcastReceiver() { - - companion object { - const val UNIQUE_BROADCAST_ACTION = "com.gh.im" - const val NOTIFICATION_ID: Int = 987321 - } - - var notificationManager: NotificationManager? = null - - override fun onReceive(context: Context?, intent: Intent?) { -// context?.doOnMainProcessOnly { -// intent?.let { -// if (intent.action == IMChatManager.NEW_MSG_ACTION) { -// notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager -// // 判断 ImActivity 是否在最顶端 -// if (CurrentActivityHolder.getCurrentActivity() is ChatActivity) { -// ImManager.showFloatingWindow() -// ImManager.updateShouldShowFloatingWindowDot(false) -// } else { -// val contentIntent = Intent(Utils.getApp(), ChatActivity::class.java) -// -// contentIntent.putExtra("PeerId", "") -// contentIntent.putExtra("type", "peedId") -// -// contentIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK -// val resultPendingIntent = PendingIntent.getActivity( -// Utils.getApp(), -// 0, -// contentIntent, -// PendingIntent.FLAG_UPDATE_CURRENT -// ) -// -// // 新的通知 -// val builder = NotificationCompat.Builder(Utils.getApp(), "Halo_IM") -// val notification = builder.setTicker("您有新的消息") -// .setDefaults(Notification.DEFAULT_ALL) -// .setSmallIcon(R.drawable.ic_notification) -// .setWhen(System.currentTimeMillis()) -// .setContentIntent(resultPendingIntent) -// .setContentTitle("光环助手客服回复") -// .setContentText("您有新的消息") -// .setAutoCancel(true) -// .build() -// -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { -// val channel = NotificationChannel("Halo_IM", "Halo_IM", NotificationManager.IMPORTANCE_DEFAULT) -// notificationManager?.createNotificationChannel(channel) -// } -// -// if (notification != null) { -// notificationManager?.notify(NOTIFICATION_ID, notification) -// ImManager.showFloatingWindow() -// } -// } -// } else if (intent.action == IMChatManager.FINISH_ACTION) { -// ImManager.dismissFloatingWindow() -// } -// } -// } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/notifier/Notifier.kt b/app/src/main/java/com/gh/common/notifier/Notifier.kt deleted file mode 100644 index f443c4905e..0000000000 --- a/app/src/main/java/com/gh/common/notifier/Notifier.kt +++ /dev/null @@ -1,170 +0,0 @@ -package com.gh.common.notifier - -import android.app.Activity -import androidx.core.view.ViewCompat -import android.view.View -import android.view.ViewGroup -import com.gh.common.util.SPUtils -import com.gh.gamecenter.* -import java.lang.ref.WeakReference - -@Suppress("DEPRECATION") -class Notifier private constructor() { - - companion object { - - private var activityWeakReference: WeakReference? = null - - private const val SP_VIEWED_NOTIFIER = "viewed_notifier" - - /** - * 根据内容决定是否显示 Notifier - */ - @JvmStatic - fun shouldShowNotifier(content: String): Boolean { - val viewedNotifierCollection = SPUtils.getString(SP_VIEWED_NOTIFIER) - return !viewedNotifierCollection.contains(content) - } - - /** - * 标记相应内容的 Notifier 已经显示过了 - */ - @JvmStatic - fun tagNotifierAsShowed(content: String) { - val viewedNotifierCollection = SPUtils.getString(SP_VIEWED_NOTIFIER) - if (viewedNotifierCollection.length > 3000) { - SPUtils.setString(SP_VIEWED_NOTIFIER, content) - } else { - SPUtils.setString(SP_VIEWED_NOTIFIER, viewedNotifierCollection + content) - } - } - - @JvmStatic - fun create(activity: Activity?): Notifier { - if (activity == null) { - throw IllegalArgumentException("Activity cannot be null!") - } - - val notifier = Notifier() - - // Hide current NotifierView, if one is active - clearCurrent(activity) - - notifier.setActivity(activity) - notifier.notifierView = NotifierView(activity) - - return notifier - } - - @JvmStatic - fun isActivityValid(activity: Activity?): Boolean { - if (activity == null) return false - - return when (activity) { - is MessageActivity -> false - is DownloadManagerActivity -> false - is CleanApkActivity -> false - is SplashScreenActivity -> false - else -> isNotExistInActivity(activity) - } - } - - @JvmStatic - fun isNotExistInActivity(activity: Activity?): Boolean { - if (activity == null) return false - - (activity.window?.decorView as? ViewGroup)?.let { - //Find all NotifierView Views in Parent layout - for (i in 0..it.childCount) { - val childView = if (it.getChildAt(i) is NotifierView) it.getChildAt(i) as NotifierView else null - if (childView != null && childView.windowToken != null) { - return false - } - } - } - return true - } - - /** - * Cleans up the currently showing notifierView view, if one is present - * - * @param activity The current Activity - */ - @JvmStatic - fun clearCurrent(activity: Activity?) { - (activity?.window?.decorView as? ViewGroup)?.let { - //Find all NotifierView Views in Parent layout - for (i in 0..it.childCount) { - val childView = if (it.getChildAt(i) is NotifierView) it.getChildAt(i) as NotifierView else null - if (childView != null && childView.windowToken != null) { - ViewCompat.animate(childView).alpha(0f).withEndAction(getRemoveViewRunnable(childView)) - } - } - } - } - - @JvmStatic - fun hide() { - activityWeakReference?.get()?.let { clearCurrent(it) } - } - - private fun getRemoveViewRunnable(childView: NotifierView?): Runnable { - return Runnable { - childView?.let { - (childView.parent as? ViewGroup)?.removeView(childView) - } - } - } - } - - private var notifierView: NotifierView? = null - - private val activityDecorView: ViewGroup? - get() { - var decorView: ViewGroup? = null - - activityWeakReference?.get()?.let { - decorView = it.window.decorView as ViewGroup - } - - return decorView - } - - fun show(showVerticalTranslateAnimation: Boolean, delay: Long? = 0): NotifierView? { - activityWeakReference?.get()?.let { - it.runOnUiThread { - activityDecorView?.postDelayed({ - notifierView?.showVerticalTranslateAnimation = showVerticalTranslateAnimation - activityDecorView?.addView(notifierView) - }, delay!!) - } - } - - return notifierView - } - - fun setIcon(url: String?): Notifier { - url?.let { notifierView?.setIcon(it) } - return this - } - - fun setText(text: String?): Notifier { - notifierView?.setText(text) - - return this - } - - fun setDuration(time: Long): Notifier { - notifierView?.duration = time - return this - } - - fun setOnClickListener(onClickListener: View.OnClickListener): Notifier { - notifierView?.findViewById(R.id.cardView)?.setOnClickListener(onClickListener) - return this - } - - private fun setActivity(activity: Activity) { - activityWeakReference = WeakReference(activity) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/notifier/NotifierView.kt b/app/src/main/java/com/gh/common/notifier/NotifierView.kt deleted file mode 100644 index f2eeb0f41f..0000000000 --- a/app/src/main/java/com/gh/common/notifier/NotifierView.kt +++ /dev/null @@ -1,312 +0,0 @@ -package com.gh.common.notifier - -import android.animation.* -import android.content.Context -import android.graphics.Path -import android.text.TextUtils -import android.util.AttributeSet -import android.util.Log -import android.util.TypedValue -import android.view.Gravity -import android.view.MotionEvent -import android.view.View -import android.view.ViewGroup -import android.widget.FrameLayout -import android.widget.TextView -import androidx.cardview.widget.CardView -import androidx.core.view.ViewCompat -import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.util.DisplayUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.doOnEnd -import com.gh.common.util.doOnStart -import com.gh.gamecenter.R - -class NotifierView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) - : FrameLayout(context, attrs, defStyle) { - - companion object { - const val SCALE_MINI = 0.2F - const val SCALE_DEFAULT = 1F - - const val DEFAULT_DURATION = 500L - } - - var onShowListener: OnShowNotificationListener? = null - var onHideListener: OnHideNotificationListener? = null - - lateinit var expandAnimator: ValueAnimator - lateinit var shrinkAnimator: ValueAnimator - - lateinit var translateUpAnimator: ObjectAnimator - lateinit var translateDownAnimator: ObjectAnimator - - lateinit var translateToLeftAnimator: ObjectAnimator - lateinit var translateToRightAnimator: ObjectAnimator - - lateinit var zoomInAnimator: ObjectAnimator - lateinit var zoomOutAnimator: ObjectAnimator - - var showAnimatorSet: AnimatorSet - var hideAnimatorSet: AnimatorSet - - var rightToLeftPath: Path - var leftToRightPath: Path - - var veryRight: Float = 0F - var veryBottom: Float = 0F - var centerX: Float = 0F - - var navigationHeight = 0 - - var textWidth: Int = 0 - var cardViewWidth: Int = 0 - var verticalAnimationOffset: Int = 0 - - var duration = DEFAULT_DURATION - - var showVerticalTranslateAnimation: Boolean = true - - private var mCardView: CardView - private var mContentTv: TextView - private var mIconIv: SimpleDraweeView - - init { - inflate(context, R.layout.view_notifier, this) - - ViewCompat.setTranslationZ(this, Integer.MAX_VALUE.toFloat()) - - mCardView = findViewById(R.id.cardView) - mContentTv = findViewById(R.id.tvText) - mIconIv = findViewById(R.id.ivIcon) - - mCardView.scaleX = SCALE_MINI - mCardView.scaleY = SCALE_MINI - - verticalAnimationOffset = dp2px(100F) - - navigationHeight = DisplayUtils.retrieveNavigationHeight(context) - - rightToLeftPath = Path() - leftToRightPath = Path() - - showAnimatorSet = AnimatorSet() - hideAnimatorSet = AnimatorSet() - } - - override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { - super.onLayout(changed, left, top, right, bottom) - - centerX = (left + right - cardViewWidth) / 2F - - // TODO Provide method to change these absolute offset. - val r = right - dp2px(72F).toFloat() - val b = bottom - dp2px(145F).toFloat() - navigationHeight - - // Only set - if (veryRight != r || veryBottom != b) { - veryRight = r - veryBottom = b - - rightToLeftPath.moveTo(r, b) - rightToLeftPath.lineTo(centerX, b) - - leftToRightPath.moveTo(centerX, b) - leftToRightPath.lineTo(r, b) - - initAnimator() - } - } - - private fun initAnimator() { - expandAnimator = ValueAnimator.ofFloat(0F, 1F) - expandAnimator.duration = DEFAULT_DURATION - expandAnimator.addUpdateListener { a -> - val progress = a?.animatedValue as Float - mContentTv.width = (textWidth * progress).toInt() - } - expandAnimator.doOnEnd { - enableSwipeToDismiss() - shrinkAfterDelay() - } - - shrinkAnimator = ValueAnimator.ofFloat(1F, 0F) - shrinkAnimator.duration = DEFAULT_DURATION - shrinkAnimator.addUpdateListener { a -> - val progress = a?.animatedValue as Float - mContentTv.width = (textWidth * progress).toInt() - } - shrinkAnimator.doOnEnd { - val lp = FrameLayout.LayoutParams(mCardView.layoutParams) - lp.gravity = Gravity.NO_GRAVITY - mCardView.layoutParams = lp - - disableSwipeToDismiss() - } - - translateToLeftAnimator = ObjectAnimator.ofFloat(mCardView, "translationX", veryRight, centerX) - translateToLeftAnimator.duration = DEFAULT_DURATION - translateToLeftAnimator.doOnEnd { - onShowListener?.onShow() - - val lp = FrameLayout.LayoutParams(mCardView.layoutParams) - lp.gravity = Gravity.CENTER_HORIZONTAL - mCardView.layoutParams = lp - mCardView.translationX = 0f - - expandAnimator.start() - } - - translateToRightAnimator = ObjectAnimator.ofFloat(mCardView, "translationX", centerX, veryRight) - translateToRightAnimator.duration = DEFAULT_DURATION - - translateUpAnimator = ObjectAnimator.ofFloat(mCardView, "translationY", veryBottom + verticalAnimationOffset, veryBottom) - translateUpAnimator.duration = DEFAULT_DURATION - translateUpAnimator.doOnStart { mCardView.translationX = veryRight } - - translateDownAnimator = ObjectAnimator.ofFloat(mCardView, "translationY", veryBottom, veryBottom + verticalAnimationOffset) - translateDownAnimator.duration = DEFAULT_DURATION - - zoomInAnimator = ObjectAnimator.ofPropertyValuesHolder(mCardView, PropertyValuesHolder.ofFloat("scaleX", SCALE_DEFAULT), - PropertyValuesHolder.ofFloat("scaleY", SCALE_DEFAULT)) - zoomInAnimator.duration = DEFAULT_DURATION - zoomInAnimator.doOnStart { mCardView.translationX = veryRight } - zoomInAnimator.doOnStart { mCardView.translationY = veryBottom } - - zoomOutAnimator = ObjectAnimator.ofPropertyValuesHolder(mCardView, PropertyValuesHolder.ofFloat("scaleX", SCALE_MINI), - PropertyValuesHolder.ofFloat("scaleY", SCALE_MINI)) - zoomOutAnimator.duration = DEFAULT_DURATION - zoomOutAnimator.doOnEnd { removeFromParent() } - - if (showVerticalTranslateAnimation) { - showAnimatorSet.play(translateUpAnimator).with(zoomInAnimator).before(translateToLeftAnimator) - } else { - showAnimatorSet.play(zoomInAnimator).before(translateToLeftAnimator) - } - showAnimatorSet.start() - } - - private fun enableSwipeToDismiss() { - mCardView?.setOnTouchListener(SwipeDismissTouchListener(mCardView, object : SwipeDismissTouchListener.DismissCallbacks { - override fun canDismiss(): Boolean { - return true - } - - override fun onDismiss(view: View) { - removeFromParent() - } - - override fun onTouch(view: View, touch: Boolean) { - // Ignore. - } - })) - } - - private fun disableSwipeToDismiss() { - mCardView?.setOnTouchListener(null) - } - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - - showAnimatorSet.cancel() - hideAnimatorSet.cancel() - - try { - removeAllListeners(expandAnimator, - shrinkAnimator, - translateUpAnimator, - translateDownAnimator, - translateToLeftAnimator, - translateToRightAnimator) - } catch (e: Exception) { - e.printStackTrace() - } - } - - private fun removeAllListeners(vararg ts: Animator) { - for (a in ts) { - a.removeAllListeners() - if (a is ValueAnimator) { - a.removeAllUpdateListeners() - } - } - } - - override fun onTouchEvent(event: MotionEvent): Boolean { - performClick() - return super.onTouchEvent(event) - } - - private fun shrinkAfterDelay() { - postDelayed({ shrink() }, duration) - } - - private fun shrink() { - shrinkAnimator.doOnEnd { hide() } - shrinkAnimator.start() - } - - private fun removeFromParent() { - clearAnimation() - visibility = View.GONE - - postDelayed(object : Runnable { - override fun run() { - try { - if (parent == null) { - Log.e(javaClass.simpleName, "getParent() returning Null") - } else { - try { - (parent as ViewGroup).removeView(this@NotifierView) - - onHideListener?.onHide() - } catch (ex: Exception) { - Log.e(javaClass.simpleName, "Cannot remove from parent layout") - } - } - } catch (ex: Exception) { - Log.e(javaClass.simpleName, Log.getStackTraceString(ex)) - } - } - }, 100) - } - - fun setText(text: String?) { - if (!TextUtils.isEmpty(text)) { - mContentTv.text = text - mContentTv.measure(0, 0) - textWidth = mContentTv.measuredWidth - mContentTv.width = 0 - - mCardView.measure(0, 0) - cardViewWidth = mCardView.measuredWidth - } - } - - fun hide() { - if (showVerticalTranslateAnimation) { - hideAnimatorSet.play(translateDownAnimator).with(zoomOutAnimator).after(translateToRightAnimator) - } else { - hideAnimatorSet.play(zoomOutAnimator).after(translateToRightAnimator) - } - hideAnimatorSet.start() - } - - fun setIcon(url: String) { - ImageUtils.display(mIconIv, url) - } - - private fun dp2px(dp: Float): Int { - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.applicationContext.resources.displayMetrics).toInt() - } - - interface OnShowNotificationListener { - fun onShow() - } - - interface OnHideNotificationListener { - fun onHide() - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/notifier/SwipeDismissTouchListener.kt b/app/src/main/java/com/gh/common/notifier/SwipeDismissTouchListener.kt deleted file mode 100644 index 5db53d7e29..0000000000 --- a/app/src/main/java/com/gh/common/notifier/SwipeDismissTouchListener.kt +++ /dev/null @@ -1,238 +0,0 @@ -package com.gh.common.notifier - -/* - * Copyright 2013 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Modifications Copyright (C) 2017 David Kwon - */ - -import android.animation.Animator -import android.animation.AnimatorListenerAdapter -import android.animation.ValueAnimator -import android.os.Build -import androidx.annotation.RequiresApi -import android.view.MotionEvent -import android.view.VelocityTracker -import android.view.View -import android.view.ViewConfiguration - -/** - * A [View.OnTouchListener] that makes any [View] dismissable when the - * user swipes (drags her finger) horizontally across the view. - * - * @param view The view to make dismissable. - * @param callbacks The callback to trigger when the user has indicated that she would like to - * dismiss this view. - */ -class SwipeDismissTouchListener( - private val mView: View, - private val mCallbacks: DismissCallbacks) : View.OnTouchListener { - - // Cached ViewConfiguration and system-wide constant values - private val mSlop: Int - private val mMinFlingVelocity: Int - private val mAnimationTime: Long - private var mViewWidth = 1 // 1 and not 0 to prevent dividing by zero - - // Transient properties - private var mDownX: Float = 0.toFloat() - private var mDownY: Float = 0.toFloat() - private var mSwiping: Boolean = false - private var mSwipingSlop: Int = 0 - private var mVelocityTracker: VelocityTracker? = null - private var mTranslationX: Float = 0.toFloat() - - init { - val vc = ViewConfiguration.get(mView.context) - mSlop = vc.scaledTouchSlop - mMinFlingVelocity = vc.scaledMinimumFlingVelocity * 16 - mAnimationTime = mView.context.resources.getInteger( - android.R.integer.config_shortAnimTime).toLong() - } - - @RequiresApi(api = Build.VERSION_CODES.HONEYCOMB_MR1) - override fun onTouch(view: View, motionEvent: MotionEvent): Boolean { - // offset because the view is translated during swipe - motionEvent.offsetLocation(mTranslationX, 0f) - - if (mViewWidth < 2) { - mViewWidth = mView.width - } - - when (motionEvent.actionMasked) { - MotionEvent.ACTION_DOWN -> { - mDownX = motionEvent.rawX - mDownY = motionEvent.rawY - if (mCallbacks.canDismiss()) { - mVelocityTracker = VelocityTracker.obtain() - mVelocityTracker!!.addMovement(motionEvent) - } - mCallbacks.onTouch(view, true) - return false - } - MotionEvent.ACTION_UP -> { - mVelocityTracker?.run { - val deltaX = motionEvent.rawX - mDownX - this.addMovement(motionEvent) - this.computeCurrentVelocity(1000) - val velocityX = this.xVelocity - val absVelocityX = Math.abs(velocityX) - val absVelocityY = Math.abs(this.yVelocity) - var dismiss = false - var dismissRight = false - if (Math.abs(deltaX) > mViewWidth / 2 && mSwiping) { - dismiss = true - dismissRight = deltaX > 0 - } else if (mMinFlingVelocity <= absVelocityX && absVelocityY < absVelocityX && mSwiping) { - // dismiss only if flinging in the same direction as dragging - dismiss = velocityX < 0 == deltaX < 0 - dismissRight = this.xVelocity > 0 - } - if (dismiss) { - // dismiss - mView.animate() - .translationX((if (dismissRight) mViewWidth else -mViewWidth).toFloat()) - .alpha(0f) - .setDuration(mAnimationTime) - .setListener(object : AnimatorListenerAdapter() { - override fun onAnimationEnd(animation: Animator) { - performDismiss() - } - }) - } else if (mSwiping) { - // cancel - mView.animate() - .translationX(0f) - .alpha(1f) - .setDuration(mAnimationTime) - .setListener(null) - mCallbacks.onTouch(view, false) - } - this.recycle() - mVelocityTracker = null - mTranslationX = 0f - mDownX = 0f - mDownY = 0f - mSwiping = false - } - } - MotionEvent.ACTION_CANCEL -> { - mVelocityTracker?.run { - mView.animate() - .translationX(0f) - .alpha(1f) - .setDuration(mAnimationTime) - .setListener(null) - this.recycle() - mVelocityTracker = null - mTranslationX = 0f - mDownX = 0f - mDownY = 0f - mSwiping = false - } - } - MotionEvent.ACTION_MOVE -> { - mVelocityTracker?.run { - this.addMovement(motionEvent) - val deltaX = motionEvent.rawX - mDownX - val deltaY = motionEvent.rawY - mDownY - if (Math.abs(deltaX) > mSlop && Math.abs(deltaY) < Math.abs(deltaX) / 2) { - mSwiping = true - mSwipingSlop = if (deltaX > 0) mSlop else -mSlop - mView.parent.requestDisallowInterceptTouchEvent(true) - - // Cancel listview's touch - val cancelEvent = MotionEvent.obtain(motionEvent) - cancelEvent.action = MotionEvent.ACTION_CANCEL or (motionEvent.actionIndex shl MotionEvent.ACTION_POINTER_INDEX_SHIFT) - mView.onTouchEvent(cancelEvent) - cancelEvent.recycle() - } - - if (mSwiping) { - mTranslationX = deltaX - mView.translationX = deltaX - mSwipingSlop - // TODO: use an ease-out interpolator or such - mView.alpha = Math.max(0f, Math.min(1f, - 1f - 2f * Math.abs(deltaX) / mViewWidth)) - return true - } - } - } - else -> { - view.performClick() - return false - } - } - return false - } - - @RequiresApi(api = Build.VERSION_CODES.HONEYCOMB) - private fun performDismiss() { - // Animate the dismissed view to zero-height and then fire the dismiss callback. - // This triggers layout on each animation frame; in the future we may want to do something - // smarter and more performant. - - val lp = mView.layoutParams - val originalHeight = mView.height - - val animator = ValueAnimator.ofInt(originalHeight, 1).setDuration(mAnimationTime) - - animator.addListener(object : AnimatorListenerAdapter() { - override fun onAnimationEnd(animation: Animator) { - mCallbacks.onDismiss(mView) - // Reset view presentation - mView.alpha = 1f - mView.translationX = 0f - lp.height = originalHeight - mView.layoutParams = lp - } - }) - - animator.addUpdateListener { valueAnimator -> - lp.height = valueAnimator.animatedValue as Int - mView.layoutParams = lp - } - - animator.start() - } - - /** - * The callback interface used by [SwipeDismissTouchListener] to inform its client - * about a successful dismissal of the view for which it was created. - */ - interface DismissCallbacks { - /** - * Called to determine whether the view can be dismissed. - * - * @return boolean The view can dismiss. - */ - fun canDismiss(): Boolean - - /** - * Called when the user has indicated they she would like to dismiss the view. - * - * @param view The originating [View] - */ - fun onDismiss(view: View) - - /** - * Called when the user touches the view or release the view. - * - * @param view The originating [View] - * @param touch The view is being touched. - */ - fun onTouch(view: View, touch: Boolean) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/ActivationProviderImpl.kt b/app/src/main/java/com/gh/common/provider/ActivationProviderImpl.kt new file mode 100644 index 0000000000..4c7fa2f3b8 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/ActivationProviderImpl.kt @@ -0,0 +1,18 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.ActivationHelper +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IActivationProvider + +@Route(path = RouteConsts.provider.activation, name = "ActivationHelper暴露服务") +interface ActivationProviderImpl : IActivationProvider { + override fun init(context: Context?) { + + } + + override fun sendActivationInfo() { + ActivationHelper.sendActivationInfo() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/AppProviderImpl.kt b/app/src/main/java/com/gh/common/provider/AppProviderImpl.kt new file mode 100644 index 0000000000..c6b3069776 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/AppProviderImpl.kt @@ -0,0 +1,51 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IAppProvider +import com.halo.assistant.HaloApp + +@Route(path = RouteConsts.provider.app, name = "Application暴露服务") +class AppProviderImpl : IAppProvider { + override fun init(context: Context?) { + + } + + override fun getAppName(): String { + return HaloApp.getInstance().getString(R.string.app_name) + } + + override fun getGid(): String { + return HaloApp.getInstance().gid ?: "" + } + + override fun getOaid(): String { + return HaloApp.getInstance().oaid ?: "" + } + + override fun getChannel(): String { + return HaloApp.getInstance().channel ?: "" + } + + override fun getUserAgent(): String { + return HaloApp.getInstance().userAgent ?: "" + } + + override fun getServerUserMark(): String { + return HaloApp.getInstance().serverUserMark ?: "" + } + + override fun getDeviceRamSize(): Long { + return HaloApp.getInstance().deviceRamSize + } + + override fun getTemporaryLocalDeviceId(): String { + return HaloApp.getInstance().temporaryLocalDeviceId ?: "" + } + + override fun isUserAcceptPrivacyPolicy(context: Context): Boolean { + return HaloApp.isUserAcceptPrivacyPolicy(context) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/BuildConfigImpl.kt b/app/src/main/java/com/gh/common/provider/BuildConfigImpl.kt new file mode 100644 index 0000000000..ba6ea87825 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/BuildConfigImpl.kt @@ -0,0 +1,34 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IBuildConfigProvider + +@Route(path = RouteConsts.provider.buildConfig, name = "BuildConfig暴露服务") +class BuildConfigImpl : IBuildConfigProvider { + override fun init(context: Context?) { + + } + + override fun getApplicationId(): String = BuildConfig.APPLICATION_ID + + override fun getVersionName(): String = BuildConfig.VERSION_NAME + + override fun getExposureVersion(): String = BuildConfig.EXPOSURE_VERSION + + override fun isDebug(): Boolean = BuildConfig.DEBUG + + override fun getBuildTime(): Long = BuildConfig.BUILD_TIME + + override fun getApiHost(): String = BuildConfig.API_HOST + + override fun getDevApiHost(): String = BuildConfig.DEV_API_HOST + + override fun getNewApiHost(): String = BuildConfig.NEW_API_HOST + + override fun getNewDevApiHost(): String = BuildConfig.NEW_DEV_API_HOST + + override fun getIsNightModeOn(): Boolean = BuildConfig.IS_NIGHT_MODE_ON +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/CheckLoginProviderImpl.kt b/app/src/main/java/com/gh/common/provider/CheckLoginProviderImpl.kt new file mode 100644 index 0000000000..a5f2987745 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/CheckLoginProviderImpl.kt @@ -0,0 +1,18 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.CheckLoginUtils +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.ICheckLoginProvider + +@Route(path = RouteConsts.provider.checkLogin, name = "CheckLoginUtils暴露服务") +class CheckLoginProviderImpl : ICheckLoginProvider { + override fun checkLogin(context: Context, entrance: String, action: (() -> Unit)?) { + CheckLoginUtils.checkLogin(context, entrance, action) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt b/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt new file mode 100644 index 0000000000..50d5c1aaf1 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt @@ -0,0 +1,62 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.constant.Config +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IConfigProvider + +@Route(path = RouteConsts.provider.config, name = "Config暴露服务") +class ConfigProviderImpl : IConfigProvider { + override fun getTencentAppId(): String { + return Config.TENCENT_APPID + } + + override fun getWechatAppId(): String { + return Config.WECHAT_APPID + } + + override fun getUploadLimitSize(): Long { + return Config.getSettings()?.image?.uploadLimitSize ?: 0L + } + + override fun getSize(): Int { + return Config.getSettings()?.image?.size ?: 0 + } + + override fun getRatio(): Int { + return Config.getSettings()?.image?.ratio ?: 0 + } + + override fun getQuality(): Int { + return Config.getSettings()?.image?.quality ?: 0 + } + + override fun getGif(): String { + return Config.getSettings()?.image?.oss?.gif ?: "" + } + + override fun getJpeg(): String { + return Config.getSettings()?.image?.oss?.jpeg ?: "" + } + + override fun getWebp(): String { + return Config.getSettings()?.image?.oss?.webp ?: "" + } + + override fun getGitThumb(): String { + return Config.getSettings()?.image?.oss?.gitThumb ?: "" + } + + override fun getGifWaterMark(): String { + return Config.getSettings()?.image?.oss?.gifWaterMark ?: "" + } + + override fun getQQ(): String { + return Config.getSettings()?.support?.qq ?: "" + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/DefaultUrlHandlerProviderImpl.kt b/app/src/main/java/com/gh/common/provider/DefaultUrlHandlerProviderImpl.kt new file mode 100644 index 0000000000..d7b1da9fb2 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/DefaultUrlHandlerProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.DefaultUrlHandler +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IDefaultUrlHandlerProvider + +@Route(path = RouteConsts.provider.defaultUrlHandler, name = "DefaultUrlHandler暴露服务") +class DefaultUrlHandlerProviderImpl : IDefaultUrlHandlerProvider { + + override fun interceptUrl(context: Context, url: String, entrance: String):Boolean { + return DefaultUrlHandler.interceptUrl(context, url, entrance) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/DialogUtilsProviderImpl.kt b/app/src/main/java/com/gh/common/provider/DialogUtilsProviderImpl.kt new file mode 100644 index 0000000000..4f52bcd881 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/DialogUtilsProviderImpl.kt @@ -0,0 +1,28 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IDialogUtilsProvider + +@Route(path = RouteConsts.provider.dialogUtils, name = "DialogUtils暴露服务") +class DialogUtilsProviderImpl : IDialogUtilsProvider { + override fun showRegulationTestDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) { + DialogUtils.showRegulationTestDialog(context, object : ConfirmListener { + override fun onConfirm() { + confirm.invoke() + } + }, object :CancelListener{ + override fun onCancel() { + cancel.invoke() + } + }) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt b/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt new file mode 100644 index 0000000000..b3016ccd36 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt @@ -0,0 +1,27 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.DirectUtils +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IDirectProvider + +@Route(path = RouteConsts.provider.directUtils, name = "DirectUtils暴露服务") +class DirectProviderImpl : IDirectProvider { + + override fun directToWebView(context: Context, url: String, entrance: String?) { + DirectUtils.directToWebView(context, url, entrance) + } + + override fun directToRegulationTestPage(context: Context) { + DirectUtils.directToRegulationTestPage(context) + } + + override fun directToQqConversation(context: Context, qq: String) { + DirectUtils.directToQqConversation(context, qq) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/DownloadManagerProviderImpl.kt b/app/src/main/java/com/gh/common/provider/DownloadManagerProviderImpl.kt new file mode 100644 index 0000000000..e2abd7407f --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/DownloadManagerProviderImpl.kt @@ -0,0 +1,21 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.download.DownloadManager +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IDownloadManagerProvider +import com.lightgame.download.DownloadEntity + +@Route(path = RouteConsts.provider.downloadManager, name = "DownloadManager暴露服务") +class DownloadManagerProviderImpl : IDownloadManagerProvider { + + override fun getDownloadEntityByUrl(url: String): DownloadEntity? { + return DownloadManager.getInstance().getDownloadEntityByUrl(url) + } + + override fun init(context: Context?) { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/EnergyTaskProviderImpl.kt b/app/src/main/java/com/gh/common/provider/EnergyTaskProviderImpl.kt new file mode 100644 index 0000000000..b78a5e072a --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/EnergyTaskProviderImpl.kt @@ -0,0 +1,23 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.EnergyTaskHelper +import com.gh.common.util.IntegralLogHelper +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IEnergyTaskProvider + +@Route(path = RouteConsts.provider.energyTask, name = "EnergyTask暴露服务") +class EnergyTaskProviderImpl : IEnergyTaskProvider { + override fun postEnergyTaskForShare(type: String, id: String, url: String) { + EnergyTaskHelper.postEnergyTaskForShare(type, id, url) + } + + override fun logInviteResult(result: String, type: String?) { + IntegralLogHelper.logInviteResult(result, type) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/EntranceUtilsProviderImpl.kt b/app/src/main/java/com/gh/common/provider/EntranceUtilsProviderImpl.kt new file mode 100644 index 0000000000..a0513771e4 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/EntranceUtilsProviderImpl.kt @@ -0,0 +1,23 @@ +package com.gh.common.provider + +import android.content.Context +import android.os.Bundle +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IEntranceUtilsProvider + +@Route(path = RouteConsts.provider.entranceUtils, name = "EntranceUtils暴露服务") +class EntranceUtilsProviderImpl: IEntranceUtilsProvider { + override fun jumpActivity(context: Context, bundle: Bundle) { + EntranceUtils.jumpActivity(context, bundle) + } + + override fun saveShortcut(activityName: String, bundle: Bundle?) { + EntranceUtils.saveShortcut(activityName, bundle) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/PackageHelperProviderImpl.kt b/app/src/main/java/com/gh/common/provider/PackageHelperProviderImpl.kt new file mode 100644 index 0000000000..ccec3a5736 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/PackageHelperProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.PackageHelper +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IPackageHelperProvider + +@Route(path = RouteConsts.provider.packageHelper, name = "PackageHelper暴露服务") +class PackageHelperProviderImpl : IPackageHelperProvider { + + override fun getLocalPackageNameSet(): HashSet { + return PackageHelper.localPackageNameSet + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/PackageInstallerProviderImpl.kt b/app/src/main/java/com/gh/common/provider/PackageInstallerProviderImpl.kt new file mode 100644 index 0000000000..f12ce97d2e --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/PackageInstallerProviderImpl.kt @@ -0,0 +1,24 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.PackageInstaller +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IPackageInstallerProvider +import com.lightgame.download.DownloadEntity + +@Route(path = RouteConsts.provider.packageInstaller, name = "PackageInstaller暴露服务") +class PackageInstallerProviderImpl : IPackageInstallerProvider { + + override fun install(context: Context, downloadEntity: DownloadEntity, showUnzipToast: Boolean) { + PackageInstaller.install(context, downloadEntity, showUnzipToast) + } + + override fun uninstall(context: Context, path: String) { + PackageInstaller.uninstall(context, path) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/PackageUtilsProviderImpl.kt b/app/src/main/java/com/gh/common/provider/PackageUtilsProviderImpl.kt new file mode 100644 index 0000000000..1d41e2fc21 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/PackageUtilsProviderImpl.kt @@ -0,0 +1,35 @@ +package com.gh.common.provider + +import android.content.Context +import android.content.pm.PackageInfo +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.PackageUtils +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IPackageUtilsProvider + +@Route(path = RouteConsts.provider.packageUtils, name = "PackageUtils暴露服务") +class PackageUtilsProviderImpl : IPackageUtilsProvider { + override fun obtainProcessName(context: Context): String { + return PackageUtils.obtainProcessName(context) + } + + override fun getGhVersionName(): String { + return PackageUtils.getGhVersionName() + } + + override fun getInstalledPackages(context: Context, flag: Int): List { + return PackageUtils.getInstalledPackages(context, flag) + } + + override fun getApkSignatureByPackageName(context: Context, packageName: String): Array { + return PackageUtils.getApkSignatureByPackageName(context, packageName) + } + + override fun getSideLoadedInfo(): MutableMap? { + return PackageUtils.getSideLoadedInfo() + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/QuickLoginProviderImpl.kt b/app/src/main/java/com/gh/common/provider/QuickLoginProviderImpl.kt new file mode 100644 index 0000000000..369322fd73 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/QuickLoginProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.common.util.QuickLoginHelper +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IQuickLoginProvider + +@Route(path = RouteConsts.provider.quickLogin, name = "一键登录暴露服务") +class QuickLoginProviderImpl : IQuickLoginProvider { + + override fun startLogin(context: Context, entrance: String) { + QuickLoginHelper.startLogin(context, entrance) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/UserManagerProviderImpl.kt b/app/src/main/java/com/gh/common/provider/UserManagerProviderImpl.kt new file mode 100644 index 0000000000..70f69d7e96 --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/UserManagerProviderImpl.kt @@ -0,0 +1,38 @@ +package com.gh.common.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IUserManagerProvider +import com.gh.gamecenter.manager.UserManager + +@Route(path = RouteConsts.provider.userManager, name = "UserManager暴露服务") +class UserManagerProviderImpl : IUserManagerProvider { + override fun userShouldTakeRegulationBaseOnLastRemind(): Boolean { + return UserManager.getInstance().userShouldTakeRegulationBaseOnLastRemind() + } + + override fun getUserId(): String { + return UserManager.getInstance().userId ?: "" + } + + override fun getToken(): String { + return UserManager.getInstance().token ?: "" + } + + override fun refreshToken(accessToken: String, success: () -> Unit, fail: (String?) -> Unit) { + UserManager.getInstance().refreshToken(accessToken, object : UserManager.refreshCallBack { + override fun onLogin() { + success.invoke() + } + + override fun onLoginFailure(errorMessage: String?) { + fail.invoke(errorMessage) + } + }) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt b/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt new file mode 100644 index 0000000000..9676f2a62a --- /dev/null +++ b/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt @@ -0,0 +1,19 @@ +package com.gh.common.provider + +import android.content.Context +import android.content.Intent +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IWebProvider + +@Route(path = RouteConsts.provider.webActivity, name = "WebActivity暴露服务") +class WebProviderImpl : IWebProvider { + override fun getIntent(context: Context, url: String, autoCompletionTitle: Boolean): Intent { + return WebActivity.getIntent(context, url, autoCompletionTitle) + } + + override fun init(context: Context?) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/repository/RemenkapaiRepository.kt b/app/src/main/java/com/gh/common/repository/RemenkapaiRepository.kt index 08993dc0b8..caaf902660 100644 --- a/app/src/main/java/com/gh/common/repository/RemenkapaiRepository.kt +++ b/app/src/main/java/com/gh/common/repository/RemenkapaiRepository.kt @@ -2,7 +2,7 @@ package com.gh.common.repository import com.gh.common.filter.RegionSettingHelper import com.gh.common.util.ApkActiveUtils -import com.gh.common.util.RandomUtils +import com.gh.gamecenter.core.utils.RandomUtils import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/common/repository/ReservationRepository.kt b/app/src/main/java/com/gh/common/repository/ReservationRepository.kt index 4f7d952763..68ba47ec06 100644 --- a/app/src/main/java/com/gh/common/repository/ReservationRepository.kt +++ b/app/src/main/java/com/gh/common/repository/ReservationRepository.kt @@ -3,7 +3,7 @@ package com.gh.common.repository import android.annotation.SuppressLint import com.gh.common.util.CheckLoginUtils import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt b/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt index aad6f8f14f..1e380c5700 100644 --- a/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt +++ b/app/src/main/java/com/gh/common/simulator/SimulatorDownloadManager.kt @@ -9,12 +9,15 @@ import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import com.g00fy2.versioncompare.Version -import com.gh.common.AppExecutor.uiExecutor -import com.gh.common.constant.Constants -import com.gh.common.dialog.TrackableDialog +import com.gh.gamecenter.core.AppExecutor.uiExecutor +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.base.TrackableDialog import com.gh.common.util.* +import com.gh.common.util.LogUtils import com.gh.download.DownloadManager import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.SimulatorEntity import com.gh.gamecenter.entity.TrackableEntity diff --git a/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt b/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt index 03dfa4f5e7..dc2cb49cc8 100644 --- a/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt +++ b/app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt @@ -7,15 +7,19 @@ import android.graphics.Bitmap import android.net.Uri import android.text.TextUtils import com.g00fy2.versioncompare.Version -import com.gh.common.json.json +import com.gh.gamecenter.common.json.json import com.gh.common.util.* +import com.gh.common.util.LogUtils import com.gh.download.DownloadManager +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SimulatorGameRecordEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.EmptyResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.EmptyResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.AppDatabase import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/common/syncpage/example/ExampleAdapter.kt b/app/src/main/java/com/gh/common/syncpage/example/ExampleAdapter.kt deleted file mode 100644 index 29dfea48ce..0000000000 --- a/app/src/main/java/com/gh/common/syncpage/example/ExampleAdapter.kt +++ /dev/null @@ -1,98 +0,0 @@ -package com.gh.common.syncpage.example - -import android.content.Context -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler -import com.gh.gamecenter.R -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder -import com.gh.gamecenter.baselist.ListAdapter -import com.gh.gamecenter.databinding.CommunityAnswerItemBinding -import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.qa.answer.CommunityAnswerItemViewHolder -import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity -import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity -import com.gh.gamecenter.qa.entity.AnswerEntity -import com.gh.gamecenter.qa.entity.Questions - -class ExampleAdapter(context: Context) : ListAdapter(context), ISyncAdapterHandler { - - override fun areItemsTheSame(oldItem: AnswerEntity?, newItem: AnswerEntity?): Boolean { - return oldItem?.id == newItem?.id - } - - override fun getItemViewType(position: Int): Int { - if (position == itemCount - 1) return ItemViewType.ITEM_FOOTER - return ItemViewType.ITEM_BODY - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - val view: View - return when (viewType) { - ItemViewType.ITEM_FOOTER -> { - view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false) - FooterViewHolder(view) - } - else -> { - view = mLayoutInflater.inflate(R.layout.community_answer_item, parent, false) - CommunityAnswerItemViewHolder(CommunityAnswerItemBinding.bind(view)) - } - } - } - - override fun getItemCount(): Int { - return if (mEntityList.isNotEmpty()) mEntityList.size + FOOTER_ITEM_COUNT else 0 - } - - override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - when (getItemViewType(position)) { - ItemViewType.ITEM_BODY -> { - val answer = mEntityList[position] - if ("community_article" == answer.type) { - val questions = Questions() - questions.title = answer.articleTitle - answer.questions = questions - } - - val answerViewHolder = holder as CommunityAnswerItemViewHolder - val binding = answerViewHolder.binding - answerViewHolder.bindAnswerItem(answer, "", getPath()) - binding.title.setOnClickListener { - if ("community_article" == answer.type) { - mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answer.id!!, "", getPath())) - } -// else { -// val questions = answer.questions -// mContext.startActivity(QuestionsDetailActivity.getIntent(mContext, questions.id, "", getPath())) -// } - } - - answerViewHolder.itemView.setOnClickListener { - if ("community_article" == answer.type) { - mContext.startActivity(ArticleDetailActivity.getIntent(mContext, UserManager.getInstance().community, answer.id!!, "", getPath())) - } else { - mContext.startActivity(AnswerDetailActivity.getIntent(mContext, answer.id, "", getPath())) - } - } - } - ItemViewType.ITEM_FOOTER -> { - val footerViewHolder = holder as FooterViewHolder - footerViewHolder.initItemPadding() - footerViewHolder.initFooterViewHolder(mIsLoading, mIsNetworkError, mIsOver) - } - } - } - - override fun getSyncData(position: Int): Pair? { - if (position >= mEntityList.size) return null - val entity = mEntityList[position] - return Pair(entity.id ?: "", entity) - } - - fun getPath(): String { - return "问答-推荐-按时间" - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/syncpage/example/ExampleFragment.kt b/app/src/main/java/com/gh/common/syncpage/example/ExampleFragment.kt deleted file mode 100644 index da90ec2761..0000000000 --- a/app/src/main/java/com/gh/common/syncpage/example/ExampleFragment.kt +++ /dev/null @@ -1,65 +0,0 @@ -package com.gh.common.syncpage.example - -import android.os.Bundle -import android.view.View -import androidx.lifecycle.ViewModelProviders -import androidx.recyclerview.widget.RecyclerView -import com.gh.common.view.VerticalItemDecoration -import com.gh.gamecenter.baselist.ListFragment -import com.gh.gamecenter.baselist.NormalListViewModel -import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.qa.entity.AnswerEntity -import com.gh.gamecenter.retrofit.RetrofitManager -import com.halo.assistant.HaloApp -import io.reactivex.Observable - -class ExampleFragment : ListFragment>() { - - private var mAdapter: ExampleAdapter? = null - - override fun provideListAdapter(): ExampleAdapter { - if (mAdapter == null) { - mAdapter = ExampleAdapter(requireContext()) - } - return mAdapter!! - } - - override fun getItemDecoration(): RecyclerView.ItemDecoration { - return VerticalItemDecoration(context, 8F, false) - } - - override fun provideDataObservable(page: Int): Observable> { - return RetrofitManager.getInstance().api.getCommunitiesRecommendNewest(UserManager.getInstance().community.id, page) - } - - override fun provideListViewModel(): NormalListViewModel { - val factory = NormalListViewModel.Factory(HaloApp.getInstance().application, this) - return ViewModelProviders.of(this, factory).get(NormalListViewModel::class.java) as NormalListViewModel - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) -// SyncPageRepository.syncPageLiveData.observe(this, Observer { -// it ?: return@Observer -// val adapter = mListRv.adapter -// if (adapter !is ISyncAdapterHandler) return@Observer -// for(position in 0 until adapter.itemCount) { -// val syncKey = adapter.getSyncData(position) -// for (syncDataEntity in it) { -// if (syncDataEntity.syncId == syncKey?.first) { -// val isSuccess = SyncPageRepository.handleSyncData(syncKey.second, syncDataEntity) -// if (isSuccess) adapter.notifyItemChanged(position) -// } -// } -// } -// }) - } - - override fun provideSyncAdapter(): RecyclerView.Adapter<*>? { - return mListRv.adapter - } - - override fun addSyncPageObserver(): Boolean { - return true - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/ActivationHelper.kt b/app/src/main/java/com/gh/common/util/ActivationHelper.kt index c2fc5de779..ee77fd1d0b 100644 --- a/app/src/main/java/com/gh/common/util/ActivationHelper.kt +++ b/app/src/main/java/com/gh/common/util/ActivationHelper.kt @@ -1,6 +1,7 @@ package com.gh.common.util -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.schedulers.Schedulers import okhttp3.ResponseBody diff --git a/app/src/main/java/com/gh/common/util/AdHelper.kt b/app/src/main/java/com/gh/common/util/AdHelper.kt index d829da3275..3f77de2187 100644 --- a/app/src/main/java/com/gh/common/util/AdHelper.kt +++ b/app/src/main/java/com/gh/common/util/AdHelper.kt @@ -3,9 +3,10 @@ package com.gh.common.util import android.annotation.SuppressLint import androidx.lifecycle.MutableLiveData import com.gh.common.constant.Config +import com.gh.gamecenter.common.utils.NetworkUtils import com.gh.gamecenter.entity.SettingsEntity import com.gh.gamecenter.entity.StartupAdEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.schedulers.Schedulers @@ -16,7 +17,6 @@ object AdHelper { const val LOCATION_SEARCH_EMPTY = "search_empty" const val LOCATION_GAME_REQUEST_VERSION = "game_request_version" const val LOCATION_SUGGESTION_FUNCTION = "suggestion_function" - const val LOCATION_DISCOVER = "discover" const val LOCATION_SIMULATOR_GAME = "simulator_game" @JvmField @@ -50,20 +50,6 @@ object AdHelper { return null } - fun getDiscoverAds(): List { - val adList = Config.getSettings()?.adList ?: return listOf() - - val discoverAdList = arrayListOf() - - for (ad in adList) { - if (ad.location == LOCATION_DISCOVER) { - discoverAdList.add(ad) - } - } - - return discoverAdList - } - fun getAdForLocation(location: String): SettingsEntity.AD? { val adList = Config.getSettings()?.adList ?: return null diff --git a/app/src/main/java/com/gh/common/util/AntiBotHelper.kt b/app/src/main/java/com/gh/common/util/AntiBotHelper.kt deleted file mode 100644 index c7bfccd1c7..0000000000 --- a/app/src/main/java/com/gh/common/util/AntiBotHelper.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.gh.common.util - -object AntiBotHelper { -// @JvmStatic -// val manager by lazy { -// SecurityGuardManager.getInstance(HaloApp.getInstance().application).getInterface(IJAQAVMPSignComponent::class.java).apply { -// this.initialize() -// } -// } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/BbsReportHelper.kt b/app/src/main/java/com/gh/common/util/BbsReportHelper.kt index 4317f48cb4..d7dc7b0605 100644 --- a/app/src/main/java/com/gh/common/util/BbsReportHelper.kt +++ b/app/src/main/java/com/gh/common/util/BbsReportHelper.kt @@ -9,15 +9,19 @@ import android.view.View import android.view.Window import androidx.core.widget.doOnTextChanged import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.CurrentActivityHolder -import com.gh.common.json.json -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.core.utils.CurrentActivityHolder +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity import com.gh.gamecenter.adapter.ReportReasonAdapter +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.common.utils.toRequestBody import com.gh.gamecenter.databinding.DialogReportReasonBinding import com.gh.gamecenter.entity.SettingsEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/common/util/BbsStayTimeHelper.kt b/app/src/main/java/com/gh/common/util/BbsStayTimeHelper.kt index ef8573b305..b2185e4091 100644 --- a/app/src/main/java/com/gh/common/util/BbsStayTimeHelper.kt +++ b/app/src/main/java/com/gh/common/util/BbsStayTimeHelper.kt @@ -4,15 +4,18 @@ import android.annotation.SuppressLint import android.app.Activity import android.app.Application import android.os.Bundle -import com.gh.base.CurrentActivityHolder -import com.gh.base.GHThreadFactory +import com.gh.gamecenter.core.utils.CurrentActivityHolder +import com.gh.gamecenter.core.GHThreadFactory import com.gh.gamecenter.MainActivity +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.isPublishEnv +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.forum.detail.ForumDetailActivity import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity import com.gh.gamecenter.qa.comment.CommentActivity import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java index 92b9550043..0c88426412 100644 --- a/app/src/main/java/com/gh/common/util/CheckLoginUtils.java +++ b/app/src/main/java/com/gh/common/util/CheckLoginUtils.java @@ -5,9 +5,12 @@ import android.content.Context; import android.os.Bundle; import android.text.TextUtils; -import com.gh.base.CurrentActivityHolder; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.CurrentActivityHolder; +import com.gh.gamecenter.common.constant.Constants; import com.gh.gamecenter.LoginActivity; +import com.gh.gamecenter.common.utils.NetworkUtils; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.manager.UserManager; import com.lightgame.utils.Utils; @@ -36,8 +39,8 @@ public class CheckLoginUtils { } else { // 有可能App未启动 Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); - bundle.putString(EntranceUtils.KEY_TO, LoginActivity.class.getName()); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_TO, LoginActivity.class.getName()); EntranceUtils.jumpActivity(context, bundle); } } else { @@ -55,8 +58,8 @@ public class CheckLoginUtils { // 有可能App未启动 Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); - bundle.putString(EntranceUtils.KEY_TO, LoginActivity.class.getName()); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_TO, LoginActivity.class.getName()); EntranceUtils.jumpActivity(context, nextToBundle, bundle, (resultCode, data) -> { if (isTriggerNextStep && listener != null && isLogin()) { listener.onLogin(); diff --git a/app/src/main/java/com/gh/common/util/CollectionUtils.kt b/app/src/main/java/com/gh/common/util/CollectionUtils.kt index 691df5349c..3d62483ca4 100644 --- a/app/src/main/java/com/gh/common/util/CollectionUtils.kt +++ b/app/src/main/java/com/gh/common/util/CollectionUtils.kt @@ -3,7 +3,7 @@ package com.gh.common.util import android.content.Context import com.gh.gamecenter.eventbus.EBCollectionChanged import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/common/util/CommentDraftContainer.kt b/app/src/main/java/com/gh/common/util/CommentDraftContainer.kt index 587283888f..2deb4200f0 100644 --- a/app/src/main/java/com/gh/common/util/CommentDraftContainer.kt +++ b/app/src/main/java/com/gh/common/util/CommentDraftContainer.kt @@ -3,6 +3,7 @@ package com.gh.common.util import com.gh.gamecenter.room.AppDatabase import com.gh.gamecenter.room.dao.CommentDraftDao +// TODO 移除全局 Dao object CommentDraftContainer { val commentDraftDao: CommentDraftDao by lazy { AppDatabase.getInstance().commentDraftDao() } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/CommentHelper.kt b/app/src/main/java/com/gh/common/util/CommentHelper.kt index ed4cad7954..a17fd7cf04 100644 --- a/app/src/main/java/com/gh/common/util/CommentHelper.kt +++ b/app/src/main/java/com/gh/common/util/CommentHelper.kt @@ -5,18 +5,21 @@ import android.view.LayoutInflater import android.view.View import android.widget.LinearLayout import android.widget.TextView -import com.gh.common.constant.Constants -import com.gh.common.json.json +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.json.json import com.gh.common.util.CommentUtils.copyText -import com.gh.common.view.BugFixedPopupWindow +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.CommentDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.showAutoOrientation import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.entity.MeEntity import com.gh.gamecenter.entity.Permissions import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.comment.OnCommentOptionClickListener -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils @@ -123,6 +126,28 @@ object CommentHelper { ) } + fun showCommentDetailOptions( + view: View, + commentEntity: CommentEntity, + articleId: String? = null, + communityId: String? = null, + questionId: String? = null, + videoId: String? = null, + gameCollectionId: String? = null, + ) { + showCommentOptions( + view = view, + commentEntity = commentEntity, + showConversation = false, + articleId = articleId, + communityId = communityId, + questionId = questionId, + videoId = videoId, + gameCollectionId = gameCollectionId, + isOnlyShowCopyAndReport = true + ) + } + private fun showCommentOptions( view: View, commentEntity: CommentEntity, @@ -136,6 +161,7 @@ object CommentHelper { isShowTop: Boolean = false, ignoreModerator: Boolean = false, isVideoAuthor: Boolean = false, + isOnlyShowCopyAndReport: Boolean = false, listener: OnCommentOptionClickListener? = null ) { val context = view.context @@ -156,13 +182,13 @@ object CommentHelper { if (commentEntity.user.id != UserManager.getInstance().userId) { dialogOptions.add("投诉") } - if (questionId != null && + if (!isOnlyShowCopyAndReport && questionId != null && commentEntity.me?.isModerator == true && (commentEntity.me?.moderatorPermissions?.highlightAnswer ?: Permissions.GUEST) > Permissions.GUEST && !commentEntity.choiceness ) { dialogOptions.add("加精选") } - if (questionId != null && + if (!isOnlyShowCopyAndReport && questionId != null && commentEntity.me?.isModerator == true && (commentEntity.me?.moderatorPermissions?.cancelChoicenessAnswer ?: Permissions.GUEST) > Permissions.GUEST && @@ -170,11 +196,11 @@ object CommentHelper { ) { dialogOptions.add("取消精选") } - if (commentEntity.user.id == UserManager.getInstance().userId || commentEntity.me?.isModerator == true || commentEntity.me?.isContentAuthor == true) { + if (!isOnlyShowCopyAndReport && commentEntity.user.id == UserManager.getInstance().userId || commentEntity.me?.isModerator == true || commentEntity.me?.isContentAuthor == true) { dialogOptions.add("删除评论") } - if (commentEntity.parentUser != null && showConversation) { + if (!isOnlyShowCopyAndReport && commentEntity.parentUser != null && showConversation) { dialogOptions.add("查看对话") } diff --git a/app/src/main/java/com/gh/common/util/CommentUtils.java b/app/src/main/java/com/gh/common/util/CommentUtils.java index aad2c6c007..b6a583c01e 100644 --- a/app/src/main/java/com/gh/common/util/CommentUtils.java +++ b/app/src/main/java/com/gh/common/util/CommentUtils.java @@ -17,12 +17,18 @@ import androidx.core.content.ContextCompat; import com.gh.gamecenter.CommentDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.CommentViewHolder; +import com.gh.gamecenter.common.callback.SimpleCallback; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.core.utils.NumberUtils; +import com.gh.gamecenter.core.utils.ToastUtils; import com.gh.gamecenter.entity.CommentEntity; import com.gh.gamecenter.entity.MeEntity; import com.gh.gamecenter.entity.UserInfoEntity; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.retrofit.BiResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/common/util/CommunityHelper.kt b/app/src/main/java/com/gh/common/util/CommunityHelper.kt deleted file mode 100644 index 2e98e3e6f6..0000000000 --- a/app/src/main/java/com/gh/common/util/CommunityHelper.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.gh.common.util - -import com.gh.gamecenter.packagehelper.PackageRepository -import com.gh.gamecenter.qa.entity.CommunitySelectEntity - -object CommunityHelper { - - /** - * 为已开通的社区排序 - * 排序规则为将本地存在已安装游戏或已关联游戏的社区置顶 - */ - fun sortOpenedCommunity(rawList: List?): ArrayList { - val sortedList = ArrayList() - rawList?.let { - for (game in rawList) { - var thisGameIsInstalled = false - for (installGame in PackageRepository.gameInstalled) { - if (PackageHelper.downloadPackageNameBlackList.contains(installGame.packageName)) { - continue - } - - // 判断是否已安装 - if (installGame.id == game.game.id) { - thisGameIsInstalled = true - break - } - - // 判断是否关联了别游戏 - for (relatedGameId in game.game.relation) { - if (installGame.id == relatedGameId) { - thisGameIsInstalled = true - break - } - } - } - - // 将已安装的置顶 - if (thisGameIsInstalled) { - sortedList.add(0, game) - } else { - sortedList.add(game) - } - } - } - return sortedList - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/ConcernContentUtils.java b/app/src/main/java/com/gh/common/util/ConcernContentUtils.java index 4678650207..6050b27560 100644 --- a/app/src/main/java/com/gh/common/util/ConcernContentUtils.java +++ b/app/src/main/java/com/gh/common/util/ConcernContentUtils.java @@ -7,6 +7,8 @@ import android.widget.LinearLayout; import com.facebook.drawee.drawable.ScalingUtils; import com.facebook.drawee.view.SimpleDraweeView; import com.gh.gamecenter.ImageViewerActivity; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.utils.ImageUtils; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/common/util/ConcernUtils.kt b/app/src/main/java/com/gh/common/util/ConcernUtils.kt index 058763efb3..a176f70bda 100644 --- a/app/src/main/java/com/gh/common/util/ConcernUtils.kt +++ b/app/src/main/java/com/gh/common/util/ConcernUtils.kt @@ -4,7 +4,7 @@ import android.content.Context import android.text.TextUtils import com.gh.gamecenter.eventbus.EBConcernChanged import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/common/util/DataCollectionUtils.java b/app/src/main/java/com/gh/common/util/DataCollectionUtils.java index 8a4429f28f..8e514a3acf 100644 --- a/app/src/main/java/com/gh/common/util/DataCollectionUtils.java +++ b/app/src/main/java/com/gh/common/util/DataCollectionUtils.java @@ -3,7 +3,9 @@ package com.gh.common.util; import android.content.Context; import android.os.Build; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.NewsDetailEntity; import com.gh.gamecenter.manager.DataCollectionManager; @@ -49,7 +51,7 @@ public class DataCollectionUtils { map.put("platform", PlatformUtils.getInstance(context).getPlatformName(downloadEntity.getPlatform())); map.put("status", status); map.put("location", downloadEntity.getLocation()); - map.put(EntranceUtils.KEY_ENTRANCE, downloadEntity.getEntrance()); + map.put(EntranceConsts.KEY_ENTRANCE, downloadEntity.getEntrance()); map.put("installed", downloadEntity.getInstalled()); map.put("network", NetworkUtils.getConnectedType(context)); DataCollectionManager.onEvent(context, "download", map); diff --git a/app/src/main/java/com/gh/common/util/DataLogUtils.java b/app/src/main/java/com/gh/common/util/DataLogUtils.java index 21440726c0..9cf1452caa 100644 --- a/app/src/main/java/com/gh/common/util/DataLogUtils.java +++ b/app/src/main/java/com/gh/common/util/DataLogUtils.java @@ -2,8 +2,9 @@ package com.gh.common.util; import android.content.Context; -import com.gh.common.exposure.meta.MetaUtil; -import com.gh.common.loghub.LoghubUtils; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.loghub.LoghubUtils; +import com.gh.gamecenter.common.utils.Installation; import com.halo.assistant.HaloApp; import com.lightgame.download.DownloadEntity; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index 335d711ef8..d0cab3d584 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -1,19 +1,20 @@ package com.gh.common.util; import android.annotation.SuppressLint; -import android.app.Activity; import android.app.Application; import android.content.Context; -import android.os.Build; import android.preference.PreferenceManager; import android.text.TextUtils; -import com.gh.common.AppExecutor; -import com.gh.common.constant.Constants; -import com.gh.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; import com.gh.gamecenter.BuildConfig; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.UserInfoEntity; -import com.gh.gamecenter.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.BiResponse; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gid.GidCallback; import com.gh.gid.GidHelper; @@ -21,10 +22,6 @@ import com.halo.assistant.HaloApp; import com.lightgame.config.CommonDebug; import com.lightgame.utils.Utils; -import java.util.HashMap; -import java.util.Map; - -import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import io.sentry.Sentry; import io.sentry.android.core.SentryAndroid; @@ -37,86 +34,14 @@ public class DataUtils { /** * 初始化各种统计工具,仅在release build(非debug)模式启用统计 - * - * @param context - * @param channel */ public static void init(final Application context, String channel) { - if (CommonDebug.IS_DEBUG) { return; } // 初始化 Sentry 约占用 90ms,这里切换到子线程初始化 AppExecutor.getIoExecutor().execute(() -> initSentry(context, channel)); - - //TalkingData -// try { -// TCAgent.LOG_ON = false; -// TCAgent.init(context, Config.TALKINGDATA_APPID, channel); -// /** -// * -// * 不要启用!!!!不要启用,全部由{@link com.gh.base.AppUncaughtHandler}处理 -// */ -// TCAgent.setReportUncaughtExceptions(false); -// } catch (Exception e) { -// e.printStackTrace(); -// } - - //MTA -// try { -// /** -// * -// * 不要启用!!!!全部由{@link com.gh.base.AppUncaughtHandler}处理 -// */ -// StatConfig.setAutoExceptionCaught(false); -// -// StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(context); -// crashReporter.setJavaCrashHandlerStatus(false); -//// crashReporter.setEnableInstantReporting(true); -// -// StatConfig.setDebugEnable(false); -// -// // 设置数据上报策略 -// // 测试渠道的时候即时上传,方便查看日志 -// if (Config.DEFAULT_CHANNEL.equals(HaloApp.getInstance().getChannel())) { -// StatConfig.setStatSendStrategy(StatReportStrategy.INSTANT); -// } else { -// StatConfig.setStatSendStrategy(StatReportStrategy.PERIOD); -// StatConfig.setSendPeriodMinutes(5); -// } -// -// // 设置启用Tlink -// StatConfig.setTLinkStatus(true); -// -// StatConfig.init(context); -// StatConfig.setInstallChannel(channel); -// StatConfig.setAntoActivityLifecycleStat(true); -// StatConfig.setAppVersion(PackageUtils.getVersionName()); -// -// // 开启收集服务 -// StatService.startStatService(context, Config.MTA_APPKEY, com.tencent.stat.common.StatConstants.VERSION); -// StatService.registerActivityLifecycleCallbacks(context); -// } catch (MtaSDkException e) { -// e.printStackTrace(); -// } - - // init bugly -// try { -// CrashReport.setIsDevelopmentDevice(context, Config.DEFAULT_CHANNEL.equals(channel)); -// -// CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(context); -// strategy.setEnableANRCrashMonitor(false); -// strategy.setEnableNativeCrashMonitor(false); -// strategy.setAppChannel(channel); -// strategy.setAppVersion(PackageUtils.getVersionName()); -// -// CrashReport.initCrashReport(context, Config.BUGLY_APPID, false, strategy); -// -// } catch (Exception e) { -// e.printStackTrace(); -// } - } private static void initSentry(Context context, String channel) { @@ -154,14 +79,6 @@ public class DataUtils { }); } - // MTA ->【次数统计】Key-Value参数的事件 - public static void onMtaEvent(Context context, String eventId, String... kv) { -// if (CommonDebug.IS_DEBUG && (kv == null || kv.length % 2 != 0)) { -// throw new IllegalStateException("onEvent kv 必须不为空且数量为偶数"); -// } - MtaHelper.onEvent(eventId, kv); - } - public static void getGid() { GidHelper.getInstance().registerDevice(HaloApp.getInstance().getApplication(), new GidCallback() { @Override @@ -207,109 +124,4 @@ public class DataUtils { }); } - public static void onEvent(Context var0, String var1, String var2) { -// Properties prop = new Properties(); -// prop.setProperty(var1, var2); -// StatService.trackCustomKVEvent(var0, var1, prop); - } - - public static void onPause(Activity var0) { -// StatService.onPause(var0); - } - - public static void onResume(Activity var0) { -// StatService.onResume(var0); - } - - // 游戏启动 - public static void onGameLaunchEvent(Context context, String gameName, String platform, String page) { - Map kv = new HashMap<>(); - kv.put("版本", platform); - kv.put("页面", page); - onEvent(context, "游戏启动", gameName, kv); - } - - public static void onEvent(Context var0, String var1, String var2, Map var3) { -// Properties prop = new Properties(); -// prop.setProperty("label", var2); -// for (String key : var3.keySet()) { -// prop.setProperty(key, var3.get(key) + ""); -// } -// StatService.trackCustomKVEvent(var0, var1, prop); - } - - public static void trackTimeEvent(Context context, String eventId, int costTime, String... kv) { -// -// Properties prop = new Properties(); -// for (int i = 0; i < kv.length; i++) { -// if (i % 2 != 0 || i != 0) { -// String key = kv[i - 1]; -// String value = kv[i]; -// if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { -// prop.setProperty(key, value); -// } -// } -// } -// -// if (prop.size() == 0) return; -// -// StatService.trackCustomKVTimeIntervalEvent(context, costTime, eventId, prop); - } - - // 游戏下载 - public static void onGameDownloadEvent(Context context, String gameName, String platform, String entrance, String status, String method) { - Map kv = new HashMap<>(); - - platform = PlatformUtils.getInstance(HaloApp.getInstance().getApplication()).getPlatformName(platform); - - kv.put("版本", platform); - kv.put("用户机型", Build.MODEL); - kv.put("设备JNFJ", MetaUtil.getBase64EncodedIMEI()); - kv.put("网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication())); - kv.put("光环助手版本", BuildConfig.VERSION_NAME); - kv.put("位置", entrance); - kv.put("类型", method); - kv.put("厂商", Build.MANUFACTURER); - kv.put("Android版本", Build.VERSION.RELEASE); - onEvent(context, "游戏下载", gameName, kv); - - Map kv2 = new HashMap<>(); - kv2.put("状态", status); - kv2.put("位置", entrance); - - if (status.equals("开始")) { - kv2.put("版本", entrance + "-开始"); - kv2.put("游戏分平台", gameName + "-" + platform + "-开始"); - kv2.put("光环助手版本", BuildConfig.VERSION_NAME + "-开始"); - } else { - kv2.put("版本", platform); - kv2.put("游戏分平台", gameName + "-" + platform); - kv2.put("光环助手版本", BuildConfig.VERSION_NAME); - } - - onEvent(context, "游戏下载位置", gameName, kv2); - } - - // 游戏更新 - public static void onGameUpdateEvent(Context context, String gameName, String paltform, String status) { - Map kv = new HashMap<>(); - kv.put("版本", paltform); - kv.put("状态", status); - onEvent(context, "游戏更新", gameName, kv); - } - - public static void onError(Context context, Throwable throwable) { - //bugly 作为默认处理异常的类库,已经上报了,此处不重复上报 - try { -// CrashReport.postCatchedException(throwable); - } catch (Exception e) { - } - - //talkingdata - try { -// TCAgent.onError(context, throwable); - } catch (Exception e) { - } - } - } diff --git a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java index 57b6d62e86..55b946f3c5 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -4,7 +4,7 @@ import android.text.TextUtils; import android.view.View; import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.repository.ReservationRepository; import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.view.DownloadProgressBar; @@ -13,6 +13,7 @@ import com.gh.common.xapk.XapkUnzipStatus; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.DetailViewHolder; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.LinkEntity; import com.gh.gamecenter.entity.PluginLocation; import com.gh.gamecenter.manager.PackagesManager; diff --git a/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt b/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt index 809806bb93..03697ca8ed 100644 --- a/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt +++ b/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt @@ -3,10 +3,10 @@ package com.gh.common.util import android.content.Context import android.os.Environment import android.preference.PreferenceManager -import com.gh.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.entity.TimeEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index d6336149fa..17f92ea226 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -49,20 +49,32 @@ import androidx.recyclerview.widget.RecyclerView; import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.common.AppExecutor; import com.gh.common.constant.Config; -import com.gh.common.dialog.TrackableDialog; -import com.gh.common.view.CustomLinkMovementMethod; -import com.gh.common.view.DrawableView; -import com.gh.common.view.FixLinearLayoutManager; -import com.gh.common.view.LimitHeightLinearLayout; -import com.gh.common.view.MaxHeightNestedScrollView; -import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.adapter.ReportReasonAdapter; import com.gh.gamecenter.adapter.viewholder.PrivacyPolicyItemViewHolder; -import com.gh.gamecenter.databinding.DialogAlertDefaultBinding; +import com.gh.gamecenter.common.base.TrackableDialog; +import com.gh.gamecenter.common.callback.CancelListener; +import com.gh.gamecenter.common.callback.ConfirmListener; +import com.gh.gamecenter.common.callback.SimpleCallback; +import com.gh.gamecenter.common.databinding.DialogAlertDefaultBinding; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; +import com.gh.gamecenter.common.view.CustomLinkMovementMethod; +import com.gh.gamecenter.common.view.DrawableView; +import com.gh.gamecenter.common.view.FixLinearLayoutManager; +import com.gh.gamecenter.common.view.LimitHeightLinearLayout; +import com.gh.gamecenter.common.view.MaxHeightNestedScrollView; +import com.gh.gamecenter.common.view.VerticalItemDecoration; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.EmptyCallback; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.SpanBuilder; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.core.utils.ToastUtils; import com.gh.gamecenter.databinding.DialogBindPhoneBinding; import com.gh.gamecenter.databinding.DialogEnergySignBinding; import com.gh.gamecenter.databinding.DialogOverseaConfirmationBinding; @@ -197,30 +209,8 @@ public class DialogUtils { dialog.show(); } - public static void showWarningDialog(Context context, String title, CharSequence msg, final ConfirmListener listener) { - if (!(context instanceof Activity)) { - return; - } - showWarningDialog(context, title, msg, "取消", "确定", listener, null); - } - public static void showWarningDialog(Context context, String title, CharSequence msg, String cancel, String confirm, - final ConfirmListener cmListener, final CancelListener clListener) { - showAlertDialog(context, title, msg, confirm, cancel, cmListener, clListener); - } - - // 网络劫持时 打开QQ客户端,创建临时会话 - public static void showQqSessionDialog(final Context context) { - String qq = ""; - if (Config.getSettings() != null && Config.getSettings().getSupport() != null) { - qq = Config.getSettings().getSupport().getQq(); - } - String finalQq = qq; - showWarningDialog(context, "警告", "您当前网络环境异常,下载地址可能被运营商恶意替换(网络劫持)" + - ",如多次下载失败,请联系客服获取正确的下载地址(客服QQ:" + qq + ")" - , "取消", "前往QQ", () -> DirectUtils.directToQqConversation(context, finalQq), null); - } public static void checkDownload(Context context, String size, CheckDownloadCallBack callBack) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication()); @@ -274,7 +264,7 @@ public class DialogUtils { } public static void showNoConnectionDownloadDialog(Context context, ConfirmListener listener, CancelListener cancelListener) { - showWarningDialog(context, "下载提示", "网络异常,请检查手机网络状态", "连上WiFi后自动下载", "关闭", listener, cancelListener); + com.gh.gamecenter.common.utils.DialogUtils.showWarningDialog(context, "下载提示", "网络异常,请检查手机网络状态", "连上WiFi后自动下载", "关闭", listener, cancelListener); } public static void showDownloadDialog(Context context, ConfirmListener listener, CancelListener cancelListener) { @@ -323,11 +313,11 @@ public class DialogUtils { } public static void showResumeDownloadDialog(Context context, ConfirmListener listener, CancelListener cancelListener) { - showWarningDialog(context, "下载提示", "当前正在使用移动网络,继续下载会消耗手机流量", "连上WiFi后自动下载", "继续下载", listener, cancelListener); + com.gh.gamecenter.common.utils.DialogUtils.showWarningDialog(context, "下载提示", "当前正在使用移动网络,继续下载会消耗手机流量", "连上WiFi后自动下载", "继续下载", listener, cancelListener); } public static void showDownloadDialog(Context context, ConfirmListener listener) { - showWarningDialog(context, "下载提示", "您当前使用的网络为2G/3G/4G,开始下载将会消耗移动流量,确定下载?", listener); + com.gh.gamecenter.common.utils.DialogUtils.showWarningDialog(context, "下载提示", "您当前使用的网络为2G/3G/4G,开始下载将会消耗移动流量,确定下载?", listener); } public static void showCancelDialog(Context context, final ConfirmListener listener, CancelListener cancelListener) { @@ -421,93 +411,7 @@ public class DialogUtils { return showNewAlertDialog(context, title, message, negative, positive, null, gravity, shouldShowCloseBtn, clListener, cmListener); } - /** - * Material Design 风格弹窗 - * - * @param context - * @param title 标题 - * @param message 内容 - * @param positive 确认按钮文本 - * @param negative 取消按钮文本 - * @param cmListener 确认按钮监听 - * @param clListener 取消按钮监听 - */ - public static Dialog showAlertDialog(Context context, String title, CharSequence message - , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { - context = checkDialogContext(context); - final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); - - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); - TextView contentTv = contentView.findViewById(R.id.dialog_content); - TextView titleTv = contentView.findViewById(R.id.dialog_title); - TextView negativeTv = contentView.findViewById(R.id.dialog_negative); - TextView positiveTv = contentView.findViewById(R.id.dialog_positive); - if (message.toString().contains("红包奖励")) {//将红包奖励四个字标红 - String str = message.toString().substring(0, message.toString().indexOf("红包奖励")) + "红包奖励"; - contentTv.setText(Html.fromHtml(str)); - } else { - contentTv.setText(message); - } - titleTv.setText(title); - negativeTv.setText(negative); - positiveTv.setText(positive); - - negativeTv.setOnClickListener(view -> { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); - }); - - positiveTv.setOnClickListener(view -> { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); - }); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(contentView); - dialog.show(); - return dialog; - } - - public static Dialog showAlertDialog(Context context, String title, Spanned message - , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { - context = checkDialogContext(context); - - final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); - - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); - TextView contentTv = contentView.findViewById(R.id.dialog_content); - TextView titleTv = contentView.findViewById(R.id.dialog_title); - TextView negativeTv = contentView.findViewById(R.id.dialog_negative); - TextView positiveTv = contentView.findViewById(R.id.dialog_positive); - contentTv.setText(message); - titleTv.setText(title); - negativeTv.setText(negative); - positiveTv.setText(positive); - - negativeTv.setOnClickListener(view -> { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); - }); - - positiveTv.setOnClickListener(view -> { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); - }); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(contentView); - dialog.show(); - return dialog; - } public static Dialog showDialogWithHtmlContent(Context context, String title, String content , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { @@ -2115,7 +2019,7 @@ public class DialogUtils { dialog.show(); } - public static void showBindPhoneDialog(Context context, ConfirmListener listener) { + public static Dialog showBindPhoneDialog(Context context, ConfirmListener listener) { context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.DialogWindowTransparent); @@ -2133,6 +2037,7 @@ public class DialogUtils { dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(binding.getRoot()); dialog.show(); + return dialog; } public static void showReceiveLibaoSuccessDialog(Context context, String title, String des, String libaoCode, ConfirmListener listener) { @@ -2284,14 +2189,6 @@ public class DialogUtils { return AppManager.getInstance().currentActivity(); } - public interface ConfirmListener { - void onConfirm(); - } - - public interface CancelListener { - void onCancel(); - } - public interface OptionCallback { void onClicked(String text); } diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index 456c4484c4..317193830b 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -9,25 +9,28 @@ import android.os.Build import android.os.Bundle import android.text.TextUtils import androidx.appcompat.app.AppCompatActivity -import com.gh.base.BaseActivity +import com.gh.gamecenter.common.base.BaseActivity import com.gh.base.BaseActivity_TabLayout -import com.gh.base.ToolBarActivity -import com.gh.base.fragment.BaseFragment_TabLayout -import com.gh.common.AppExecutor +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout +import com.gh.gamecenter.core.AppExecutor import com.gh.common.constant.Config -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureManager.log -import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureTraceUtils.appendTrace import com.gh.common.exposure.ExposureType +import com.gh.gamecenter.common.constant.EntranceConsts.* import com.gh.common.util.EntranceUtils.* import com.gh.gamecenter.* import com.gh.gamecenter.amway.AmwayActivity import com.gh.gamecenter.catalog.CatalogActivity import com.gh.gamecenter.category.CategoryDirectoryActivity import com.gh.gamecenter.category2.CategoryV2Activity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.RunningUtils import com.gh.gamecenter.download.DownloadFragment.Companion.INDEX_UPDATE import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBSkip @@ -54,7 +57,7 @@ import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity import com.gh.gamecenter.qa.subject.CommunitySubjectActivity import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.security.BindPhoneActivity import com.gh.gamecenter.servers.GameServerTestActivity @@ -150,7 +153,7 @@ object DirectUtils { "category_v2", "common_collection", "game_list", - "game_list_detail" + "game_list_square" ) fun directToLinkPage( @@ -361,9 +364,9 @@ object DirectUtils { //"h5_game_center" -> directLetoGameCenter(context) - "game_list" -> directToGameCollectionSquare(context, entrance, "", "", "") + "game_list_square" -> directToGameCollectionSquare(context, entrance, "", "", "") - "game_list_detail" -> directToGameCollectionDetail(context, linkEntity.link ?: "", entrance) + "game_list" -> directToGameCollectionDetail(context, linkEntity.link ?: "", entrance) "" -> { // do nothing @@ -627,7 +630,7 @@ object DirectUtils { val subjectData = SubjectData(subjectId = id, subjectName = subjectName, isOrder = false) bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER) bundle.putString(KEY_TO, SubjectActivity::class.java.name) - bundle.putParcelable(EntranceUtils.KEY_SUBJECT_DATA, subjectData) + bundle.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subjectData) jumpActivity(context, bundle) } @@ -746,7 +749,7 @@ object DirectUtils { if (url.contains("leave_web_page_handle_back_pressed=true")) { bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED, true) } - bundle.putString(EntranceUtils.KEY_URL, url) + bundle.putString(EntranceConsts.KEY_URL, url) jumpActivity(context, bundle) } @@ -836,7 +839,7 @@ object DirectUtils { val bundle = Bundle() bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER) bundle.putString(KEY_TO, LibaoDetailActivity::class.java.simpleName) - bundle.putString(EntranceUtils.KEY_ID, giftId) + bundle.putString(EntranceConsts.KEY_ID, giftId) HaloApp.put(LibaoEntity.TAG, null) jumpActivity(context, bundle) } @@ -1705,10 +1708,11 @@ object DirectUtils { * 跳转至游戏单详情 */ @JvmStatic - fun directToGameCollectionDetail(context: Context, id: String, entrance: String? = null) { + fun directToGameCollectionDetail(context: Context, id: String, entrance: String? = null, path: String? = null) { if (id.isEmpty()) return val bundle = Bundle() bundle.putString(KEY_ENTRANCE, entrance ?: ENTRANCE_BROWSER) + bundle.putString(KEY_PATH, path) bundle.putString(KEY_TO, GameCollectionDetailActivity::class.java.name) bundle.putString(KEY_GAME_COLLECTION_ID, id) jumpActivity(context, bundle) diff --git a/app/src/main/java/com/gh/common/util/DownloadDialogHelper.kt b/app/src/main/java/com/gh/common/util/DownloadDialogHelper.kt index 28038b73cd..ae936df40f 100644 --- a/app/src/main/java/com/gh/common/util/DownloadDialogHelper.kt +++ b/app/src/main/java/com/gh/common/util/DownloadDialogHelper.kt @@ -2,6 +2,8 @@ package com.gh.common.util import android.content.Context import android.os.Build +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.EmptyCallback import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/common/util/DownloadHelper.kt b/app/src/main/java/com/gh/common/util/DownloadHelper.kt index 6d74482b26..470dc32a87 100644 --- a/app/src/main/java/com/gh/common/util/DownloadHelper.kt +++ b/app/src/main/java/com/gh/common/util/DownloadHelper.kt @@ -2,8 +2,9 @@ package com.gh.common.util import com.gh.common.filter.RegionSettingHelper import com.gh.download.DownloadManager +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.schedulers.Schedulers @@ -35,13 +36,13 @@ object DownloadHelper { for (apk in response.getApk()) { if (packageName == apk.packageName) { DownloadManager.createDownload(HaloApp.getInstance().application, - apk, response, "", EntranceUtils.ENTRANCE_RECOMMEND, "", false, null) + apk, response, "", EntranceConsts.ENTRANCE_RECOMMEND, "", false, null) block.invoke() } } } else if (response.getApk().size == 1) { DownloadManager.createDownload(HaloApp.getInstance().application, - response, "", EntranceUtils.ENTRANCE_RECOMMEND, "", false, null) + response, "", EntranceConsts.ENTRANCE_RECOMMEND, "", false, null) block.invoke() } } diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt index 3527b60f67..64e2c3ce45 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.kt @@ -11,7 +11,7 @@ import androidx.collection.ArrayMap import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.Config -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.dialog.CertificationDialog import com.gh.common.dialog.DeviceRemindDialog import com.gh.common.dialog.PackageCheckDialogFragment @@ -29,6 +29,9 @@ import com.gh.gamecenter.DownloadManagerActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.adapter.viewholder.GameViewHolder +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.LinkEntity import com.gh.gamecenter.entity.PluginLocation @@ -114,8 +117,8 @@ object DownloadItemUtils { // 已预约 holder.gameDownloadBtn.visibility = View.VISIBLE holder.gameDownloadBtn.text = "已预约" - holder.gameDownloadBtn.setTextColor(ContextCompat.getColor(holder.gameDes.context, R.color.text_subtitleDesc)) - holder.gameDownloadBtn.setBackgroundResource(R.drawable.button_round_f5f5f5) + holder.gameDownloadBtn.setTextColor(R.color.text_subtitleDesc.toColor(holder.gameDownloadBtn.context)) + holder.gameDownloadBtn.background = R.drawable.button_round_f5f5f5.toDrawable(holder.gameDownloadBtn.context) updateItemViewStatus(holder, false, null, null) } } @@ -610,17 +613,23 @@ object DownloadItemUtils { clickCallback?.onCallback() RealNameHelper.checkIfAuth(view.context, gameEntity, object : EmptyCallback { override fun onCallback() { - GamePermissionDialogFragment.show(context, gameEntity, gameEntity.info) { - PermissionHelper.checkStoragePermissionBeforeAction(context, object : EmptyCallback { - override fun onCallback() { - CertificationDialog.showCertificationDialog(context, gameEntity) { - DialogUtils.showVersionNumberDialog(context, gameEntity) { - DownloadDialog.showDownloadDialog(view.context, gameEntity, traceEvent, entrance, location) - } + GamePermissionDialogFragment.show(context, gameEntity, gameEntity.info, object : ConfirmListener { + override fun onConfirm() { + PermissionHelper.checkStoragePermissionBeforeAction(context, object : EmptyCallback { + override fun onCallback() { + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.showVersionNumberDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DownloadDialog.showDownloadDialog(view.context, gameEntity, traceEvent, entrance, location) + } + }) + } + }) } - } - }) - } + }) + } + }) } }) } @@ -646,52 +655,90 @@ object DownloadItemUtils { // 先弹下载弹窗(如果需要的话) RealNameHelper.checkIfAuth(context, gameEntity, object : EmptyCallback { override fun onCallback() { - GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info) { - BrowserInstallHelper.showBrowserInstallHintDialog(context, object : EmptyCallback { - override fun onCallback() { - PackageCheckDialogFragment.show(context, gameEntity) { - DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback { - override fun onCallback() { - CertificationDialog.showCertificationDialog(context, gameEntity) { - DialogUtils.showOverseaDownloadDialog(context, gameEntity) { - DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> - download(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent) - } + GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info, object : ConfirmListener { + override fun onConfirm() { + BrowserInstallHelper.showBrowserInstallHintDialog(context, object : EmptyCallback { + override fun onCallback() { + PackageCheckDialogFragment.show(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback { + override fun onCallback() { + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.showOverseaDownloadDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> + download( + context, + gameEntity, + downloadBtn, + entrance, + location, + isSubscribe, + traceEvent + ) + } + } + }) + } + }) } - } + }) } }) } - } - }) - } + }) + + } + }) } }) DataLogUtils.uploadGameLog(context, gameEntity.id, gameEntity.name, entrance) } else if (str == context.getString(R.string.attempt)) { RealNameHelper.checkIfAuth(context, gameEntity, object : EmptyCallback { override fun onCallback() { - GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info) { - BrowserInstallHelper.showBrowserInstallHintDialog(context, object : EmptyCallback { - override fun onCallback() { - PackageCheckDialogFragment.show(context, gameEntity) { - DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback { - override fun onCallback() { - CertificationDialog.showCertificationDialog(context, gameEntity) { - DialogUtils.showVersionNumberDialog(context, gameEntity) { - DialogUtils.showOverseaDownloadDialog(context, gameEntity) { - DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> - download(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent) + GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info, object : ConfirmListener { + override fun onConfirm() { + BrowserInstallHelper.showBrowserInstallHintDialog(context, object : EmptyCallback { + override fun onCallback() { + PackageCheckDialogFragment.show(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback { + override fun onCallback() { + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.showVersionNumberDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.showOverseaDownloadDialog( + context, + gameEntity, + object : ConfirmListener { + override fun onConfirm() { + DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> + download( + context, + gameEntity, + downloadBtn, + entrance, + location, + isSubscribe, + traceEvent + ) + } + } + }) + } + }) } - } + }) } - } + }) } }) } - } - }) - } + }) + } + }) } }) DataLogUtils.uploadGameLog(context, gameEntity.id, gameEntity.name, entrance) @@ -704,11 +751,13 @@ object DownloadItemUtils { } else { DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback { override fun onCallback() { - CertificationDialog.showCertificationDialog(context, gameEntity) { - DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> - plugin(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent) + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> + plugin(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent) + } } - } + }) } }) } @@ -742,7 +791,6 @@ object DownloadItemUtils { if (entrance.contains("我的游戏")) { MtaHelper.onEvent("我的游戏_启动", "启动", gameEntity.name) } - DataUtils.onGameLaunchEvent(context, gameEntity.name, gameEntity.getApk()[0].getPlatform(), location) PackageUtils.launchApplicationByPackageName(context, gameEntity.getApk()[0].packageName) EnergyTaskHelper.postEnergyTask("play_game", gameEntity.id, gameEntity.getApk()[0].packageName) } else if (str == context.getString(R.string.update)) { @@ -778,7 +826,6 @@ object DownloadItemUtils { ) { val msg = FileUtils.isCanDownload(context, gameEntity.getApk()[0].size) if (TextUtils.isEmpty(msg)) { - DataUtils.onGameDownloadEvent(context, gameEntity.name, gameEntity.getApk()[0].getPlatform(), entrance, "下载开始", "下载") DownloadManager.createDownload(context, gameEntity, context.getString(R.string.download), entrance, location, isSubscribe, traceEvent) Utils.toast(context, gameEntity.name + "已加入下载队列") downloadBtn.setText(R.string.downloading) @@ -797,7 +844,6 @@ object DownloadItemUtils { ) { val msg = FileUtils.isCanDownload(context, gameEntity.getApk()[0].size) if (TextUtils.isEmpty(msg)) { - DataUtils.onGameDownloadEvent(context, gameEntity.name, gameEntity.getApk()[0].getPlatform(), entrance, "下载开始", "插件化") DownloadManager.createDownload(context, gameEntity, "插件化", entrance, location, isSubscribe, traceEvent) Utils.toast(context, gameEntity.name + "已加入下载队列") downloadBtn.setText(R.string.downloading) @@ -845,7 +891,6 @@ object DownloadItemUtils { traceEvent: ExposureEvent? ) { val apkEntity = gameEntity.getApk()[0] - DataUtils.onGameUpdateEvent(context, gameEntity.name, apkEntity.getPlatform(), "下载开始") DownloadManager.createDownload(context, gameEntity, "更新", entrance, location, isSubscribe, traceEvent) } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt b/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt index 4c273fb5c9..4c7570a817 100644 --- a/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt +++ b/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt @@ -8,11 +8,17 @@ import android.content.Context import android.content.Intent import android.os.Build import androidx.core.app.NotificationCompat -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.getMetaExtra +import com.gh.gamecenter.common.utils.isSimulatorGame +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.utils.* import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity import com.lightgame.download.DownloadStatus @@ -49,8 +55,8 @@ object DownloadNotificationHelper { val intent = Intent() if (entity.status == DownloadStatus.done && xapkStatus != XapkUnzipStatus.FAILURE.name) { - intent.putExtra(EntranceUtils.KEY_DATA, entity.toJson()) - intent.putExtra(EntranceUtils.KEY_PATH, entity.path) + intent.putExtra(EntranceConsts.KEY_DATA, entity.toJson()) + intent.putExtra(EntranceConsts.KEY_PATH, entity.path) intent.action = ACTION_INSTALL } else { intent.action = ACTION_DOWNLOAD diff --git a/app/src/main/java/com/gh/common/util/DownloadObserver.kt b/app/src/main/java/com/gh/common/util/DownloadObserver.kt index c4abed9f94..59b21dbce2 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -2,10 +2,10 @@ package com.gh.common.util import android.os.Build import android.preference.PreferenceManager -import com.gh.base.BaseActivity -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureUtils -import com.gh.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.common.simulator.SimulatorDownloadManager import com.gh.common.simulator.SimulatorGameManager import com.gh.common.xapk.XapkInstaller @@ -14,12 +14,15 @@ import com.gh.download.DownloadManager import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SimpleGameEntity import com.gh.gamecenter.entity.SimulatorEntity import com.gh.gamecenter.eventbus.EBDownloadStatus -import com.gh.gamecenter.eventbus.EBShowDialog -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.eventbus.EBShowDialog +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.setting.GameDownloadSettingFragment import com.gh.gamecenter.suggest.SuggestType @@ -188,7 +191,12 @@ object DownloadObserver { when { // TODO 插件化传 path 从 apk 中获取 packageName 的形式有可能出现拿不到 packageName 的情况 downloadEntity.isPluggable -> // 弹出插件化提示框 - EventBus.getDefault().post(EBShowDialog(BaseActivity.PLUGGABLE, downloadEntity.path)) + EventBus.getDefault().post( + EBShowDialog( + BaseActivity.PLUGGABLE, + downloadEntity.path + ) + ) downloadEntity.isPlugin -> Utils.toast(mApplication, downloadEntity.name + " - " + platform + " - 下载完成") else -> Utils.toast(mApplication, downloadEntity.name + " - 下载完成") } @@ -232,9 +240,19 @@ object DownloadObserver { } else { // 弹出卸载提示框 if (downloadEntity.isPlugin) { - EventBus.getDefault().post(EBShowDialog(BaseActivity.PLUGGABLE, downloadEntity.path)) + EventBus.getDefault().post( + EBShowDialog( + BaseActivity.PLUGGABLE, + downloadEntity.path + ) + ) } else { - EventBus.getDefault().post(EBShowDialog(BaseActivity.SIGNATURE_CONFLICT, downloadEntity.path)) + EventBus.getDefault().post( + EBShowDialog( + BaseActivity.SIGNATURE_CONFLICT, + downloadEntity.path + ) + ) } } } @@ -261,13 +279,15 @@ object DownloadObserver { if (downloadType == Constants.SIMULATOR_DOWNLOAD) { val currentActivity = AppManager.getInstance().currentActivity() ?: return - DialogUtils.showSimulatorParseErrorDialog(currentActivity, downloadEntity.gameId, downloadEntity.name) { - val simulator = HaloApp.get(downloadEntity.name, true) as? SimulatorEntity - ?: return@showSimulatorParseErrorDialog - DownloadManager.getInstance().cancel(downloadEntity.url, true, true) - SimulatorDownloadManager.getInstance() - .showDownloadDialog(currentActivity, simulator, SimulatorDownloadManager.SimulatorLocation.SIMULATOR_GAME) - } + DialogUtils.showSimulatorParseErrorDialog(currentActivity, downloadEntity.gameId, downloadEntity.name,object :ConfirmListener{ + override fun onConfirm() { + val simulator = HaloApp.get(downloadEntity.name, true) as? SimulatorEntity + ?: return + DownloadManager.getInstance().cancel(downloadEntity.url, true, true) + SimulatorDownloadManager.getInstance() + .showDownloadDialog(currentActivity, simulator, SimulatorDownloadManager.SimulatorLocation.SIMULATOR_GAME) + } + }) } } } @@ -289,7 +309,6 @@ object DownloadObserver { if (downloadEntity.isPlugin) { type = ExposureUtils.DownloadType.PLUGIN_UPDATE } - DataUtils.onEvent(mApplication, "游戏更新", downloadEntity.name, kv1) } else { type = ExposureUtils.DownloadType.DOWNLOAD } @@ -300,7 +319,6 @@ object DownloadObserver { kv3["版本"] = downloadEntity.platform kv3["位置"] = downloadEntity.entrance ?: "null" type = ExposureUtils.DownloadType.PLUGIN_DOWNLOAD - DataUtils.onEvent(mApplication, "插件化", downloadEntity.name, kv3) } val isPlatformRecommend = java.lang.Boolean.parseBoolean(downloadEntity.getMetaExtra(Constants.IS_PLATFORM_RECOMMEND)) ExposureUtils.logADownloadCompleteExposureEvent( diff --git a/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt b/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt index 3d66975eb5..92f2756906 100644 --- a/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt +++ b/app/src/main/java/com/gh/common/util/EnergyTaskHelper.kt @@ -6,12 +6,18 @@ import android.view.View import android.widget.LinearLayout import android.widget.PopupWindow import android.widget.TextView -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.debugOnly +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.PackageFlavorHelper +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.energy.EnergyCenterActivity import com.gh.gamecenter.entity.EnergyTaskCompleteEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.AppManager import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index e921a415f6..79f2ab79ea 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -1,5 +1,9 @@ package com.gh.common.util; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_NEXT_TO; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_REQUIRE_REDIRECT; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TO; + import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -11,13 +15,18 @@ import android.text.TextUtils; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; -import com.gh.common.avoidcallback.AvoidOnResultManager; -import com.gh.common.avoidcallback.Callback; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.MainActivity; -import com.gh.gamecenter.NormalActivity; import com.gh.gamecenter.SplashScreenActivity; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.avoidcallback.AvoidOnResultManager; +import com.gh.gamecenter.common.avoidcallback.Callback; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.ClassUtils; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.RunningUtils; +import com.gh.gamecenter.core.utils.SPUtils; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; @@ -27,246 +36,8 @@ import org.json.JSONObject; import java.util.Iterator; import java.util.Set; - -/** - * @author CsHeng - * @Date 2017/4/25 - * @Time 16:39 - */ - public class EntranceUtils { - public static final String KEY_TO = "to"; - public static final String KEY_NEXT_TO = "next_to"; - public static final String KEY_NEWSID = "newsId"; - public static final String KEY_GAMEID = "gameId"; - public static final String KEY_GAME_ID = "game_id"; - public static final String KEY_ID = "id"; - public static final String KEY_URL = "url"; - public static final String KEY_BUNDLE = "bundle"; - public static final String KEY_GAMENAME = "gameName"; - public static final String KEY_PACKAGE_MD5 = "package_md5"; - public static final String HOST_ARTICLE = "article"; - public static final String HOST_UPLOAD_VIDEO = "upload_video";//上传视频 - public static final String HOST_UPLOAD_VIDEO_NEW = "upload_video_new"; // 上传视频新(AKA 发视频) - public static final String HOST_VIDEO_SINGLE = "video_single";//指定视频-不能划动 - public static final String HOST_VIDEO_MORE = "video_more";//指定视频-能划动 - public static final String HOST_VIDEO_STREAMING_HOME = "video_streaming_home";//视频流-首页 - public static final String HOST_VIDEO_STREAMING_DESC = "video_streaming_desc";//视频流-游戏介绍进入 - public static final String HOST_VIDEO_COLLECTION = "video_collection";//视频合集 - public static final String HOST_VIDEO_DETAIL = "video_detail"; - public static final String HOST_USERHOME = "userhome";//个人主页 - public static final String HOST_VIDEO = "video"; - public static final String HOST_FORUM = "forum"; - public static final String HOST_CATEGORY = "category";//分类 - public static final String HOST_COLUMN_COLLECTION = "column_collection";//专题合集 - public static final String HOST_COMMUNITY_QUESTION_LABEL_DETAIL = "community_question_label_detail";//问题标签详情 - public static final String HOST_COMMUNITY_COLUMN_DETAIL = "community_column_detail";//专栏详情 - public static final String HOST_BLOCK = "block";//板块 - public static final String HOST_SERVER_BLOCK = "server";//开服表板块 - public static final String HOST_AMWAY_BLOCK = "amway";//安利墙板块 - public static final String HOST_GAME_CALENDAR = "game_calendar";// 指定游戏的开服表页面 - public static final String HOST_HISTORY_APK = "history_apk"; // 历史版本页面 - public static final String HOST_HELP = "help";//Q&A - public static final String HOST_HELP_COLLECTION = "help_collection";//Q&A合集 - public static final String HOST_GAME_UPLOAD = "game_upload";//游戏上传 - public static final String HOST_GAME_ZONE = "game_zone";//游戏专区 - public static final String HOST_COMMUNITY_ARTICLE = "community_article"; - public static final String HOST_COMMUNITY_COLUMN = "community_column"; - public static final String HOST_GAME = "game"; - public static final String HOST_GAME_DOWNLOAD = "game_download"; - public static final String HOST_GAME_NEWS = "game_news"; - public static final String HOST_COLUMN = "column"; - public static final String HOST_WEB = "web"; - public static final String HOST_QQ = "qq"; - public static final String HOST_QQ_GROUP = "qqgroup"; - public static final String HOST_QQ_QUN = "qqqun"; - public static final String HOST_DOWNLOAD = "download"; - public static final String HOST_UPDATE = "update"; - public static final String HOST_LINK = "link"; - public static final String HOST_LIBAO = "libao"; - public static final String HOST_COMMUNITY = "community"; - public static final String HOST_SUGGESTION = "suggestion"; - public static final String HOST_ANSWER = "answer"; - public static final String HOST_QUESTION = "question"; - public static final String HOST_TOOLBOX = "toolbox"; - public static final String HOST_FORUM_DETAIL = "forum_detail"; - public static final String HOST_GAME_RATING_DETAIL = "game_rating_detail"; - public static final String HOST_HELP_AND_FEEDBACK = "help_and_feedback"; - public static final String HOST_LAUNCH_SIMULATOR_GAME = "launch_simulator_game"; - public static final String HOST_HELP_DETAIL = "help_detail"; - public static final String HOST_GAME_COLLECTION_DETAIL = "game_collection_detail"; - public static final String HOST_GAME_COLLECTION_SQUARE = "game_collection_square"; - public static final String HOST_GAME_COLLECTION_EDIT = "game_collection_edit"; - public static final String KEY_DATA = "data"; - public static final String KEY_MESSAGE = "message"; - public static final String KEY_MESSAGE_ID = "message_id"; - public static final String KEY_TYPE = "type"; - public static final String KEY_LINK = "link"; - public static final String KEY_NAME = "name"; - public static final String KEY_POSITION = "position"; - public static final String KEY_SUB_POSITION = "sub_position"; - public static final String KEY_ENTRANCE = "entrance"; - public static final String KEY_ENTRANCE_LINK = "entrance_link"; - public static final String KEY_TARGET = "target"; - public static final String ENTRANCE_BROWSER = "(浏览器)"; - public static final String ENTRANCE_WELCOME = "(启动弹窗)"; - public static final String ENTRANCE_UMENG = "(友盟推送)"; - public static final String ENTRANCE_MIPUSH = "(小米推送)"; - public static final String ENTRANCE_DOWNLOAD = "(下载跳转)"; - public static final String ENTRANCE_RECOMMEND = "(落地页)"; - public static final String ENTRANCE_BLOCK_RECOMMEND = "(推荐入口)"; - public static final String ENTRANCE_AMWAY = "(安利墙)"; - public static final String KEY_SUGGEST_HINT_TYPE = "suggestHintType"; - public static final String KEY_PACKAGENAME = "packageName"; - public static final String KEY_PLATFORM = "platform"; - public static final String KEY_GAME_NAME = "game_name"; - public static final String KEY_VERSION = "version"; - public static final String KEY_CONTENT = "content"; - public static final String KEY_PLUGIN = "plugin"; - public static final String KEY_LOCATION = "location"; - public static final String KEY_CURRENTITEM = "currentItem"; - public static final String KEY_COMMENTID = "commentId"; - public static final String KEY_COMMENT_ID = "comment_id"; - public static final String KEY_SHOW_KEYBOARD_IF_NEEDED = "show_key_board_if_needed"; - public static final String KEY_PATH = "path"; - public static final String KEY_LOCAL_PATH = "local_path"; - public static final String KEY_OUTER_INFO = "outerInfo"; - public static final String KEY_OLDERUSER = "isOldUser"; - public static final String KEY_SEARCHKEY = "searchKey"; - public static final String KEY_HINT = "hint"; - public static final String KEY_GAME = "game"; - public static final String KEY_GAME_ICON_URL = "gameIconUrl"; - public static final String KEY_SHARECONTENT = "shareContent"; - public static final String KEY_SUGGESTTYPE = "suggestType"; - public static final String KEY_PROLIST = "provinceList"; - public static final String KEY_ORDER = "order"; - public static final String KEY_TAGTYPE = "tagType"; - public static final String KEY_ANSWER_ID = "answerId"; - public static final String KEY_ANSWER_CONTENT = "answerContent"; - public static final String KEY_QUESTIONS_ID = "questionsId"; - public static final String KEY_QUESTIONS_TITLE = "questionsTitle"; - public static final String KEY_ANSWER_OPEN_IN_NEW_PAGE = "openInNewPage"; - public static final String KEY_QUESTIONS_PATCH = "questionsPatch"; - public static final String KEY_INVITE_SEARCH_KEY = "inviteSearchKey"; - public static final String KEY_MESSAGE_TYPE = "messageType"; - public static final String KEY_QUESTIONS_SEARCH_KEY = "questionsSearchKey"; - public static final String KEY_SHOW_COMMENT = "showComment"; - public static final String KEY_SHOW_ANSWER_COMMENT = "showAnswerComment"; - public static final String KEY_RECOMMENDS_CONTENTS = "isRecommendsContents"; - public static final String KEY_VERSION_UPDATE = "versionUpdate"; - public static final String KEY_CHECK_QUESTION_CONCERN = "check_question_concern"; - public static final String KEY_IS_COLUMN_COLLECTION = "is_column_collection";//是专题合集 - public static final String KEY_DRAFT_ID = "draft_id"; - public static final String KEY_KAIFU_LIST = "kaifuList"; - public static final String KEY_CATEGORY = "category"; - public static final String KEY_CATEGORY_ID = "category_id"; - public static final String KEY_CATEGORY_TITLE = "category_title"; - public static final String KEY_CATEGORY_INIT_TITLE = "category_init_title"; - public static final String KEY_BLOCK_DATA = "blockData"; - public static final String KEY_ASK_TAG = "askTag"; - public static final String KEY_SCROLL_TO_LIBAO = "libao"; - public static final String KEY_SCROLL_TO_SERVER = "scroll_to_server"; - public static final String KEY_ASK_COLUMN_TAG = "askColumnTag"; - public static final String KEY_COMMUNITY_ID = "community_id"; - public static final String KEY_COMMUNITY_NAME = "community_name"; - public static final String KEY_COMMUNITY_DATA = "communityData"; - public static final String KEY_TRACE_EVENT = "trace_event"; - public static final String KEY_SUBJECT_DATA = "subjectData"; - public static final String KEY_SUBJECT_TYPE = "subjectType"; - public static final String KEY_USER_ID = "user_id"; - public static final String KEY_QUESTION_TAG = "question_tag"; - public static final String KEY_COLUMN_ID = "column_id"; - public static final String KEY_AUTO_DOWNLOAD = "auto_download"; - public static final String KEY_HIDE_SUGGEST_HINT = "hide_suggest_hint"; - public static final String KEY_HIDE_USELESS_INFO = "hide_useless_info"; - public static final String KEY_COMMUNITY_ARTICLE_ID = "communityArticleId"; - public static final String KEY_ARTICLE_COMMENT_ID = "articleCommentId"; - public static final String KEY_SHOW_ARTICLE_COMMENT = "showArticleComment"; - public static final String KEY_SCROLL_TO_COMMENT_AREA = "scroll_to_comment_area"; - public static final String KEY_RATING_STAR_COUNT = "ratingStarCount"; - public static final String KEY_QUESTION_MODERATOR_PATCH = "questionModeratorPatch"; - public static final String KEY_SKIP_GAME_COMMENT = "skipGameComment"; - public static final String KEY_OPEN_PLATFORM_WINDOW = "openPlatformWindow"; - public static final String KEY_OPEN_KEYBOARD = "openKeyboard"; - public static final String KEY_PATH_VIDEO = "pathVideo"; - public static final String KEY_VIDEO_ID = "videoId"; - public static final String KEY_DIRECT_COMMENT = "directComment"; - public static final String KEY_SORT = "sort"; - public static final String KEY_AMWAY = "amway"; - public static final String KEY_SKIP_SUCCESS_PAGE = "skipSuccessPage"; - public static final String KEY_COLLECTION_ID = "collectionId"; - public static final String KEY_NAVIGATION_TITLE = "navigationTitle"; - public static final String KEY_IMAGE_CROP_RATIO = "imageCropRatio"; - public static final String KEY_OPEN_VIDEO_STREAMING = "openVideoStreaming"; - public static final String KEY_REFERER = "referer"; - public static final String KEY_UUID = "uuid"; - public static final String KEY_IS_HOME_VIDEO = "isHomeVideo"; - public static final String KEY_IS_HOME = "isHome"; - public static final String KEY_TAB_COUNT = "tab_count"; - public static final String KEY_WEB_SHARE = "webShare"; - public static final String KEY_ACTIVITY_NAME = "activityName";//活动名称 - public static final String KEY_PAGINATION_TYPE = "paginationType";//活动分页方式 - public static final String KEY_REQUIRE_REDIRECT = "require_redirect"; // 标记需要再跳转 - public static final String KEY_FIELD_ID = "field_id"; // 专区板块id - public static final String KEY_SECTION_NAME = "section_name"; // 专区专题名 - public static final String KEY_COLUMNNAME = "columnName"; - public static final String KEY_QA_ID = "qaId"; - public static final String KEY_QA_CONTENT_ID = "qaContentId"; - public static final String KEY_QA_CATEGORY_NAME = "qaCategoryName"; - public static final String KEY_QA_TITLE = "qa_title"; - public static final String KEY_QA_COLLECTION_ID = "qaCollectionId"; - public static final String KEY_SHOW_EDIT_DRAFT = "showEditDraft"; - public static final String KEY_ARTICLE_OPEN_IN_NEW_PAGE = "openArticleInNewPage"; - public static final String KEY_ONLY_CREATE_DRAFT = "onlyCreateDraft"; - public static final String KEY_KAIFU_SELECT_TIME = "kaifuSelectTime"; - public static final String KEY_POSTER_PATH = "posterPath"; - public static final String KEY_BLACK_THEME = "blackTheme"; - public static final String KEY_FROM_LOGIN = "fromLogin"; - public static final String KEY_CHANGE_PHONE = "changePhone"; - public static final String KEY_CONFLICT_PHONE = "conflictPhone"; - public static final String KEY_CONFLICT_USER = "conflictUser"; - public static final String KEY_EXPOSURE_SOURCE = "exposure_source"; - public static final String KEY_BBS_ID = "bbs_id"; - public static final String KEY_DIAGNOSIS = "diagnosis"; - public static final String KEY_SIMULATOR = "simulator"; - public static final String KEY_MARKET_DETAILS = "market_details"; - public static final String KEY_CATALOG_ID = "catalogId"; - public static final String KEY_PRIMARY_CATALOG_ID = "primaryCatalogId"; - public static final String KEY_PRIMARY_CATALOG_NAME = "primaryCatalogName"; - public static final String KEY_CATALOG_TITLE = "catalog_title"; - public static final String KEY_CATALOG_INIT_TITLE = "catalog_init_title"; - public static final String KEY_CATEGORY_LIST = "categoty_list"; - public static final String KEY_IS_FREE = "is_free"; - public static final String KEY_IS_SIGN = "is_sign"; - public static final String KEY_IS_FORCED_TO_CERTIFICATE = "is_forced_to_certificate"; - public static final String KEY_IS_FORCED_TO_CERTIFICATE_BUT_WITH_BACKDOOR = "is_forced_to_certificate_but_with_backdoor"; - public static final String KEY_IS_CHOOSE_APK = "is_choose_apk"; - public static final String KEY_TAB_INDEX = "tab_index"; - public static final String KEY_IS_CATEGORY_V2 = "is_category_v2"; - public static final String KEY_SUB_CATEGORY_ID = "sub_category_id"; - public static final String KEY_IS_QA_FEEDBACK = "is_qa_feedback"; - public static final String KEY_IS_CLICK_RECEIVE_BTN = "is_click_receive_btn"; - public static final String KEY_SHOW_QUICK_LOGIN = "show_quick_login"; - public static final String KEY_VIDEO_LIST = "video_list"; - public static final String KEY_CHOOSE_FORUM_TYPE = "choose_forum_type"; - public static final String KEY_CHOOSE_MAX_COUNT = "choose_max_count"; - public static final String KEY_COMMENT_COUNT = "comment_count"; - public static final String KEY_IS_COMMENT_CONVERSATION = "is_comment_conversation"; - public static final String KEY_PARENT_TAG = "parent_tag"; - public static final String KEY_BLOCK_ID = "block_id"; - public static final String KEY_BLOCK_NAME = "block_name"; - public static final String KEY_INSERT_GAME_COLLECTION = "insert_game_collection"; - public static final String KEY_INSERT_BBS_VIDEO = "insert_bbs_video"; - public static final String KEY_IS_FROM_SQUARE = "is_from_square"; - public static final String KEY_FORUM_NAME = "forum_name";//版块名称 - public static final String KEY_GAME_COLLECTION_TITLE = "game_collection_title";//游戏单标题 - public static final String KEY_GAME_COLLECTION_ID = "game_collection_id";//游戏单ID - public static final String KEY_ASSIST_RES = "assist_res"; - public static final String KEY_LAST_SELECTED_POSITION = "last_selected_position"; - public static final String KEY_RECOMMEND_ID = "recommend_id"; - public static final String KEY_LAST_PAGE_DATA = "last_page_data"; - public static void jumpActivity(Context context, Bundle bundle) { bundle.putBoolean(KEY_REQUIRE_REDIRECT, true); @@ -277,8 +48,8 @@ public class EntranceUtils { String to = bundle.getString(KEY_TO); Class clazz = ClassUtils.forName(to); if (clazz == null) clazz = MainActivity.class; - if (NormalFragment.class.isAssignableFrom(clazz)) { // 兼容NormalFragment - NormalActivity.startFragmentNewTask(context, (Class) clazz, bundle); + if (ToolbarFragment.class.isAssignableFrom(clazz)) { // 兼容ToolbarFragment + ToolBarActivity.startFragmentNewTask(context, (Class) clazz, bundle); } else { Intent intent1 = new Intent(context, clazz); intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); @@ -295,7 +66,6 @@ public class EntranceUtils { } } - public static void jumpActivity(Context context, Bundle nextToBundle, Bundle bundle, Callback callback) { bundle.putBoolean(KEY_REQUIRE_REDIRECT, true); @@ -306,8 +76,8 @@ public class EntranceUtils { String to = bundle.getString(KEY_TO); Class clazz = ClassUtils.forName(to); if (clazz == null) clazz = MainActivity.class; - if (NormalFragment.class.isAssignableFrom(clazz)) { // 兼容NormalFragment - NormalActivity.startFragmentNewTask(context, (Class) clazz, bundle); + if (ToolbarFragment.class.isAssignableFrom(clazz)) { // 兼容ToolbarFragment + ToolBarActivity.startFragmentNewTask(context, (Class) clazz, bundle); } else { Intent intent1 = new Intent(context, clazz); //TODO:添加FLAG_ACTIVITY_NEW_TASK会导致一跳转页面callback就被调用 @@ -325,11 +95,10 @@ public class EntranceUtils { context.startActivity(SplashScreenActivity.getSplashScreenIntent(context, bundle)); } } - public static void saveShortcut(String activityName, @Nullable Bundle bundle) { if (BuildConfig.DEBUG) { if (activityName.contains("MainActivity")) { - SPUtils.setString(EntranceUtils.KEY_BUNDLE, ""); + SPUtils.setString(EntranceConsts.KEY_BUNDLE, ""); return; } @@ -339,14 +108,16 @@ public class EntranceUtils { json.put(KEY_TO, activityName); json = getJsonFromBundle(bundle, json, null); Utils.toast(HaloApp.getInstance().getApplication(), "保存捷径成功"); - SPUtils.setString(EntranceUtils.KEY_BUNDLE, json.toString()); + SPUtils.setString(EntranceConsts.KEY_BUNDLE, json.toString()); } catch (Exception e) { e.printStackTrace(); - SPUtils.setString(EntranceUtils.KEY_BUNDLE, ""); + SPUtils.setString(EntranceConsts.KEY_BUNDLE, ""); } } } + + /** * 将 Bundle 转为 Json */ @@ -388,6 +159,8 @@ public class EntranceUtils { return json; } + + /** * 快捷地跳转到上次保存的页面 */ @@ -397,13 +170,13 @@ public class EntranceUtils { Bundle bundle = new Bundle(); try { - JSONObject jsonObject = new JSONObject(SPUtils.getString(EntranceUtils.KEY_BUNDLE)); + JSONObject jsonObject = new JSONObject(SPUtils.getString(EntranceConsts.KEY_BUNDLE)); getBundleFromJson(bundle, jsonObject, null); } catch (Exception e) { e.printStackTrace(); } - jumpActivity(activity, bundle); + EntranceUtils.jumpActivity(activity, bundle); } } @@ -447,7 +220,6 @@ public class EntranceUtils { } public static boolean hasShortcut() { - return !TextUtils.isEmpty(SPUtils.getString(EntranceUtils.KEY_BUNDLE)); + return !TextUtils.isEmpty(SPUtils.getString(EntranceConsts.KEY_BUNDLE)); } - } diff --git a/app/src/main/java/com/gh/common/util/EnvHelper.kt b/app/src/main/java/com/gh/common/util/EnvHelper.kt deleted file mode 100644 index 0db9ea1ba4..0000000000 --- a/app/src/main/java/com/gh/common/util/EnvHelper.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.gh.common.util - -import com.gh.common.constant.Constants -import com.gh.gamecenter.BuildConfig - -object EnvHelper { - - // API 环境是否为测试环境 - @JvmStatic - val isDevEnv: Boolean by lazy { - SPUtils.getBoolean(Constants.SP_IS_DEV_ENV, false) - } - - @JvmStatic - fun getHost(): String { - return if (!PackageFlavorHelper.IS_TEST_FLAVOR) { - BuildConfig.API_HOST - } else { - if (isDevEnv) { - BuildConfig.DEV_API_HOST - } else { - BuildConfig.API_HOST - } - } - } - - @JvmStatic - fun getNewHost(): String { - return if (!PackageFlavorHelper.IS_TEST_FLAVOR) { - BuildConfig.NEW_API_HOST - } else { - if (isDevEnv) { - BuildConfig.NEW_DEV_API_HOST - } else { - BuildConfig.NEW_API_HOST - } - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/ErrorHelper.kt b/app/src/main/java/com/gh/common/util/ErrorHelper.kt index 8190457165..fa9743e076 100644 --- a/app/src/main/java/com/gh/common/util/ErrorHelper.kt +++ b/app/src/main/java/com/gh/common/util/ErrorHelper.kt @@ -2,9 +2,11 @@ package com.gh.common.util import android.content.Context import com.gh.common.constant.Config -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.ErrorEntity import com.lightgame.utils.Utils import retrofit2.HttpException diff --git a/app/src/main/java/com/gh/common/util/FloatingBackViewManager.kt b/app/src/main/java/com/gh/common/util/FloatingBackViewManager.kt index e0cd351cd7..31e09f962a 100644 --- a/app/src/main/java/com/gh/common/util/FloatingBackViewManager.kt +++ b/app/src/main/java/com/gh/common/util/FloatingBackViewManager.kt @@ -5,6 +5,8 @@ import android.os.Build import android.view.Gravity import android.widget.TextView import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.energy.EnergyCenterActivity import com.lightgame.utils.Util_System_Keyboard import com.lzf.easyfloat.EasyFloat diff --git a/app/src/main/java/com/gh/common/util/GameActivityDownloadHelper.kt b/app/src/main/java/com/gh/common/util/GameActivityDownloadHelper.kt index e9fba77d1b..16241082e4 100644 --- a/app/src/main/java/com/gh/common/util/GameActivityDownloadHelper.kt +++ b/app/src/main/java/com/gh/common/util/GameActivityDownloadHelper.kt @@ -5,7 +5,7 @@ import android.content.Context import android.text.TextUtils import androidx.appcompat.app.AppCompatActivity import com.gh.common.DefaultJsApi -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.dialog.CertificationDialog import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureManager @@ -13,22 +13,27 @@ import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureType import com.gh.common.history.HistoryHelper import com.gh.common.repository.ReservationRepository -import com.gh.common.runOnUiThread -import com.gh.common.view.dsbridge.CompletionHandler +import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.common.view.dsbridge.CompletionHandler import com.gh.download.DownloadManager import com.gh.download.dialog.DownloadDialog import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.PluginLocation import com.gh.gamecenter.gamedetail.dialog.GamePermissionDialogFragment import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.EmptyResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.EmptyResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.teenagermode.TeenagerModeActivity -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.lightgame.download.FileUtils /** @@ -165,24 +170,32 @@ object GameActivityDownloadHelper { } else { val str = GameUtils.getDownloadBtnText(context, gameEntity, PluginLocation.only_game) if (str == context.getString(R.string.download)) { - GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info) { - CertificationDialog.showCertificationDialog(context, gameEntity) { - DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> - download(context, gameEntity, apk, isSubscribe, entrance, location, traceEvent) - } - } - } - DataLogUtils.uploadGameLog(context, gameEntity.id, gameEntity.name, entrance) - } else if (str == context.getString(R.string.attempt)) { - RealNameHelper.checkIfAuth(context, gameEntity, object : EmptyCallback { - override fun onCallback() { - GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info) { - CertificationDialog.showCertificationDialog(context, gameEntity) { + GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info, object : ConfirmListener { + override fun onConfirm() { + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> download(context, gameEntity, apk, isSubscribe, entrance, location, traceEvent) } } - } + }) + } + }) + DataLogUtils.uploadGameLog(context, gameEntity.id, gameEntity.name, entrance) + } else if (str == context.getString(R.string.attempt)) { + RealNameHelper.checkIfAuth(context, gameEntity, object : EmptyCallback { + override fun onCallback() { + GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info, object : ConfirmListener { + override fun onConfirm() { + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> + download(context, gameEntity, apk, isSubscribe, entrance, location, traceEvent) + } + } + }) + } + }) } }) DataLogUtils.uploadGameLog(context, gameEntity.id, gameEntity.name, entrance) @@ -190,11 +203,13 @@ object GameActivityDownloadHelper { if (gameEntity.pluggableCollection != null) { DownloadDialog.showDownloadDialog(context, gameEntity, traceEvent, entrance, location) } else { - CertificationDialog.showCertificationDialog(context, gameEntity) { - DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> - plugin(context, gameEntity, apk, entrance, location, isSubscribe, traceEvent) + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean -> + plugin(context, gameEntity, apk, entrance, location, isSubscribe, traceEvent) + } } - } + }) } } else if (str == context.getString(R.string.install) || str == context.getString(R.string.launch)) { ToastUtils.toast("${gameEntity.name}已加入下载队列") @@ -259,9 +274,11 @@ object GameActivityDownloadHelper { ) { val msg = FileUtils.isCanDownload(context, apk.size) if (TextUtils.isEmpty(msg)) { - DataUtils.onGameDownloadEvent(context, gameEntity.name, apk.getPlatform(), entrance, "下载开始", "下载") - DownloadManager.createDownload(context, apk, gameEntity, context.getString( - R.string.download), entrance, location, isSubscribe, traceEvent) + DownloadManager.createDownload( + context, apk, gameEntity, context.getString( + R.string.download + ), entrance, location, isSubscribe, traceEvent + ) ToastUtils.toast("${gameEntity.name}已加入下载队列") } else { ToastUtils.toast(msg) @@ -280,7 +297,6 @@ object GameActivityDownloadHelper { ) { val msg = FileUtils.isCanDownload(context, apk.size) if (TextUtils.isEmpty(msg)) { - DataUtils.onGameDownloadEvent(context, gameEntity.name, apk.getPlatform(), entrance, "下载开始", "插件化") DownloadManager.createDownload(context, apk, gameEntity, "插件化", entrance, location, isSubscribe, traceEvent) ToastUtils.toast("${gameEntity.name}已加入下载队列") } else { @@ -298,7 +314,6 @@ object GameActivityDownloadHelper { isSubscribe: Boolean, traceEvent: ExposureEvent? ) { - DataUtils.onGameUpdateEvent(context, gameEntity.name, apk.getPlatform(), "下载开始") DownloadManager.createDownload(context, apk, gameEntity, "更新", entrance, location, isSubscribe, traceEvent) ToastUtils.toast("${gameEntity.name}已加入下载队列") } @@ -367,7 +382,8 @@ object GameActivityDownloadHelper { if (PackageUtils.isInstalled(context, apk.packageName)) { // 是否可更新 if (PackageUtils.isCanUpdate(apk, event.gameId) - || PackageUtils.isNonPluginUpdatable(apk, gameEntity)) { + || PackageUtils.isNonPluginUpdatable(apk, gameEntity) + ) { handler.complete(false) } else { // 已安装且无更新 diff --git a/app/src/main/java/com/gh/common/util/GameCollectionSquareBrowseTaskHelper.kt b/app/src/main/java/com/gh/common/util/GameCollectionSquareBrowseTaskHelper.kt index 65265f5885..b32d165686 100644 --- a/app/src/main/java/com/gh/common/util/GameCollectionSquareBrowseTaskHelper.kt +++ b/app/src/main/java/com/gh/common/util/GameCollectionSquareBrowseTaskHelper.kt @@ -9,14 +9,16 @@ import android.view.Gravity import android.view.View import android.widget.ImageView import android.widget.ProgressBar -import com.gh.base.CurrentActivityHolder -import com.gh.base.GHThreadFactory -import com.gh.common.runOnUiThread -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.GHThreadFactory +import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.core.utils.CurrentActivityHolder import com.gh.gamecenter.gamecollection.detail.GameCollectionDetailActivity import com.gh.gamecenter.gamecollection.square.GameCollectionSquareActivity -import com.gh.gamecenter.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lzf.easyfloat.EasyFloat @@ -159,7 +161,7 @@ object GameCollectionSquareBrowseTaskHelper { private fun isTopActivityGameCollectionRelated(activity: Activity): Boolean { return isGameCollectionSquare(activity) || (activity is GameCollectionDetailActivity - && activity.intent.getBundleExtra(NormalActivity.NORMAL_FRAGMENT_BUNDLE)?.getBoolean(KEY_IS_FORM_BROWSE_TASK) == true) + && activity.intent.getBundleExtra(ToolBarActivity.NORMAL_FRAGMENT_BUNDLE)?.getBoolean(KEY_IS_FORM_BROWSE_TASK) == true) } private fun isGameCollectionSquare(activity: Activity, checkIsFromTask: Boolean = true): Boolean { diff --git a/app/src/main/java/com/gh/common/util/GameSubstituteRepositoryHelper.kt b/app/src/main/java/com/gh/common/util/GameSubstituteRepositoryHelper.kt index 2e91849c84..10854b67e0 100644 --- a/app/src/main/java/com/gh/common/util/GameSubstituteRepositoryHelper.kt +++ b/app/src/main/java/com/gh/common/util/GameSubstituteRepositoryHelper.kt @@ -2,11 +2,16 @@ package com.gh.common.util import android.annotation.SuppressLint import android.text.TextUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.doOnMainProcessOnly +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/common/util/GameUtils.java b/app/src/main/java/com/gh/common/util/GameUtils.java index b5d51b6aac..0593b34e7c 100644 --- a/app/src/main/java/com/gh/common/util/GameUtils.java +++ b/app/src/main/java/com/gh/common/util/GameUtils.java @@ -5,7 +5,7 @@ import android.graphics.Color; import android.text.TextUtils; import android.widget.TextView; -import com.gh.common.AppExecutor; +import com.gh.gamecenter.core.AppExecutor; import com.gh.common.constant.Config; import com.gh.common.simulator.SimulatorGameManager; import com.gh.download.DownloadManager; @@ -157,12 +157,7 @@ public class GameUtils { return context.getString(R.string.update); } else if (installCount != 0) { return context.getString(R.string.launch); - } else if ( - "demo".equals(gameEntity.getDownloadStatus()) -// gameEntity.getVersionNumber().contains("无版号") -// && Config.isGameDomeSwitchOpen() -// && !SimulatorGameManager.isSimulatorGame(gameEntity) - ) { + } else if ("demo".equals(gameEntity.getDownloadStatus())) { return context.getString(R.string.attempt); } else { return context.getString(R.string.download); diff --git a/app/src/main/java/com/gh/common/util/GameViewUtils.java b/app/src/main/java/com/gh/common/util/GameViewUtils.java index 70df1a507f..753d1ac6bd 100644 --- a/app/src/main/java/com/gh/common/util/GameViewUtils.java +++ b/app/src/main/java/com/gh/common/util/GameViewUtils.java @@ -12,9 +12,10 @@ import android.widget.TextView; import androidx.core.content.ContextCompat; -import com.gh.common.AppExecutor; -import com.gh.common.view.DrawableView; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.common.view.DrawableView; import com.gh.gamecenter.R; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.entity.TagStyleEntity; import java.text.ParseException; diff --git a/app/src/main/java/com/gh/common/util/GhMatisseVideoApplyFilter.kt b/app/src/main/java/com/gh/common/util/GhMatisseVideoApplyFilter.kt index ff69355283..ae79b3cd68 100644 --- a/app/src/main/java/com/gh/common/util/GhMatisseVideoApplyFilter.kt +++ b/app/src/main/java/com/gh/common/util/GhMatisseVideoApplyFilter.kt @@ -1,6 +1,8 @@ package com.gh.common.util import android.content.Context +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.NetworkUtils import com.lightgame.utils.Utils import com.zhihu.matisse.filter.ApplyFilter import com.zhihu.matisse.internal.entity.Item diff --git a/app/src/main/java/com/gh/common/util/HomeBottomBarHelper.kt b/app/src/main/java/com/gh/common/util/HomeBottomBarHelper.kt index 8252479a7c..ceeb229e72 100644 --- a/app/src/main/java/com/gh/common/util/HomeBottomBarHelper.kt +++ b/app/src/main/java/com/gh/common/util/HomeBottomBarHelper.kt @@ -1,5 +1,8 @@ package com.gh.common.util +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.toJson import com.gh.gamecenter.entity.Display import com.gh.gamecenter.entity.SubjectRecommendEntity import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt b/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt index c81a7a001f..b0776a84ff 100644 --- a/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt +++ b/app/src/main/java/com/gh/common/util/HomePluggableHelper.kt @@ -1,5 +1,7 @@ package com.gh.common.util +import com.gh.gamecenter.common.utils.toastInInternalRelease +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.HomePluggableFilterEntity import com.gh.gamecenter.room.AppDatabase diff --git a/app/src/main/java/com/gh/common/util/IntegralLogHelper.kt b/app/src/main/java/com/gh/common/util/IntegralLogHelper.kt index 87546c5eee..352401c30f 100644 --- a/app/src/main/java/com/gh/common/util/IntegralLogHelper.kt +++ b/app/src/main/java/com/gh/common/util/IntegralLogHelper.kt @@ -1,8 +1,10 @@ package com.gh.common.util -import com.gh.common.loghub.LoghubUtils.log -import com.gh.common.tracker.Tracker.launchId -import com.gh.common.tracker.Tracker.sessionId +import com.gh.gamecenter.common.loghub.LoghubUtils.log +import com.gh.gamecenter.common.tracker.Tracker.launchId +import com.gh.gamecenter.common.tracker.Tracker.sessionId +import com.gh.gamecenter.common.utils.debugOnly +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.lightgame.utils.Utils import org.json.JSONObject diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java index a94941de1b..486482c8c3 100644 --- a/app/src/main/java/com/gh/common/util/LibaoUtils.java +++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java @@ -8,7 +8,6 @@ import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import android.util.Log; -import android.widget.Button; import android.widget.TextView; import androidx.core.content.ContextCompat; @@ -16,6 +15,11 @@ import androidx.core.content.ContextCompat; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.LibaoDetailAdapter; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.ToastUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; @@ -26,8 +30,8 @@ import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.geetest.GeetestUtils; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.retrofit.JSONObjectResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/common/util/LogUtils.java b/app/src/main/java/com/gh/common/util/LogUtils.java index 20beffc0f0..e4e3709c61 100644 --- a/app/src/main/java/com/gh/common/util/LogUtils.java +++ b/app/src/main/java/com/gh/common/util/LogUtils.java @@ -1,31 +1,31 @@ package com.gh.common.util; -import android.annotation.SuppressLint; import android.app.Application; import android.content.Context; import android.os.Build; import android.text.TextUtils; -import com.gh.common.constant.Constants; -import com.gh.common.exposure.ExposureEntity; +import androidx.annotation.Nullable; + import com.gh.common.exposure.ExposureEvent; import com.gh.common.exposure.ExposureSource; -import com.gh.common.exposure.meta.Meta; -import com.gh.common.exposure.meta.MetaUtil; -import com.gh.common.loghub.LoghubUtils; -import com.gh.common.loghub.SimpleLogContainerEntity; import com.gh.gamecenter.BuildConfig; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.entity.ExposureEntity; +import com.gh.gamecenter.common.exposure.meta.Meta; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.loghub.LoghubUtils; +import com.gh.gamecenter.common.loghub.SimpleLogContainerEntity; +import com.gh.gamecenter.common.utils.DeviceUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.entity.CommunityEntity; import com.gh.gamecenter.entity.DetectionObjectEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.PackageDialogEntity; -import com.gh.gamecenter.entity.ShareResultEntity; import com.gh.gamecenter.entity.SpecialColumn; import com.gh.gamecenter.entity.StartupAdEntity; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.entity.Questions; -import com.gh.gamecenter.retrofit.EmptyResponse; -import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; @@ -36,12 +36,6 @@ import org.json.JSONObject; import java.util.ArrayList; import java.util.List; -import androidx.annotation.Nullable; - -import io.reactivex.schedulers.Schedulers; -import okhttp3.MediaType; -import okhttp3.RequestBody; - /** * Created by khy on 2/01/18. */ @@ -523,90 +517,6 @@ public class LogUtils { LoghubUtils.log(object, "event", false); } - public static void uploadShareEnter(String entrance, String url, String title, String summary, String resourceId) { - JSONObject object = new JSONObject(); - JSONObject payloadObject = new JSONObject(); - try { - object.put("action", "entrance_source"); - payloadObject.put("entrance", entrance); - payloadObject.put("url", url); - payloadObject.put("title", title); - payloadObject.put("summary", summary); - payloadObject.put("resource_id", resourceId); - object.put("payload", payloadObject); - } catch (JSONException e) { - e.printStackTrace(); - } - uploadShare(object); - } - - public static void uploadShareType(String shareType, String entrance, String url, String title, String summary, String resourceId) { - JSONObject object = new JSONObject(); - JSONObject payloadObject = new JSONObject(); - try { - object.put("action", "share_type"); - payloadObject.put("share_type", shareType); - payloadObject.put("entrance", entrance); - payloadObject.put("url", url); - payloadObject.put("title", title); - payloadObject.put("summary", summary); - payloadObject.put("resource_id", resourceId); - object.put("payload", payloadObject); - } catch (JSONException e) { - e.printStackTrace(); - } - uploadShare(object); - } - - @SuppressLint("CheckResult") - public static void uploadShareResult(String shareType, String entrance, String shareResult, String url, String title, String summary, String resourceId) { - JSONObject object = new JSONObject(); - JSONObject payloadObject = new JSONObject(); - try { - object.put("action", "share_result"); - payloadObject.put("share_type", shareType); - payloadObject.put("entrance", entrance); - payloadObject.put("share_result", shareResult); - payloadObject.put("url", url); - payloadObject.put("title", title); - payloadObject.put("summary", summary); - payloadObject.put("resource_id", resourceId); - object.put("payload", payloadObject); - } catch (JSONException e) { - e.printStackTrace(); - } - uploadShare(object); - - ShareResultEntity entity = new ShareResultEntity(new ShareResultEntity.Content(url, title, summary), shareType, shareResult); - RequestBody body = RequestBody.create(MediaType.parse("application/json"), GsonUtils.toJson(entity)); - - RetrofitManager.getInstance().getApi() - .postShareResult(body) - .subscribeOn(Schedulers.io()) - .subscribe(new EmptyResponse<>()); - - // 判断是否上报游戏单活动的"转发活动"任务 - postGameCollectionRepostActivityTaskCheck(url, shareResult); - } - - @SuppressLint("CheckResult") - public static void postGameCollectionRepostActivityTaskCheck(String url, String shareResult) { - if (!TextUtils.isEmpty(url) && "success".equals(shareResult)) { - String gameCollectionActivityUrl; - if (EnvHelper.isDevEnv()) { - gameCollectionActivityUrl = Constants.GAME_COLLECTION_ACTIVITY_ADDRESS_DEV; - } else { - gameCollectionActivityUrl = Constants.GAME_COLLECTION_ACTIVITY_ADDRESS; - } - if (url.contains(gameCollectionActivityUrl)) { - RetrofitManager.getInstance().getNewApi() - .postGameCollectionTask("repost_activity", "0") - .subscribeOn(Schedulers.io()) - .subscribe(new EmptyResponse<>()); - } - } - } - public static JSONObject getMetaObject() { Meta meta = MetaUtil.INSTANCE.getMeta(); JSONObject metaObject = new JSONObject(); diff --git a/app/src/main/java/com/gh/common/util/LoginHelper.kt b/app/src/main/java/com/gh/common/util/LoginHelper.kt index fbeb23dc73..8270127af1 100644 --- a/app/src/main/java/com/gh/common/util/LoginHelper.kt +++ b/app/src/main/java/com/gh/common/util/LoginHelper.kt @@ -3,8 +3,11 @@ package com.gh.common.util import android.app.Activity import android.content.Intent import com.gh.common.constant.Config -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.SentryHelper import com.gh.gamecenter.user.LoginTag import com.halo.assistant.HaloApp import com.lightgame.utils.RuntimeUtils diff --git a/app/src/main/java/com/gh/common/util/LoginUtils.java b/app/src/main/java/com/gh/common/util/LoginUtils.java index 38d3110693..4f5bdcf7dc 100644 --- a/app/src/main/java/com/gh/common/util/LoginUtils.java +++ b/app/src/main/java/com/gh/common/util/LoginUtils.java @@ -2,8 +2,9 @@ package com.gh.common.util; import android.content.Context; -import com.gh.gamecenter.retrofit.JSONObjectResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.utils.DeviceUtils; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/common/util/MessageShareUtils.java b/app/src/main/java/com/gh/common/util/MessageShareUtils.java index aa4b81b474..64c8d7f9fb 100644 --- a/app/src/main/java/com/gh/common/util/MessageShareUtils.java +++ b/app/src/main/java/com/gh/common/util/MessageShareUtils.java @@ -32,6 +32,10 @@ import com.gh.common.constant.Config; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.R; import com.gh.gamecenter.WeiBoShareActivity; +import com.gh.gamecenter.common.utils.BitmapUtils; +import com.gh.gamecenter.common.utils.ShareUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.utils.ImageUtils; import com.lightgame.utils.Utils; import com.tencent.connect.auth.QQToken; import com.tencent.connect.share.QQShare; @@ -478,7 +482,7 @@ public class MessageShareUtils { if (isToast) { Utils.toast(mContext, "图片已保存到/Pictures/ghzhushou/"); //刷新手机图片库 - refreshImage(mContext, _file); + BitmapUtils.refreshImage(mContext, _file); } } } @@ -512,17 +516,6 @@ public class MessageShareUtils { return path; } - /** - * 注意,第二个入参需要是 file 本身而不是 folder - */ - public static void refreshImage(Context context, File imageFile) { - Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); - Uri uri = Uri.fromFile(imageFile); - intent.setData(uri); - context.sendBroadcast(intent); - Utils.log("保存分享图片路径:" + imageFile.getAbsolutePath()); - } - // 获取保存图片通用路径 public static String getSaveBitmapBasePath(Context context) { String path; diff --git a/app/src/main/java/com/gh/common/util/NewLogUtils.kt b/app/src/main/java/com/gh/common/util/NewLogUtils.kt index d2f687476c..12b4f2e320 100644 --- a/app/src/main/java/com/gh/common/util/NewLogUtils.kt +++ b/app/src/main/java/com/gh/common/util/NewLogUtils.kt @@ -1,15 +1,15 @@ package com.gh.common.util import android.annotation.SuppressLint -import com.gh.common.json.JsonObjectBuilder -import com.gh.common.json.json -import com.gh.common.loghub.LoghubUtils -import com.gh.common.tracker.Tracker -import com.gh.gamecenter.entity.AdditionalParamsEntity +import com.gh.gamecenter.common.json.JsonObjectBuilder +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.gh.gamecenter.common.tracker.Tracker +import com.gh.gamecenter.common.utils.toRequestBody import com.gh.gamecenter.entity.LinkEntity import com.gh.gamecenter.entity.QuoteCountEntity import com.gh.gamecenter.entity.WechatConfigEntity -import com.gh.gamecenter.retrofit.EmptyResponse +import com.gh.gamecenter.common.retrofit.EmptyResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.schedulers.Schedulers @@ -33,23 +33,6 @@ object NewLogUtils { } } - // 专题右上角的点击事件 - fun logSubjectTopTabClick(buttonName: String?, subjectName: String?, linkEntity: LinkEntity?) { - val json = json { - "event" to "column_list_click_button" - "button_type" to buttonName - "column_name" to subjectName - "meta" to LogUtils.getMetaObject() - if (linkEntity != null) { - "link_type" to linkEntity.type - "link_title" to linkEntity.text - } - "timestamp" to System.currentTimeMillis() / 1000 - } - - log(json, "event", false) - } - @SuppressLint("CheckResult") fun logForumContentBrowser(contentId: String, contentType: String, recommendId: String) { val requestMap = hashMapOf() @@ -570,29 +553,6 @@ object NewLogUtils { log(json, "bbs_community", false) } - //分享结果 - @JvmStatic - fun logShareResult(additionalParams: AdditionalParamsEntity? = null, shareResult: Boolean) { - val json = json { - "location" to "分享面板" - "event" to "share_result" - "meta" to LogUtils.getMetaObject() - "share_success" to shareResult - - additionalParams?.let { - "content_type" to it.contentType - "content_id" to it.contentId - "bbs_id" to it.bbsId - "bbs_type" to it.bbsType - "ref_user_id" to it.refUserId - } - - "launch_id" to Tracker.launchId - "session_id" to Tracker.sessionId - "timestamp" to System.currentTimeMillis() / 1000 - } - log(json, "bbs_community", false) - } //分享面板点击 fun logSharePanelClick(event: String, userId: String, contentType: String, contentId: String, bbsId: String, bbsType: String) { @@ -1743,26 +1703,6 @@ object NewLogUtils { log(json, "event", false) } - //浏览游戏单/游戏单详情相关点击 - @JvmStatic - fun logViewOrClickGameCollectionDetail( - event: String, - title: String, - id: String, - shareType: String = "" - ) { - val json = json { - "event" to event - "game_collect_title" to title - "game_collect_id" to id - if (shareType.isNotEmpty()) { - "share_type" to shareType - } - "timestamp" to System.currentTimeMillis() / 1000 - parseAndPutMeta().invoke(this) - } - log(json, "event", false) - } //游戏单视频相关 @JvmStatic @@ -1918,4 +1858,506 @@ object NewLogUtils { } log(json, "event", false) } + + //点击专题列表右上角按钮 + @JvmStatic + fun logColumnListClickButton( + buttonType: String, + columnName: String, + columnId: String, + linkType: String, + linkTitle: String, + location: String, + blockName: String + ) { + val json = json { + "event" to "column_list_click_button" + "button_type" to buttonType + "column_name" to columnName + "column_id" to columnId + if (linkType.isNotEmpty()) { + "link_type" to linkType + } + if (linkTitle.isNotEmpty()) { + "link_title" to linkTitle + } + "location" to location + if (blockName.isNotEmpty()) { + "block_name" to blockName + } + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击游戏专题图片 + @JvmStatic + fun logColumnPictureClick( + displayType: String, + columnName: String, + columnId: String, + linkType: String, + linkText: String, + location: String, + blockName: String + ) { + val json = json { + "event" to "column_picture_click" + "display_type" to displayType + "column_name" to columnName + "column_id" to columnId + "link_id" to columnId + if (linkType.isNotEmpty()) { + "link_type" to linkType + } + if (linkText.isNotEmpty()) { + "link_text" to linkText + } + "location" to location + if (blockName.isNotEmpty()) { + "block_name" to blockName + } + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击专题合集右上角 + @JvmStatic + fun logColumnCategoryHomeButtonClick( + buttonType: String, + categoryName: String, + categoryId: String, + location: String, + blockName: String + ) { + val json = json { + "event" to "column_category_home_button_click" + "button_type" to buttonType + "category_name" to categoryName + "category_id" to categoryId + "location" to location + if (blockName.isNotEmpty()) { + "block_name" to blockName + } + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击专题合集首页内容 + fun logColumnCategoryHomeContentClick( + columnName: String, + columnId: String, + categoryName: String, + categoryId: String, + location: String, + blockName: String = "" + ) { + val json = json { + "event" to "column_category_home_content_click" + "column_name" to columnName + "column_id" to columnId + "category_name" to categoryName + "category_id" to categoryId + "location" to location + if (blockName.isNotEmpty()) { + "block_name" to blockName + } + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击专题合集详情内容 + fun logColumnCategoryDetailContentClick( + columnName: String, + columnId: String, + categoryName: String, + categoryId: String, + ) { + val json = json { + "event" to "column_category_detail_content_click" + "column_name" to columnName + "column_id" to columnId + "category_name" to categoryName + "category_id" to categoryId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击通用内容合集右上角 + @JvmStatic + fun logCommonCategoryHomeButtonClick( + buttonType: String, + categoryName: String, + categoryId: String, + location: String, + blockName: String = "" + ) { + val json = json { + "event" to "common_category_home_button_click" + "button_type" to buttonType + "category_name" to categoryName + "category_id" to categoryId + "location" to location + if (blockName.isNotEmpty()) { + "block_name" to blockName + } + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击通用内容合集首页内容 + @JvmStatic + fun logCommonCategoryHomeContentClick( + title: String, + linkType: String, + linkId: String, + linkText: String, + categoryName: String, + categoryId: String, + location: String, + blockName: String = "" + ) { + val json = json { + "event" to "common_category_home_content_click" + "title" to title + "link_type" to linkType + "link_text" to linkText + "link_id" to linkId + "category_name" to categoryName + "category_id" to categoryId + "location" to location + if (blockName.isNotEmpty()) { + "block_name" to blockName + } + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击通用内容合集详情内容 + @JvmStatic + fun logCommonCategoryDetailContentClick( + title: String, + linkType: String, + linkId: String, + linkTitle: String, + categoryName: String, + categoryId: String, + ) { + val json = json { + "event" to "common_category_detail_content_click" + "title" to title + "link_type" to linkType + "link_title" to linkTitle + "link_id" to linkId + "category_name" to categoryName + "category_id" to categoryId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击首页安利墙的全部 + @JvmStatic + fun logHomeShareWallButtonClick(entrance: String) { + val json = json { + "event" to "home_share_wall_button_click" + "entrance" to entrance + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击首页安利墙的卡片 + @JvmStatic + fun logHomeShareWallCardClick(gameName: String, gameId: String, entrance: String) { + val json = json { + "event" to "home_share_wall_card_click" + "game_name" to gameName + "game_id" to gameId + "entrance" to entrance + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击安利墙广场的卡片 + @JvmStatic + fun logShareWallSquareCardClick(gameName: String, gameId: String, entrance: String) { + val json = json { + "event" to "share_wall_square_card_click" + "game_name" to gameName + "game_id" to gameId + "entrance" to entrance + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //点击底部导航栏 + @JvmStatic + fun logBottomNavigationClick(navigationName: String, linkType: String, linkText: String, linkId: String = "") { + val json = json { + "event" to "bottom_navigation_click" + "navigation_name" to navigationName + if (linkType.isNotEmpty()) { + "link_type" to linkType + } + if (linkText.isNotEmpty()) { + "link_text" to linkText + } + "link_id" to linkId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击tab + @JvmStatic + fun logGameDetailTabClick(gameName: String, gameId: String, tabName: String) { + val json = json { + "event" to "game_detail_tab_click" + "game_name" to gameName + "game_id" to gameId + "tab_name" to tabName + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击大事件 + @JvmStatic + fun logGameDetailMajorEventClick(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_major_event_click" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览大事件 + @JvmStatic + fun logGameDetailMajorEventView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_major_event_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览更新内容 + @JvmStatic + fun logGameDetailUpdatedView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_updated_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览历史版本 + @JvmStatic + fun logGameDetailHistoryVersionView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_history_version_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击更新内容 + @JvmStatic + fun logGameDetailUpdatedClick(gameName: String, gameId: String, entrance: String) { + val json = json { + "event" to "game_detail_updated_click" + "game_name" to gameName + "game_id" to gameId + "entrance" to entrance + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览开服表 + @JvmStatic + fun logGameDetailOpenListView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_open_list_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击开服表 + @JvmStatic + fun logGameDetailOpenListClick(gameName: String, gameId: String, entrance: String) { + val json = json { + "event" to "game_detail_open_list_click" + "game_name" to gameName + "game_id" to gameId + "entrance" to entrance + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览开服日历 + @JvmStatic + fun logGameDetailOpenCalendarView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_open_calendar_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击开服日历 + @JvmStatic + fun logGameDetailOpenCalendarClick(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_open_calendar_click" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览游戏礼包 + @JvmStatic + fun logGameDetailGiftView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_gift_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击游戏礼包 + @JvmStatic + fun logGameDetailGiftClick(gameName: String, gameId: String, entrance: String) { + val json = json { + "event" to "game_detail_gift_click" + "game_name" to gameName + "game_id" to gameId + "entrance" to entrance + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览玩家评论 + @JvmStatic + fun logGameDetailCommentView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_comment_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击玩家评论 + @JvmStatic + fun logGameDetailCommentClick(gameName: String, gameId: String, entrance: String) { + val json = json { + "event" to "game_detail_comment_click" + "game_name" to gameName + "game_id" to gameId + "entrance" to entrance + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情浏览大家都在玩 + @JvmStatic + fun logGameDetailPopularView(gameName: String, gameId: String) { + val json = json { + "event" to "game_detail_popular_view" + "game_name" to gameName + "game_id" to gameId + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //游戏详情点击大家都在玩 + @JvmStatic + fun logGameDetailPopularClick(gameName: String, gameId: String, linkType: String, linkText: String) { + val json = json { + "event" to "game_detail_popular_click" + "game_name" to gameName + "game_id" to gameId + "link_id" to gameId + "link_type" to linkType + "link_text" to linkText + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + + //我的光环点击事件 + @JvmStatic + fun logHaloSelfClick(profile: String, entrance: String, linkType: String, linkId: String, linkText: String) { + val json = json { + "event" to "halo_self_click" + "profile" to profile + "entrance" to entrance + "link_type" to linkType + "link_id" to linkId + "link_text" to linkText + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/NewsUtils.java b/app/src/main/java/com/gh/common/util/NewsUtils.java index c967eaece6..f370c9e146 100644 --- a/app/src/main/java/com/gh/common/util/NewsUtils.java +++ b/app/src/main/java/com/gh/common/util/NewsUtils.java @@ -1,6 +1,5 @@ package com.gh.common.util; -import android.content.Context; import android.graphics.Color; import android.widget.TextView; @@ -8,7 +7,7 @@ import androidx.annotation.Nullable; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import java.text.ParseException; @@ -20,7 +19,6 @@ import java.util.Locale; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; -import okhttp3.ResponseBody; public class NewsUtils { diff --git a/app/src/main/java/com/gh/common/util/NotificationHelper.kt b/app/src/main/java/com/gh/common/util/NotificationHelper.kt index 9d89443464..4353c8c4e7 100644 --- a/app/src/main/java/com/gh/common/util/NotificationHelper.kt +++ b/app/src/main/java/com/gh/common/util/NotificationHelper.kt @@ -3,8 +3,10 @@ package com.gh.common.util import android.annotation.SuppressLint import androidx.appcompat.app.AppCompatActivity import androidx.core.app.NotificationManagerCompat -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.dialog.NotificationHintDialogFragment +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.TimeUtils import com.gh.gamecenter.entity.NotificationUgc import com.halo.assistant.HaloApp import com.lightgame.utils.AppManager diff --git a/app/src/main/java/com/gh/common/util/OptionDialogHelper.kt b/app/src/main/java/com/gh/common/util/OptionDialogHelper.kt index 105b16ab99..d4cc2e07d8 100644 --- a/app/src/main/java/com/gh/common/util/OptionDialogHelper.kt +++ b/app/src/main/java/com/gh/common/util/OptionDialogHelper.kt @@ -2,12 +2,13 @@ package com.gh.common.util import android.app.Dialog import android.content.Context -import android.graphics.Color import androidx.core.content.ContextCompat import android.view.Window import android.widget.LinearLayout import android.widget.TextView import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.utils.DisplayUtils object OptionDialogHelper { @@ -27,7 +28,8 @@ object OptionDialogHelper { val widthPixels = context.resources.displayMetrics.widthPixels reportTv.layoutParams = LinearLayout.LayoutParams(widthPixels * 9 / 10, LinearLayout.LayoutParams.WRAP_CONTENT) - reportTv.setPadding(DisplayUtils.dip2px(context, 20f), DisplayUtils.dip2px(context, 12f), + reportTv.setPadding( + DisplayUtils.dip2px(context, 20f), DisplayUtils.dip2px(context, 12f), 0, DisplayUtils.dip2px(context, 12f)) container.addView(reportTv) diff --git a/app/src/main/java/com/gh/common/util/PackageFlavorHelper.java b/app/src/main/java/com/gh/common/util/PackageFlavorHelper.java deleted file mode 100644 index 0bf008fd04..0000000000 --- a/app/src/main/java/com/gh/common/util/PackageFlavorHelper.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.gh.common.util; - -import com.gh.gamecenter.BuildConfig; - -public class PackageFlavorHelper { - - private PackageFlavorHelper() {} - - // 包体是否为测试包 - public static final boolean IS_TEST_FLAVOR = BuildConfig.BUILD_TIME != 0L || BuildConfig.DEBUG; - -} diff --git a/app/src/main/java/com/gh/common/util/PackageInstaller.kt b/app/src/main/java/com/gh/common/util/PackageInstaller.kt index b9aae9125e..aafbde2651 100644 --- a/app/src/main/java/com/gh/common/util/PackageInstaller.kt +++ b/app/src/main/java/com/gh/common/util/PackageInstaller.kt @@ -8,13 +8,19 @@ import android.net.Uri import android.os.Build import androidx.appcompat.app.AppCompatActivity import androidx.core.content.FileProvider -import com.gh.base.CurrentActivityHolder -import com.gh.common.constant.Constants import com.gh.common.dialog.InstallPermissionDialogFragment import com.gh.common.xapk.XapkInstaller import com.gh.download.server.BrowserInstallHelper import com.gh.gamecenter.BuildConfig -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.getExtension +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.core.utils.CurrentActivityHolder +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index 2d41a12d1f..0b6332d43d 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -23,6 +23,7 @@ import com.android.apksig.internal.apk.ApkSigningBlockUtilsLite; import com.g00fy2.versioncompare.Version; import com.gh.common.xapk.XapkInstaller; import com.gh.gamecenter.BuildConfig; +import com.gh.gamecenter.core.utils.SentryHelper; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; diff --git a/app/src/main/java/com/gh/common/util/PermissionHelper.kt b/app/src/main/java/com/gh/common/util/PermissionHelper.kt deleted file mode 100644 index ea91c2088f..0000000000 --- a/app/src/main/java/com/gh/common/util/PermissionHelper.kt +++ /dev/null @@ -1,257 +0,0 @@ -package com.gh.common.util - -import android.Manifest -import android.annotation.SuppressLint -import android.app.Activity -import android.content.Context -import android.content.Intent -import android.content.pm.PackageManager -import android.net.Uri -import android.os.Build -import android.provider.Settings -import androidx.core.content.ContextCompat -import androidx.fragment.app.FragmentActivity -import com.gh.common.constant.Constants -import com.gh.gamecenter.R -import com.tbruyelle.rxpermissions2.RxPermissions - -object PermissionHelper { - - const val INSTALL_PERMISSION_CODE = 100 - - @JvmStatic - fun requestReadPhoneStateAndStoragePermissionFromStartUp(context: Context) { - if (context is FragmentActivity) { - val rxPermission = RxPermissions(context) - - var requestCount = 0 - val permissionsStatusMap = hashMapOf() - permissionsStatusMap[Manifest.permission.READ_PHONE_STATE] = false - permissionsStatusMap[Manifest.permission.READ_EXTERNAL_STORAGE] = false - permissionsStatusMap[Manifest.permission.WRITE_EXTERNAL_STORAGE] = false - - tryWithDefaultCatch { - rxPermission - .requestEach(Manifest.permission.READ_PHONE_STATE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.READ_EXTERNAL_STORAGE) - .subscribe { permission -> - requestCount++ - permissionsStatusMap[permission.name] = permission.granted - - if (requestCount == 2) { - val hasReadPhoneStatePermission = permissionsStatusMap[Manifest.permission.READ_PHONE_STATE] == true - val hasReadStoragePermission = permissionsStatusMap[Manifest.permission.READ_EXTERNAL_STORAGE] == true - - if (hasReadPhoneStatePermission && hasReadStoragePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "都授权") - } else if (!hasReadPhoneStatePermission && !hasReadStoragePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "都不授权") - } else if (hasReadPhoneStatePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "只授权IMEI") - } else if (hasReadStoragePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "只授权存储") - } - } - } - } - - } - } - - @SuppressLint("CheckResult") - @JvmStatic - fun checkStoragePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { - if (context is FragmentActivity) { - if (context.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED - && context.checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { - emptyCallback.onCallback() - SPUtils.setBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION, false) - } else { - showDialogBeforeRequestingStorageDialog(context, emptyCallback) - } - } - } - - private fun checkStoragePermissionBeforeAction(context: FragmentActivity, emptyCallback: EmptyCallback) { - tryWithDefaultCatch { - val rxPermission = RxPermissions(context) - rxPermission - .requestEachCombined(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE) - .subscribe { permission -> - when { - permission.granted -> { - emptyCallback.onCallback() - SPUtils.setBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION, false) - } - permission.shouldShowRequestPermissionRationale -> { - // do nothing - } - else -> { - if (SPUtils.getBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION)) { - val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - intent.data = Uri.parse("package:" + context.packageName) - context.startActivity(intent) - } else { - SPUtils.setBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION, true) - } - } - } - } - } - } - - @SuppressLint("CheckResult") - @JvmStatic - fun checkReadPhoneStateAndStoragePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { - if (context is FragmentActivity) { - if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED - && context.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED - && context.checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { - emptyCallback.onCallback() - } else { - val rxPermission = RxPermissions(context) - - tryWithDefaultCatch { - rxPermission - .requestEachCombined( - Manifest.permission.READ_PHONE_STATE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.READ_EXTERNAL_STORAGE) - .subscribe { permission -> - when { - permission.granted -> { - emptyCallback.onCallback() - - ActivationHelper.sendActivationInfo() - } - permission.shouldShowRequestPermissionRationale -> { - // do nothing - } - else -> { - val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - intent.data = Uri.parse("package:" + context.getPackageName()) - context.startActivity(intent) - } - } - } - } - } - } - } - - @SuppressLint("CheckResult") - @JvmStatic - fun checkReadPhoneStatePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { - if (context is FragmentActivity) { - - if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { - emptyCallback.onCallback() - } else { - val rxPermission = RxPermissions(context) - - tryWithDefaultCatch { - rxPermission - .requestEachCombined(Manifest.permission.READ_PHONE_STATE) - .subscribe { permission -> - when { - permission.granted -> { - emptyCallback.onCallback() - - ActivationHelper.sendActivationInfo() - } - permission.shouldShowRequestPermissionRationale -> { - // do nothing - } - else -> { - val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - intent.data = Uri.parse("package:" + context.getPackageName()) - context.startActivity(intent) - } - } - } - } - } - } - } - - /** - * 跳转到权限设置 - * - * @param activity - */ - fun toPermissionSetting(activity: Activity) { - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) { - toSystemConfig(activity) - } else { - try { - toApplicationInfo(activity) - } catch (e: Exception) { - e.printStackTrace() - toSystemConfig(activity) - } - - } - } - - /** - * 应用信息界面 - * - * @param activity - */ - private fun toApplicationInfo(activity: Activity) { - val localIntent = Intent() - localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - localIntent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS - localIntent.data = Uri.fromParts("package", activity.packageName, null) - activity.startActivity(localIntent) - } - - /** - * 系统设置界面 - * - * @param activity - */ - private fun toSystemConfig(activity: Activity) { - try { - val intent = Intent(Settings.ACTION_SETTINGS) - activity.startActivity(intent) - } catch (e: Exception) { - e.printStackTrace() - } - } - - private fun showDialogBeforeRequestingStorageDialog(context: FragmentActivity, emptyCallback: EmptyCallback) { - DialogHelper.showDialog( - context, - title = "权限申请", - content = "光环助手将向您申请开启设备的存储权限,以保证能正常使用相关功能。拒绝授权将无法正常使用部分功能。", - cancelText = "放弃", - confirmText = "去授权", - cancelClickCallback = null, - confirmClickCallback = { checkStoragePermissionBeforeAction(context, emptyCallback) }, - extraConfig = DialogHelper.Config(hint = "查看权限应用场景"), - uiModificationCallback = { - it.hintTv.setTextColor(ContextCompat.getColor(context, R.color.theme_font)) - it.hintTv.setOnClickListener { - DirectUtils.directToWebView(context, Constants.PERMISSION_SCENARIO_ADDRESS, "(权限弹窗)") - } - it.contentTv.setTextColor(ContextCompat.getColor(context, R.color.text_title)) - } - ) - } - - /** - * 开启安装未知来源权限 - */ - fun toInstallPermissionSetting(activity: Activity) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - toSystemConfig(activity) - } else { - val packageURI = Uri.fromParts("package", activity.packageName, null) - val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI) - activity.startActivityForResult(intent, INSTALL_PERMISSION_CODE) - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/PlatformUtils.java b/app/src/main/java/com/gh/common/util/PlatformUtils.java index 089513c36e..1d5ccc7f4b 100644 --- a/app/src/main/java/com/gh/common/util/PlatformUtils.java +++ b/app/src/main/java/com/gh/common/util/PlatformUtils.java @@ -6,11 +6,11 @@ import android.content.SharedPreferences.Editor; import android.os.Handler; import android.text.TextUtils; -import com.gh.common.AppExecutor; +import com.gh.gamecenter.core.AppExecutor; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.PlatformEntity; import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.download.FileUtils; diff --git a/app/src/main/java/com/gh/common/util/PostCommentUtils.java b/app/src/main/java/com/gh/common/util/PostCommentUtils.java index 0484f050a8..e65cd1f0a5 100644 --- a/app/src/main/java/com/gh/common/util/PostCommentUtils.java +++ b/app/src/main/java/com/gh/common/util/PostCommentUtils.java @@ -6,8 +6,8 @@ import android.text.TextUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.CommentEntity; -import com.gh.gamecenter.retrofit.JSONObjectResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.utils.Utils; import com.walkud.rom.checker.RomIdentifier; diff --git a/app/src/main/java/com/gh/common/util/PushHelper.kt b/app/src/main/java/com/gh/common/util/PushHelper.kt deleted file mode 100644 index 486344701d..0000000000 --- a/app/src/main/java/com/gh/common/util/PushHelper.kt +++ /dev/null @@ -1,82 +0,0 @@ -//package com.gh.common.util -// -//import android.annotation.SuppressLint -//import android.content.Context -//import com.gh.gamecenter.manager.UserManager -//import com.gh.gamecenter.message.MessageUnreadRepository -//import com.gh.gamecenter.receiver.UmengMessageReceiver -//import com.gh.gamecenter.retrofit.BiResponse -//import com.gh.gamecenter.retrofit.Response -//import com.gh.gamecenter.retrofit.RetrofitManager -//import io.reactivex.schedulers.Schedulers -//import okhttp3.MediaType -//import okhttp3.RequestBody -//import okhttp3.ResponseBody -//import org.json.JSONObject -//import retrofit2.HttpException -// -//object PushHelper { -// -// /** -// * 提交推送点击事件,会尝试从 SP 读取之前失败的一并提交 -// */ -// @SuppressLint("CheckResult") -// @JvmStatic -// fun postPushClickAction(context: Context, clickEvent: UmengMessageReceiver.ClickEvent? = null) { -// val clickEventList = arrayListOf() -// -// clickEvent?.let { clickEventList.add(it) } -// -// val failedClickEventList = SPUtils.getString(UmengMessageReceiver.SP_CLICK_EVENT) -// .toObject>() -// -// failedClickEventList?.let { clickEventList.addAll(it) } -// -// // 没有要提交的事件 -// if (clickEventList.size == 0) return -// -// val body = RequestBody.create(MediaType.parse("application/json"), clickEventList.toJson()) -// -// RetrofitManager.getInstance() -// .api -// .postUmengReceiveInfo(body) -// .subscribeOn(Schedulers.io()) -// .subscribe(object : BiResponse() { -// override fun onSuccess(data: ResponseBody) { -// SPUtils.setString(UmengMessageReceiver.SP_CLICK_EVENT, "") -// } -// -// override fun onFailure(exception: Exception) { -// SPUtils.setString(UmengMessageReceiver.SP_CLICK_EVENT, clickEventList.toJson()) -// } -// }) -// } -// -// -// /** -// * 将消息中心的消息标记为已读 -// * [type] 跳转类型 -// * [notificationMessageId] 通知中心 ID -// */ -// fun setNotificationMessageRead(context: Context, type: String, notificationMessageId: String) { -// -// val jsonObject = JSONObject() -// jsonObject.put("type", type) -// val body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) -// -// RetrofitManager.getInstance() -// .api -// .postMessageRead(UserManager.getInstance().userId, notificationMessageId, body) -// .subscribeOn(Schedulers.io()) -// .subscribe(object : Response() { -// override fun onResponse(response: ResponseBody?) { -// super.onResponse(response) -// MessageUnreadRepository.loadMessageUnreadData() -// } -// -// override fun onFailure(e: HttpException?) { -// e?.printStackTrace() -// } -// }) -// } -//} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/QRCodeUtils.java b/app/src/main/java/com/gh/common/util/QRCodeUtils.java index 607de76cd2..256da6dda3 100644 --- a/app/src/main/java/com/gh/common/util/QRCodeUtils.java +++ b/app/src/main/java/com/gh/common/util/QRCodeUtils.java @@ -5,7 +5,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.widget.ImageView; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; diff --git a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt index b19fb873dd..e3f2fd43b3 100644 --- a/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt +++ b/app/src/main/java/com/gh/common/util/QuickLoginHelper.kt @@ -16,16 +16,23 @@ import com.cmic.sso.sdk.auth.AuthnHelper import com.cmic.sso.sdk.auth.LoginClickListener import com.cmic.sso.sdk.auth.TokenListener import com.gh.common.constant.Config -import com.gh.common.constant.Constants -import com.gh.common.runOnUiThread -import com.gh.common.util.PermissionHelper.checkReadPhoneStatePermissionBeforeAction -import com.gh.common.util.ToastUtils.toast import com.gh.gamecenter.LoginActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.databinding.SetWaitDialogBinding +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.utils.PermissionHelper.checkReadPhoneStatePermissionBeforeAction +import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.core.utils.ClickUtils +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.ToastUtils.toast import com.gh.gamecenter.databinding.DialogQuickLoginBinding -import com.gh.gamecenter.databinding.SetWaitDialogBinding import com.gh.gamecenter.entity.LoginTokenEntity -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.user.LoginTag import com.gh.gamecenter.user.UserRepository import com.lightgame.utils.AppManager @@ -52,6 +59,10 @@ object QuickLoginHelper { private const val ENTRANCE_DEFAULT = "一键登录" private const val ENTRANCE_PERMISSION_DIALOG = "一键登录权限弹窗" private const val AUTH_ACTIVITY_NAME = "com.cmic.sso.sdk.activity.LoginAuthActivity" + const val STATUS_DEFAULT = 0 // 默认(隐藏一键登录按钮) + const val STATUS_FROM_QUICK_LOGIN_PAGE = 1 // 从一键登录的授权页过来 + const val STATUS_FROM_QUICK_LOGIN_PERMISSION = 2 // 从一键登录的电话权限弹窗过来 + // 1.取号请求(可提前进行) @JvmStatic @@ -63,18 +74,18 @@ object QuickLoginHelper { } AuthnHelper.getInstance(context.applicationContext).getPhoneInfo( - Config.QUICK_LOGIN_APPID, - Config.QUICK_LOGIN_APPKEY, - { requestCode: Int, jsonObject: JSONObject -> - val code = jsonObject.optString("resultCode") - // “103000”为成功 - if (code == "103000") { - if (requestCode == REQUEST_GET_PHONE_INFO_CODE) { - SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, true) - } + Config.QUICK_LOGIN_APPID, + Config.QUICK_LOGIN_APPKEY, + { requestCode: Int, jsonObject: JSONObject -> + val code = jsonObject.optString("resultCode") + // “103000”为成功 + if (code == "103000") { + if (requestCode == REQUEST_GET_PHONE_INFO_CODE) { + SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, true) } - }, - REQUEST_GET_PHONE_INFO_CODE + } + }, + REQUEST_GET_PHONE_INFO_CODE ) } @@ -103,22 +114,24 @@ object QuickLoginHelper { loginAuth(context) } else { DialogUtils.showQuickLoginPermissionDialog( - context, - { - checkReadPhoneStatePermissionBeforeAction(context, object : EmptyCallback { + context, object : ConfirmListener { + override fun onConfirm() { + checkReadPhoneStatePermissionBeforeAction(context, object : EmptyCallback { override fun onCallback() { loginAuth(context) } }) - }, - { + } + }, object : CancelListener { + override fun onCancel() { startCodeLoginPage( - context, - entrance = ENTRANCE_PERMISSION_DIALOG, - isFinishAuth = false, - isFromPermission = true + context, + entrance = ENTRANCE_PERMISSION_DIALOG, + isFinishAuth = false, + isFromPermission = true ) } + } ) } } @@ -181,101 +194,103 @@ object QuickLoginHelper { mAuthnHelper?.loginAuth(Config.QUICK_LOGIN_APPID, Config.QUICK_LOGIN_APPKEY, mTokenListener, REQUEST_LOGIN_AUTH_CODE) } - private fun getConfig(context: Context, entrance: String): AuthThemeConfig{ + private fun getConfig(context: Context, entrance: String): AuthThemeConfig { return AuthThemeConfig.Builder() - .setStatusBar(Color.WHITE, true) //状态栏颜色、是否高亮 - .setAuthContentView(getCustomView(context)) //自定义布局 - // 服务条款标题栏 - .setClauseLayoutResID(R.layout.layout_quick_login_navigation, "backIv") //服务条款标题栏 - .setNavTextColor(Color.BLACK) //服务条款标题颜色 - .setNavTextSize(18) //服务条款标题字体大小 - // 手机号码 - .setNumberSize(20, true) //手机号码字体大小 - .setNumberColor(R.color.text_title.toColor()) //手机号码字体颜色 - .setNumFieldOffsetY(95) //号码栏Y偏移量 - // 登录按钮 - .setLogBtnImgPath("login_btn_bg") //登录按钮背景 - .setLogBtnText("本机号码一键登录", Color.WHITE, 16, false) //登录按钮相关 - .setLogBtnOffsetY(170) //登录按钮Y偏移量 - .setLogBtn(1000, 44) //登录按钮相关宽高 - .setLogBtnMargin(20, 20) //登录按钮相对于屏幕左右边缘边距 - // 回调 - .setBackPressedListener {} //返回键回调 - .setLogBtnClickListener(object : LoginClickListener { - override fun onLoginClickStart(context: Context, jsonObj: JSONObject?) { - LogUtils.login("logging", "一键登录", entrance) - mDialog = Dialog(context, R.style.DialogWindowTransparent).apply { - val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(context)).apply { - setWaitMessage.text = R.string.logging.toResString() - } - requestWindowFeature(Window.FEATURE_NO_TITLE) - setContentView(binding.root) - setCanceledOnTouchOutside(false) - show() + .setStatusBar(Color.WHITE, true) //状态栏颜色、是否高亮 + .setAuthContentView(getCustomView(context)) //自定义布局 + // 服务条款标题栏 + .setClauseLayoutResID(R.layout.layout_quick_login_navigation, "backIv") //服务条款标题栏 + .setNavTextColor(Color.BLACK) //服务条款标题颜色 + .setNavTextSize(18) //服务条款标题字体大小 + // 手机号码 + .setNumberSize(20, true) //手机号码字体大小 + .setNumberColor(R.color.text_title.toColor()) //手机号码字体颜色 + .setNumFieldOffsetY(95) //号码栏Y偏移量 + // 登录按钮 + .setLogBtnImgPath("login_btn_bg") //登录按钮背景 + .setLogBtnText("本机号码一键登录", Color.WHITE, 16, false) //登录按钮相关 + .setLogBtnOffsetY(170) //登录按钮Y偏移量 + .setLogBtn(1000, 44) //登录按钮相关宽高 + .setLogBtnMargin(20, 20) //登录按钮相对于屏幕左右边缘边距 + // 回调 + .setBackPressedListener {} //返回键回调 + .setLogBtnClickListener(object : LoginClickListener { + override fun onLoginClickStart(context: Context, jsonObj: JSONObject?) { + LogUtils.login("logging", "一键登录", entrance) + mDialog = Dialog(context, R.style.DialogWindowTransparent).apply { + val binding = SetWaitDialogBinding.inflate(LayoutInflater.from(context)).apply { + setWaitMessage.text = R.string.logging.toResString() } + requestWindowFeature(Window.FEATURE_NO_TITLE) + setContentView(binding.root) + setCanceledOnTouchOutside(false) + show() } + } - override fun onLoginClickComplete(context: Context, jsonObj: JSONObject?) { - if (mToken.isNotBlank()) { - val params = HashMap() - params["token"] = mToken + override fun onLoginClickComplete(context: Context, jsonObj: JSONObject?) { + if (mToken.isNotBlank()) { + val params = HashMap() + params["token"] = mToken - // 4.请求登录接口 - UserRepository.getInstance().login( - JSONObject(params as Map<*, *>), - LoginTag.oauth, - object : BiCallback> { - override fun onFirst(first: LoginTokenEntity) { - if (mDialog != null && mDialog!!.isShowing) { - mDialog?.dismiss() - } - - SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, false) - - LogUtils.login("success", "一键登录", entrance) - finishAuthActivity() - } - - override fun onSecond(second: ApiResponse) { - if (mDialog != null && mDialog!!.isShowing) { - mDialog?.dismiss() - } - } + // 4.请求登录接口 + UserRepository.getInstance().login( + JSONObject(params as Map<*, *>), + LoginTag.oauth, + object : BiCallback> { + override fun onFirst(first: LoginTokenEntity) { + if (mDialog != null && mDialog!!.isShowing) { + mDialog?.dismiss() } - ) - } else { - if (mDialog != null && mDialog!!.isShowing) { - mDialog?.dismiss() + + SPUtils.setBoolean(Constants.SP_HAS_GET_PHONE_INFO, false) + + LogUtils.login("success", "一键登录", entrance) + finishAuthActivity() + } + + override fun onSecond(second: ApiResponse) { + if (mDialog != null && mDialog!!.isShowing) { + mDialog?.dismiss() + } + } } + ) + } else { + if (mDialog != null && mDialog!!.isShowing) { + mDialog?.dismiss() } } - }) //登录按钮回调 - .setCheckBoxListener { _: Context?, _: JSONObject? -> - toast("请先勾选同意《${getOperatorType(context)}认证服务协议》《用户协议》《隐私政策》") - } //勾选回调 - // 勾选框 - .setCheckTipText("") //设置未勾选时弹出提示 - .setCheckBoxImgPath("ic_quick_login_check", "ic_quick_login_uncheck", 12, 12) //勾选图片 - // 服务条款、用户协议、隐私政策 - .setPrivacyState(false) //默认不勾选 - .setPrivacyAlignment("阅读并同意 " + AuthThemeConfig.PLACEHOLDER + " 用户协议 隐私政策", - "用户协议", R.string.disclaimer_url.toResString(), - "隐私政策", R.string.privacy_policy_url.toResString(), - "", "", "", "") //隐私条款的协议文本,自定义条款,自定义条款链接(支持四份条款) - .setPrivacyText(11, R.color.text_subtitleDesc.toColor(), R.color.theme_font.toColor(), true, false) //条款文本设置 - .setPrivacyMargin(30, 32) //隐私条款距离手机左右边缘的边距 - .setPrivacyOffsetY(280) //隐私条款Y偏移量 - // 语言 - .setAppLanguageType(0) //0.中文简体1.中文繁体2.英文 - // 转场动画 - .setAuthPageActIn("anim_auth_in","anim_auth_out") + } + }) //登录按钮回调 + .setCheckBoxListener { _: Context?, _: JSONObject? -> + toast("请先勾选同意《${getOperatorType(context)}认证服务协议》《用户协议》《隐私政策》") + } //勾选回调 + // 勾选框 + .setCheckTipText("") //设置未勾选时弹出提示 + .setCheckBoxImgPath("ic_quick_login_check", "ic_quick_login_uncheck", 12, 12) //勾选图片 + // 服务条款、用户协议、隐私政策 + .setPrivacyState(false) //默认不勾选 + .setPrivacyAlignment( + "阅读并同意 " + AuthThemeConfig.PLACEHOLDER + " 用户协议 隐私政策", + "用户协议", R.string.disclaimer_url.toResString(), + "隐私政策", R.string.privacy_policy_url.toResString(), + "", "", "", "" + ) //隐私条款的协议文本,自定义条款,自定义条款链接(支持四份条款) + .setPrivacyText(11, R.color.text_subtitleDesc.toColor(), R.color.theme_font.toColor(), true, false) //条款文本设置 + .setPrivacyMargin(30, 32) //隐私条款距离手机左右边缘的边距 + .setPrivacyOffsetY(280) //隐私条款Y偏移量 + // 语言 + .setAppLanguageType(0) //0.中文简体1.中文繁体2.英文 + // 转场动画 + .setAuthPageActIn("anim_auth_in", "anim_auth_out") // .setAuthPageActOut("anim_auth_in","anim_auth_out") - // 整体布局 - .setAuthPageWindowMode(WindowManager.LayoutParams.MATCH_PARENT, 360) //授权页窗口宽高比例 - .setWindowBottom(1) //授权页是否居于底部,0=居中;1=底部,设置为1Y轴的偏移 失效 - .setFitsSystemWindows(false) - .setThemeId(R.style.quickLoginDialog) //授权页弹窗主题 - .build() + // 整体布局 + .setAuthPageWindowMode(WindowManager.LayoutParams.MATCH_PARENT, 360) //授权页窗口宽高比例 + .setWindowBottom(1) //授权页是否居于底部,0=居中;1=底部,设置为1Y轴的偏移 失效 + .setFitsSystemWindows(false) + .setThemeId(R.style.quickLoginDialog) //授权页弹窗主题 + .build() } // 获取自定义布局View @@ -322,12 +337,12 @@ object QuickLoginHelper { } val status = when { - isFromPermission -> LoginActivity.STATUS_FROM_QUICK_LOGIN_PERMISSION + isFromPermission -> STATUS_FROM_QUICK_LOGIN_PERMISSION - mOpenAuthPageSuccess -> LoginActivity.STATUS_FROM_QUICK_LOGIN_PAGE + mOpenAuthPageSuccess -> STATUS_FROM_QUICK_LOGIN_PAGE - else -> LoginActivity.STATUS_DEFAULT + else -> STATUS_DEFAULT } context.startActivity(LoginActivity.getIntent(context, entrance, status)) diff --git a/app/src/main/java/com/gh/common/util/RealNameHelper.kt b/app/src/main/java/com/gh/common/util/RealNameHelper.kt index a05145f77a..13239ee8cb 100644 --- a/app/src/main/java/com/gh/common/util/RealNameHelper.kt +++ b/app/src/main/java/com/gh/common/util/RealNameHelper.kt @@ -1,9 +1,14 @@ package com.gh.common.util import android.content.Context -import com.gh.base.CurrentActivityHolder +import com.gh.gamecenter.core.utils.CurrentActivityHolder import com.gh.download.DownloadManager import com.gh.gamecenter.ShellActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.getMetaExtra import com.gh.gamecenter.entity.GameEntity import com.lightgame.download.DownloadEntity import com.lightgame.download.DownloadStatus @@ -82,8 +87,8 @@ object RealNameHelper { currentActivity, ShellActivity.Type.REAL_NAME_INFO ).apply { - putExtra(EntranceUtils.KEY_IS_FORCED_TO_CERTIFICATE, true) - putExtra(EntranceUtils.KEY_IS_FORCED_TO_CERTIFICATE_BUT_WITH_BACKDOOR, !isForced) + putExtra(EntranceConsts.KEY_IS_FORCED_TO_CERTIFICATE, true) + putExtra(EntranceConsts.KEY_IS_FORCED_TO_CERTIFICATE_BUT_WITH_BACKDOOR, !isForced) } ) if (downloadEntity.status == DownloadStatus.done) { diff --git a/app/src/main/java/com/gh/common/util/RecommendPopupHelper.kt b/app/src/main/java/com/gh/common/util/RecommendPopupHelper.kt index 38149a4029..c4c8fe7979 100644 --- a/app/src/main/java/com/gh/common/util/RecommendPopupHelper.kt +++ b/app/src/main/java/com/gh/common/util/RecommendPopupHelper.kt @@ -1,7 +1,10 @@ package com.gh.common.util -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.dialog.DeviceRemindDialog +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.TimeUtils import com.gh.gamecenter.entity.* import com.google.gson.reflect.TypeToken import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/common/util/ReservationHelper.kt b/app/src/main/java/com/gh/common/util/ReservationHelper.kt index 11c95137ee..9c6f11d3ef 100644 --- a/app/src/main/java/com/gh/common/util/ReservationHelper.kt +++ b/app/src/main/java/com/gh/common/util/ReservationHelper.kt @@ -2,12 +2,18 @@ package com.gh.common.util import android.annotation.SuppressLint import android.content.Context -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.repository.ReservationRepository import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.createRequestBody +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.WechatConfigEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils @@ -79,11 +85,15 @@ object ReservationHelper { DialogUtils.showReserveSuccessDialog(context) } else { NewLogUtils.logReserveWechatRemindPopShow(wechatConfig) - DialogUtils.showReserveSuccess2WechatBindDialog(context,{ - NewLogUtils.logReserveWechatRemindPopClick(wechatConfig,"开启微信提醒") - context.startActivity(WebActivity.getBindWechatIntent(context)) - },{ - NewLogUtils.logReserveWechatRemindPopClick(wechatConfig,"关闭弹窗") + DialogUtils.showReserveSuccess2WechatBindDialog(context, object : ConfirmListener { + override fun onConfirm() { + NewLogUtils.logReserveWechatRemindPopClick(wechatConfig, "开启微信提醒") + context.startActivity(WebActivity.getBindWechatIntent(context)) + } + }, object : CancelListener { + override fun onCancel() { + NewLogUtils.logReserveWechatRemindPopClick(wechatConfig, "关闭弹窗") + } }) } } @@ -102,8 +112,10 @@ object ReservationHelper { "删除预约", "游戏已上线,你可以删除此预约记录,确定删除吗?", "确定删除", - "暂不删除", { - emptyCallback.onCallback() + "暂不删除", object : ConfirmListener { + override fun onConfirm() { + emptyCallback.onCallback() + } }, null ) } @@ -115,8 +127,10 @@ object ReservationHelper { "取消预约", "取消之后你将无法收到游戏上线的通知,确定取消预约吗?", "确定取消", - "暂不取消", { - emptyCallback.onCallback() + "暂不取消", object : ConfirmListener { + override fun onConfirm() { + emptyCallback.onCallback() + } }, null ) } diff --git a/app/src/main/java/com/gh/common/util/SimpleRequestHelper.kt b/app/src/main/java/com/gh/common/util/SimpleRequestHelper.kt index 98b94f2e32..3d2e52331d 100644 --- a/app/src/main/java/com/gh/common/util/SimpleRequestHelper.kt +++ b/app/src/main/java/com/gh/common/util/SimpleRequestHelper.kt @@ -1,13 +1,13 @@ package com.gh.common.util -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.utils.createRequestBody +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import okhttp3.ResponseBody -import org.json.JSONObject import retrofit2.HttpException /** diff --git a/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt b/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt index f980b1248e..1fdf994cf4 100644 --- a/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt +++ b/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt @@ -5,7 +5,7 @@ import android.content.Context import android.content.Intent import android.os.Parcelable import androidx.fragment.app.Fragment -import com.gh.common.annotation.Synchronize +import com.gh.gamecenter.common.annotation.Synchronize import com.gh.common.util.SyncDataBetweenPageHelper.resultHandle import com.gh.common.util.SyncDataBetweenPageHelper.startActivityForResult import com.gh.gamecenter.entity.RatingComment diff --git a/app/src/main/java/com/gh/common/util/TagUtils.java b/app/src/main/java/com/gh/common/util/TagUtils.java index c75bc3b639..d20aeeefcd 100644 --- a/app/src/main/java/com/gh/common/util/TagUtils.java +++ b/app/src/main/java/com/gh/common/util/TagUtils.java @@ -6,7 +6,7 @@ import android.content.SharedPreferences; import androidx.collection.ArrayMap; import com.gh.gamecenter.entity.TagEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import java.util.HashSet; diff --git a/app/src/main/java/com/gh/common/util/UploadImageUtils.kt b/app/src/main/java/com/gh/common/util/UploadImageUtils.kt index 5c4d2a9217..f599fb0cdd 100644 --- a/app/src/main/java/com/gh/common/util/UploadImageUtils.kt +++ b/app/src/main/java/com/gh/common/util/UploadImageUtils.kt @@ -2,9 +2,10 @@ package com.gh.common.util import android.annotation.SuppressLint import android.graphics.BitmapFactory -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.FileRequestBody -import com.gh.gamecenter.retrofit.RetrofitCallback +import com.gh.gamecenter.common.utils.CompressImageUtils +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.FileRequestBody +import com.gh.gamecenter.common.retrofit.RetrofitCallback import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.ObservableOnSubscribe diff --git a/app/src/main/java/com/gh/common/util/UsageStatsHelper.kt b/app/src/main/java/com/gh/common/util/UsageStatsHelper.kt index 270d781655..dc2172b034 100644 --- a/app/src/main/java/com/gh/common/util/UsageStatsHelper.kt +++ b/app/src/main/java/com/gh/common/util/UsageStatsHelper.kt @@ -20,8 +20,9 @@ import android.provider.Settings import androidx.annotation.RequiresApi import com.gh.common.util.UsageStatsHelper.getDataByUsageEvents import com.gh.common.util.UsageStatsHelper.getDataByUsageStats +import com.gh.gamecenter.common.utils.debugOnly import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/common/util/WechatBindHelper.kt b/app/src/main/java/com/gh/common/util/WechatBindHelper.kt index 5b5cc7c401..5e8eb5bb25 100644 --- a/app/src/main/java/com/gh/common/util/WechatBindHelper.kt +++ b/app/src/main/java/com/gh/common/util/WechatBindHelper.kt @@ -1,10 +1,15 @@ package com.gh.common.util import android.annotation.SuppressLint -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.createRequestBody +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toJson import com.gh.gamecenter.entity.WechatConfigEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import okhttp3.ResponseBody diff --git a/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt b/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt index 362e50db98..1843cae83d 100644 --- a/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt +++ b/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt @@ -3,11 +3,11 @@ package com.gh.common.videolog import android.annotation.SuppressLint import android.app.Application import android.database.sqlite.SQLiteFullException -import com.gh.common.util.toRequestBody -import com.gh.common.util.toastInInternalRelease -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.common.utils.toastInInternalRelease +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.AppDatabase import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/common/view/AdBannerView.kt b/app/src/main/java/com/gh/common/view/AdBannerView.kt index 48d75974bb..0aac78de52 100644 --- a/app/src/main/java/com/gh/common/view/AdBannerView.kt +++ b/app/src/main/java/com/gh/common/view/AdBannerView.kt @@ -8,9 +8,9 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.util.DisplayUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.rxTimer +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.rxTimer import com.gh.gamecenter.R import com.gh.gamecenter.entity.SettingsEntity import io.reactivex.disposables.Disposable diff --git a/app/src/main/java/com/gh/common/view/AsyncUi.kt b/app/src/main/java/com/gh/common/view/AsyncUi.kt index bf89288c62..fa1966def2 100644 --- a/app/src/main/java/com/gh/common/view/AsyncUi.kt +++ b/app/src/main/java/com/gh/common/view/AsyncUi.kt @@ -1,8 +1,8 @@ package com.gh.common.view import android.content.Context -import com.gh.common.runOnIoThread -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.runOnUiThread import splitties.views.dsl.core.Ui open class AsyncUi(context: Context) : diff --git a/app/src/main/java/com/gh/common/view/CatalogFilterView.kt b/app/src/main/java/com/gh/common/view/CatalogFilterView.kt index 51e933d719..7b4a6c17fa 100644 --- a/app/src/main/java/com/gh/common/view/CatalogFilterView.kt +++ b/app/src/main/java/com/gh/common/view/CatalogFilterView.kt @@ -12,8 +12,8 @@ import android.widget.PopupWindow import android.widget.TextView import androidx.annotation.ColorInt import androidx.core.content.ContextCompat -import com.gh.common.util.toColor -import com.gh.common.util.visibleIf +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.visibleIf import com.gh.gamecenter.R import com.gh.gamecenter.entity.CatalogEntity import com.gh.gamecenter.entity.SubjectSettingEntity @@ -34,6 +34,10 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri private var mOnCatalogFilterSetupListener: OnCatalogFilterSetupListener? = null + private var mTypePopupWindow: PopupWindow? = null + private var mCatalogPopupWindow: PopupWindow? = null + private var mSizePopupWindow: PopupWindow? = null + init { View.inflate(context, R.layout.layout_catalog_filter, this) @@ -75,16 +79,6 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri mOnCatalogFilterSetupListener = onCatalogFilterSetupListener } - fun setRootBackgroundColor(@ColorInt color: Int) { - findViewById(R.id.config_controller).setBackgroundColor(color) - } - - fun setItemTextColor(@ColorInt color: Int) { - mTypeTv.setTextColor(color) - mCatalogTv.setTextColor(color) - mSizeTv.setTextColor(color) - } - private fun toggleHighlightedTextView(targetTextView: TextView, highlightIt: Boolean) { if (highlightIt) { targetTextView.background = ContextCompat.getDrawable(targetTextView.context, R.drawable.bg_tag_text) @@ -107,9 +101,10 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri val inflater = LayoutInflater.from(typeTv.context) val layout = inflater.inflate(R.layout.layout_filter_size, null) val popupWindow = PopupWindow( - layout, - LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT) + layout, + LayoutParams.MATCH_PARENT, + LayoutParams.WRAP_CONTENT + ).apply { mTypePopupWindow = this } val flexboxLayout = layout.findViewById(R.id.flexbox) val backgroundView = layout.findViewById(R.id.background) @@ -147,6 +142,7 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri popupWindow.setOnDismissListener { typeTv.setTextColor(R.color.text_757575.toColor(context)) typeTv.setCompoundDrawables(null, null, drawableDown, null) + mTypePopupWindow = null } popupWindow.isTouchable = true @@ -167,9 +163,10 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri val inflater = LayoutInflater.from(catalogTv.context) val layout = inflater.inflate(R.layout.layout_filter_size, null) val popupWindow = PopupWindow( - layout, - LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT) + layout, + LayoutParams.MATCH_PARENT, + LayoutParams.WRAP_CONTENT + ).apply { mCatalogPopupWindow = this } val flexboxLayout = layout.findViewById(R.id.flexbox) val backgroundView = layout.findViewById(R.id.background) @@ -209,6 +206,7 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri popupWindow.setOnDismissListener { catalogTv.setTextColor(R.color.text_757575.toColor(context)) catalogTv.setCompoundDrawables(null, null, drawableDown, null) + mCatalogPopupWindow = null } popupWindow.isTouchable = true @@ -229,9 +227,10 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri val inflater = LayoutInflater.from(sizeTv.context) val layout = inflater.inflate(R.layout.layout_filter_size, null) val popupWindow = PopupWindow( - layout, - LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT) + layout, + LayoutParams.MATCH_PARENT, + LayoutParams.WRAP_CONTENT + ).apply { mSizePopupWindow = this } val flexboxLayout = layout.findViewById(R.id.flexbox) val backgroundView = layout.findViewById(R.id.background) @@ -279,6 +278,7 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri popupWindow.setOnDismissListener { sizeTv.setTextColor(R.color.text_757575.toColor(context)) sizeTv.setCompoundDrawables(null, null, drawableDown, null) + mSizePopupWindow = null } popupWindow.isTouchable = true @@ -298,6 +298,35 @@ class CatalogFilterView @JvmOverloads constructor(context: Context, attrs: Attri } } + fun setRootBackgroundColor(@ColorInt color: Int) { + findViewById(R.id.config_controller).setBackgroundColor(color) + } + + fun setItemTextColor(@ColorInt color: Int) { + mTypeTv.setTextColor(color) + mCatalogTv.setTextColor(color) + mSizeTv.setTextColor(color) + } + + fun updatePopupWindow() { + when { + mTypePopupWindow != null && mTypePopupWindow!!.isShowing -> { + mTypePopupWindow?.dismiss() + showSelectTypePopupWindow(this, mTypeTv, mTypeTv.text.toString()) + } + + mCatalogPopupWindow != null && mCatalogPopupWindow!!.isShowing -> { + mCatalogPopupWindow?.dismiss() + showSelectCatalogPopupWindow(this, mCatalogTv, mCatalogTv.text.toString()) + } + + mSizePopupWindow != null && mSizePopupWindow!!.isShowing -> { + mSizePopupWindow?.dismiss() + showSelectSizePopupWindow(this, mSizeTv, mSizeTv.text.toString()) + } + } + } + interface OnCatalogFilterSetupListener { fun onSetupSortSize(sortSize: SubjectSettingEntity.Size) fun onSetupSortType(sortType: SortType) diff --git a/app/src/main/java/com/gh/common/view/CategoryFilterView.kt b/app/src/main/java/com/gh/common/view/CategoryFilterView.kt index 99a00a9f7c..d82add9deb 100644 --- a/app/src/main/java/com/gh/common/view/CategoryFilterView.kt +++ b/app/src/main/java/com/gh/common/view/CategoryFilterView.kt @@ -9,11 +9,11 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.PopupWindow import android.widget.TextView +import androidx.annotation.ColorInt import androidx.core.content.ContextCompat -import com.gh.common.util.dip2px -import com.gh.common.util.toColor +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R -import com.gh.gamecenter.entity.SidebarsEntity import com.gh.gamecenter.entity.SubjectSettingEntity import com.google.android.flexbox.FlexboxLayout @@ -32,6 +32,9 @@ class CategoryFilterView @JvmOverloads constructor(context: Context, attrs: Attr private var mOnCategoryFilterSetupListener: OnCategoryFilterSetupListener? = null private var mOnFilterClickListener: OnFilterClickListener? = null + private var mTypePopupWindow: PopupWindow? = null + private var mSizePopupWindow: PopupWindow? = null + init { View.inflate(context, R.layout.layout_category_filter, this) @@ -94,9 +97,10 @@ class CategoryFilterView @JvmOverloads constructor(context: Context, attrs: Attr val layout = inflater.inflate(R.layout.layout_filter_size, null) val windowWidth = typeTv.context.resources.displayMetrics.widthPixels - 80F.dip2px() val popupWindow = PopupWindow( - layout, - windowWidth, - LayoutParams.WRAP_CONTENT) + layout, + windowWidth, + LayoutParams.WRAP_CONTENT + ).apply { mTypePopupWindow = this } val flexboxLayout = layout.findViewById(R.id.flexbox) val backgroundView = layout.findViewById(R.id.background) @@ -134,6 +138,7 @@ class CategoryFilterView @JvmOverloads constructor(context: Context, attrs: Attr popupWindow.setOnDismissListener { typeTv.setTextColor(R.color.text_757575.toColor()) typeTv.setCompoundDrawables(null, null, drawableDown, null) + mTypePopupWindow = null } popupWindow.isTouchable = true @@ -155,9 +160,10 @@ class CategoryFilterView @JvmOverloads constructor(context: Context, attrs: Attr val layout = inflater.inflate(R.layout.layout_filter_size, null) val windowWidth = sizeTv.context.resources.displayMetrics.widthPixels - 80F.dip2px() val popupWindow = PopupWindow( - layout, - windowWidth, - LayoutParams.WRAP_CONTENT) + layout, + windowWidth, + LayoutParams.WRAP_CONTENT + ).apply { mSizePopupWindow = this } val flexboxLayout = layout.findViewById(R.id.flexbox) val backgroundView = layout.findViewById(R.id.background) @@ -205,6 +211,7 @@ class CategoryFilterView @JvmOverloads constructor(context: Context, attrs: Attr popupWindow.setOnDismissListener { sizeTv.setTextColor(R.color.text_757575.toColor()) sizeTv.setCompoundDrawables(null, null, drawableDown, null) + mSizePopupWindow = null } popupWindow.isTouchable = true @@ -224,6 +231,30 @@ class CategoryFilterView @JvmOverloads constructor(context: Context, attrs: Attr } } + fun setRootBackgroundColor(@ColorInt color: Int) { + findViewById(R.id.config_controller).setBackgroundColor(color) + } + + fun setItemTextColor(@ColorInt color: Int) { + mTypeTv.setTextColor(color) + mCatalogTv.setTextColor(color) + mSizeTv.setTextColor(color) + } + + fun updatePopupWindow() { + when { + mTypePopupWindow != null && mTypePopupWindow!!.isShowing -> { + mTypePopupWindow?.dismiss() + showSelectTypePopupWindow(this, mTypeTv, mTypeTv.text.toString()) + } + + mSizePopupWindow != null && mSizePopupWindow!!.isShowing -> { + mSizePopupWindow?.dismiss() + showSelectSizePopupWindow(this, mSizeTv, mSizeTv.text.toString()) + } + } + } + interface OnCategoryFilterSetupListener { fun onSetupSortSize(sortSize: SubjectSettingEntity.Size) fun onSetupSortType(sortType: SortType) diff --git a/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java b/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java index 89d2134f8b..eebda9b7ec 100644 --- a/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java +++ b/app/src/main/java/com/gh/common/view/Concern_LinearLayout.java @@ -1,14 +1,15 @@ package com.gh.common.view; import android.content.Context; -import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; -import com.gh.common.util.DisplayUtils; +import androidx.recyclerview.widget.RecyclerView; + import com.gh.gamecenter.R; +import com.gh.gamecenter.core.utils.DisplayUtils; public class Concern_LinearLayout extends LinearLayout { diff --git a/app/src/main/java/com/gh/common/view/ConfigFilterView.kt b/app/src/main/java/com/gh/common/view/ConfigFilterView.kt index 759821b350..75f6966f3a 100644 --- a/app/src/main/java/com/gh/common/view/ConfigFilterView.kt +++ b/app/src/main/java/com/gh/common/view/ConfigFilterView.kt @@ -11,8 +11,9 @@ import android.widget.PopupWindow import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import com.gh.common.util.toColor +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.entity.SubjectSettingEntity import com.google.android.flexbox.FlexboxLayout @@ -96,17 +97,11 @@ class ConfigFilterView @JvmOverloads constructor( private fun toggleHighlightedTextView(targetTextView: TextView, highlightIt: Boolean) { if (highlightIt) { - targetTextView.background = - ContextCompat.getDrawable(targetTextView.context, R.drawable.bg_tag_text) - targetTextView.setTextColor(Color.WHITE) + targetTextView.background = R.drawable.bg_tag_text.toDrawable() + targetTextView.setTextColor(R.color.text_white.toColor(context)) } else { targetTextView.background = null - targetTextView.setTextColor( - ContextCompat.getColor( - targetTextView.context, - R.color.text_757575 - ) - ) + targetTextView.setTextColor(R.color.text_757575.toColor(context)) } } diff --git a/app/src/main/java/com/gh/common/view/DownloadProgressBar.java b/app/src/main/java/com/gh/common/view/DownloadProgressBar.java index 8eb9aa23b4..80c768fe7e 100644 --- a/app/src/main/java/com/gh/common/view/DownloadProgressBar.java +++ b/app/src/main/java/com/gh/common/view/DownloadProgressBar.java @@ -18,7 +18,7 @@ import android.widget.ProgressBar; import androidx.annotation.StringRes; import androidx.core.content.ContextCompat; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.R; public class DownloadProgressBar extends ProgressBar { diff --git a/app/src/main/java/com/gh/common/view/FilterView.kt b/app/src/main/java/com/gh/common/view/FilterView.kt index 60f5756d25..f7ea8c0d97 100644 --- a/app/src/main/java/com/gh/common/view/FilterView.kt +++ b/app/src/main/java/com/gh/common/view/FilterView.kt @@ -9,13 +9,15 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.PopupWindow import android.widget.TextView +import androidx.annotation.ColorInt import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px -import com.gh.common.util.toColor +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.databinding.ItemFilterBinding import com.gh.gamecenter.databinding.LayoutFilterBinding import com.google.android.flexbox.FlexboxLayout @@ -34,6 +36,9 @@ class FilterView @JvmOverloads constructor(context: Context, attrs: AttributeSet private var mHighlightSubFilterIfItsNotDefault: Boolean = false // 当次 filter 选中非默认的时候高亮显示 + private var mPopupWindow: PopupWindow? = null + private var mSubFilterSelectedCallback: ((String) -> Unit)? = null + init { mBinding = LayoutFilterBinding.inflate(LayoutInflater.from(context), this, true) } @@ -47,13 +52,14 @@ class FilterView @JvmOverloads constructor(context: Context, attrs: AttributeSet highlightSubFilterIfNotDefault: Boolean = false) { mMainFilterList = mainFilterList mSubFilterList = subFilterList + mSubFilterSelectedCallback = subFilterSelectedCallback mHighlightSubFilterIfItsNotDefault = highlightSubFilterIfNotDefault mBinding?.subFilterTv?.text = subFilterText mBinding?.subFilterTv?.setOnClickListener { showSelectionPopupWindow(this, it as TextView, mSelectedSubFilter) { selectedText -> - subFilterSelectedCallback.invoke(selectedText) + mSubFilterSelectedCallback?.invoke(selectedText) } } @@ -76,9 +82,9 @@ class FilterView @JvmOverloads constructor(context: Context, attrs: AttributeSet mSelectedSubFilter = filter mBinding?.subFilterTv?.text = filter if (filter != mSubFilterList.firstOrNull() && mHighlightSubFilterIfItsNotDefault) { - mBinding?.subFilterTv?.setTextColor(R.color.theme_font.toColor()) + mBinding?.subFilterTv?.setTextColor(R.color.theme_font.toColor(context)) } else { - mBinding?.subFilterTv?.setTextColor(R.color.text_757575.toColor()) + mBinding?.subFilterTv?.setTextColor(R.color.text_757575.toColor(context)) } } @@ -101,15 +107,16 @@ class FilterView @JvmOverloads constructor(context: Context, attrs: AttributeSet drawableUp?.setBounds(0, 0, drawableUp.minimumWidth, drawableUp.minimumHeight) drawableDown?.setBounds(0, 0, drawableDown.minimumWidth, drawableDown.minimumHeight) - subFilterTv.setTextColor(R.color.theme_font.toColor()) + subFilterTv.setTextColor(R.color.theme_font.toColor(context)) subFilterTv.setCompoundDrawables(null, null, drawableUp, null) val inflater = LayoutInflater.from(subFilterTv.context) val layout = inflater.inflate(R.layout.layout_filter_size, null) val popupWindow = PopupWindow( - layout, - LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.WRAP_CONTENT) + layout, + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ).apply { mPopupWindow = this } val flexboxLayout = layout.findViewById(R.id.flexbox) val backgroundView = layout.findViewById(R.id.background) @@ -118,6 +125,7 @@ class FilterView @JvmOverloads constructor(context: Context, attrs: AttributeSet backgroundView.setOnClickListener { popupWindow.dismiss() + mPopupWindow = null } for (filter in mSubFilterList) { @@ -160,6 +168,28 @@ class FilterView @JvmOverloads constructor(context: Context, attrs: AttributeSet popupWindow.showAsDropDown(containerView, 0, -6) } + fun setRootBackgroundColor(@ColorInt color: Int) { + mBinding?.root?.setBackgroundColor(color) + } + + fun updateFilterRecyclerView() { + mBinding?.filterRecyclerView?.adapter?.run { + mBinding?.filterRecyclerView?.recycledViewPool?.clear() + notifyItemRangeChanged(0, itemCount) + } + } + + fun updatePopupWindow() { + mBinding?.run { + if (mPopupWindow != null && mPopupWindow!!.isShowing) { + mPopupWindow?.dismiss() + showSelectionPopupWindow(this@FilterView, subFilterTv, subFilterTv.text.toString()) { selectedText -> + mSubFilterSelectedCallback?.invoke(selectedText) + } + } + } + } + class FilterAdapter(val context: Context, private val mFilterList: ArrayList, private val mDefaultSelectedFilter: String, @@ -180,11 +210,11 @@ class FilterView @JvmOverloads constructor(context: Context, attrs: AttributeSet } if (mSelectedFilter == mFilterList[position]) { - holder.binding.titleTv.setBackgroundResource(R.drawable.bg_tag_text) - holder.binding.titleTv.setTextColor(R.color.white.toColor()) + holder.binding.titleTv.background = R.drawable.bg_tag_text.toDrawable(context) + holder.binding.titleTv.setTextColor(R.color.white.toColor(context)) } else { - holder.binding.titleTv.setBackgroundColor(R.color.background_white.toColor(holder.binding.root.context)) - holder.binding.titleTv.setTextColor(R.color.text_777777.toColor()) + holder.binding.titleTv.setBackgroundColor(R.color.background_white.toColor(context)) + holder.binding.titleTv.setTextColor(R.color.text_777777.toColor(context)) } holder.binding.titleTv.text = mFilterList[position] diff --git a/app/src/main/java/com/gh/common/view/FlexLinearLayout.kt b/app/src/main/java/com/gh/common/view/FlexLinearLayout.kt index 45e4e18eba..32995c60bf 100644 --- a/app/src/main/java/com/gh/common/view/FlexLinearLayout.kt +++ b/app/src/main/java/com/gh/common/view/FlexLinearLayout.kt @@ -11,11 +11,11 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.ContextCompat -import com.gh.common.util.DisplayUtils -import com.gh.common.util.dip2px -import com.gh.common.util.sp2px -import com.gh.common.util.toColor +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.sp2px import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.entity.TagStyleEntity import kotlin.math.ceil diff --git a/app/src/main/java/com/gh/common/view/GameIconView.kt b/app/src/main/java/com/gh/common/view/GameIconView.kt index bb8b05a847..94b5eff0f3 100644 --- a/app/src/main/java/com/gh/common/view/GameIconView.kt +++ b/app/src/main/java/com/gh/common/view/GameIconView.kt @@ -8,8 +8,13 @@ import android.view.View import androidx.cardview.widget.CardView import com.facebook.drawee.generic.RoundingParams import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.display +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.entity.GameEntity import splitties.views.dsl.core.add import splitties.views.dsl.core.lParams diff --git a/app/src/main/java/com/gh/common/view/GameTagFlexLinearLayout.kt b/app/src/main/java/com/gh/common/view/GameTagFlexLinearLayout.kt index 23ca27bcf8..51a72e2f9a 100644 --- a/app/src/main/java/com/gh/common/view/GameTagFlexLinearLayout.kt +++ b/app/src/main/java/com/gh/common/view/GameTagFlexLinearLayout.kt @@ -7,12 +7,10 @@ import android.graphics.drawable.GradientDrawable import android.util.AttributeSet import android.view.Gravity import android.view.View -import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView -import androidx.core.content.ContextCompat -import com.gh.common.util.DisplayUtils -import com.gh.common.util.toColor +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.entity.TagStyleEntity import kotlin.math.ceil diff --git a/app/src/main/java/com/gh/common/view/ImageContainerView.kt b/app/src/main/java/com/gh/common/view/ImageContainerView.kt index a59398bb9a..81c7150ebc 100644 --- a/app/src/main/java/com/gh/common/view/ImageContainerView.kt +++ b/app/src/main/java/com/gh/common/view/ImageContainerView.kt @@ -11,6 +11,12 @@ import com.facebook.drawee.view.SimpleDraweeView import com.gh.common.util.* import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.debounceActionWithInterval +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toResString +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.TopCutProcess import com.gh.gamecenter.databinding.ItemCommunityImageBinding import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.entity.AnswerEntity diff --git a/app/src/main/java/com/gh/common/view/RichEditor.java b/app/src/main/java/com/gh/common/view/RichEditor.java index d4d6b91d59..103e2e2d97 100644 --- a/app/src/main/java/com/gh/common/view/RichEditor.java +++ b/app/src/main/java/com/gh/common/view/RichEditor.java @@ -14,20 +14,21 @@ import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; -import com.gh.common.constant.Config; -import com.gh.common.util.DeviceUtils; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EmptyCallback; -import com.gh.common.util.EnvHelper; -import com.gh.common.util.GsonUtils; -import com.gh.common.util.HtmlUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.utils.DeviceUtils; +import com.gh.gamecenter.core.utils.HtmlUtils; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.common.util.PackageUtils; -import com.gh.common.util.RichEditorUtils; -import com.gh.common.util.SPUtils; +import com.gh.gamecenter.core.utils.RichEditorUtils; import com.gh.gamecenter.BuildConfig; +import com.gh.gamecenter.common.constant.Config; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.EnvHelper; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.EmptyCallback; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.MtaEvent; import com.gh.gamecenter.entity.MyVideoEntity; import com.gh.gamecenter.qa.entity.EditorInsertEntity; diff --git a/app/src/main/java/com/gh/common/view/ScaleIndicatorView.kt b/app/src/main/java/com/gh/common/view/ScaleIndicatorView.kt index c983d2a64c..277cb867f7 100644 --- a/app/src/main/java/com/gh/common/view/ScaleIndicatorView.kt +++ b/app/src/main/java/com/gh/common/view/ScaleIndicatorView.kt @@ -9,8 +9,8 @@ import android.graphics.RectF import android.util.AttributeSet import android.view.View import androidx.annotation.ColorInt -import com.gh.common.util.dip2px import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px class ScaleIndicatorView : View { diff --git a/app/src/main/java/com/gh/common/view/SubCategoryView.kt b/app/src/main/java/com/gh/common/view/SubCategoryView.kt index c1009445e0..15cae94672 100644 --- a/app/src/main/java/com/gh/common/view/SubCategoryView.kt +++ b/app/src/main/java/com/gh/common/view/SubCategoryView.kt @@ -50,7 +50,6 @@ class SubCategoryView @JvmOverloads constructor(context: Context, attrs: Attribu private fun setCategory(tv: TextView, category: CategoryEntity) { tv.text = category.name tv.setOnClickListener { - DataUtils.onMtaEvent(context, "分类大全", categoryTitle, primeCategory?.name!! + "-" + category.name!!) tv.context.startActivity(CategoryListActivity.getIntent(tv.context, categoryTitle!!, primeCategory!!, category.name!!)) } } diff --git a/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt b/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt index 003eabc464..4aeae9e6e3 100644 --- a/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt +++ b/app/src/main/java/com/gh/common/xapk/XapkInstaller.kt @@ -1,9 +1,14 @@ package com.gh.common.xapk import android.content.Context -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* import com.gh.download.DownloadManager +import com.gh.gamecenter.common.utils.debugOnly +import com.gh.gamecenter.common.utils.getExtension +import com.gh.gamecenter.common.utils.throwExceptionInDebug +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.utils.SentryHelper import com.halo.assistant.HaloApp import com.lightgame.download.DataChanger import com.lightgame.download.DownloadEntity diff --git a/app/src/main/java/com/gh/common/xapk/XapkUnzipThread.kt b/app/src/main/java/com/gh/common/xapk/XapkUnzipThread.kt index f5379c7333..4eca5009d5 100644 --- a/app/src/main/java/com/gh/common/xapk/XapkUnzipThread.kt +++ b/app/src/main/java/com/gh/common/xapk/XapkUnzipThread.kt @@ -2,10 +2,10 @@ package com.gh.common.xapk import android.os.Build import android.os.Environment -import com.gh.common.util.debounceActionWithInterval -import com.gh.common.util.getExtension -import com.gh.common.util.throwException -import com.gh.common.util.throwExceptionInDebug +import com.gh.gamecenter.common.utils.debounceActionWithInterval +import com.gh.gamecenter.common.utils.getExtension +import com.gh.gamecenter.common.utils.throwException +import com.gh.gamecenter.common.utils.throwExceptionInDebug import com.gh.gamecenter.BuildConfig import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity diff --git a/app/src/main/java/com/gh/download/DownloadDataHelper.kt b/app/src/main/java/com/gh/download/DownloadDataHelper.kt index 2f5cc6064f..60680d9d6a 100644 --- a/app/src/main/java/com/gh/download/DownloadDataHelper.kt +++ b/app/src/main/java/com/gh/download/DownloadDataHelper.kt @@ -2,13 +2,17 @@ package com.gh.download import android.content.pm.PackageInfo import android.text.TextUtils -import com.gh.common.constant.Constants -import com.gh.common.exposure.meta.MetaUtil -import com.gh.common.exposure.meta.MetaUtil.getMeta -import com.gh.common.loghub.LoghubUtils +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.exposure.meta.MetaUtil.getMeta +import com.gh.gamecenter.common.loghub.LoghubUtils import com.gh.common.util.* import com.gh.common.xapk.XapkInstaller import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.common.utils.getExtension +import com.gh.gamecenter.common.utils.getMetaExtra +import com.gh.gamecenter.common.utils.isSimulatorGame +import com.gh.gamecenter.common.utils.DeviceUtils import com.halo.assistant.HaloApp import com.lightgame.download.DataChanger import com.lightgame.download.DownloadEntity diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 022488362c..875166a613 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -13,26 +13,26 @@ import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import androidx.collection.ArrayMap; -import com.gh.common.AppExecutor; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.exposure.ExposureEvent; import com.gh.common.exposure.ExposureUtils; -import com.gh.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; import com.gh.common.history.HistoryHelper; import com.gh.common.simulator.SimulatorGameManager; -import com.gh.common.util.AppDebugConfig; +import com.gh.gamecenter.core.utils.AppDebugConfig; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DeviceUtils; +import com.gh.gamecenter.common.utils.DeviceUtils; import com.gh.common.util.DialogUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.common.util.HomePluggableHelper; import com.gh.common.util.LunchType; -import com.gh.common.util.NetworkUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.common.util.PageSwitchDataHelper; -import com.gh.common.util.SPUtils; +import com.gh.gamecenter.core.utils.PageSwitchDataHelper; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.download.DownloadedGameIdAndPackageNameDao; import com.gh.gamecenter.entity.ApkEntity; @@ -44,7 +44,6 @@ import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.manager.PackagesManager; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.packagehelper.PackageRepository; -import com.google.gson.Gson; import com.halo.assistant.HaloApp; import com.lightgame.download.ConnectionUtils; import com.lightgame.download.DataChanger; diff --git a/app/src/main/java/com/gh/download/DownloadWorkManager.kt b/app/src/main/java/com/gh/download/DownloadWorkManager.kt index c8e81f296a..c9f8ce54a5 100644 --- a/app/src/main/java/com/gh/download/DownloadWorkManager.kt +++ b/app/src/main/java/com/gh/download/DownloadWorkManager.kt @@ -2,7 +2,7 @@ package com.gh.download import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.halo.assistant.HaloApp import java.util.concurrent.TimeUnit diff --git a/app/src/main/java/com/gh/download/PackageObserver.kt b/app/src/main/java/com/gh/download/PackageObserver.kt index dde70374b7..cbed3f39c2 100644 --- a/app/src/main/java/com/gh/download/PackageObserver.kt +++ b/app/src/main/java/com/gh/download/PackageObserver.kt @@ -3,18 +3,20 @@ package com.gh.download import android.annotation.SuppressLint import android.preference.PreferenceManager import android.text.TextUtils -import com.gh.common.constant.Constants -import com.gh.common.loghub.LoghubUtils -import com.gh.common.runOnIoThread +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.gh.gamecenter.core.runOnIoThread import com.gh.common.util.* import com.gh.download.server.BrowserInstallHelper +import com.gh.gamecenter.core.utils.ThirdPartyPackageHelper +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.GameDigestEntity import com.gh.gamecenter.eventbus.EBPackage import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.packagehelper.PackageRepository import com.gh.gamecenter.packagehelper.PackageViewModel -import com.gh.gamecenter.retrofit.EmptyResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.EmptyResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.setting.GameDownloadSettingFragment.Companion.CONCERN_GAME_SP_KEY import com.halo.assistant.HaloApp @@ -26,7 +28,6 @@ import okhttp3.MediaType import okhttp3.RequestBody import org.json.JSONException import org.json.JSONObject -import java.util.* object PackageObserver { @@ -78,19 +79,6 @@ object PackageObserver { BrowserInstallHelper.onApkInstalled(mDownloadEntity?.path) if (mDownloadEntity != null) { - if (mDownloadEntity.isPluggable) { - val kv6: MutableMap = HashMap() - kv6["安装或卸载"] = "安装完成" - DataUtils.onEvent(application, "插件化", mDownloadEntity.name, kv6) - -// DataUtils.onMtaEvent(this, -// "插件化_新", -// "位置", mDownloadEntity.getEntrance(), -// "游戏", mDownloadEntity.getName() + "-" + mDownloadEntity.getPlatform(), -// "操作", "安装完成", -// "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication())); - } - // 没有光环 ID 的都记录一下游戏 ID,供'我的游戏'区分同包名不同插件用 val gh_id = PackageUtils.getMetaData(application, mDownloadEntity.packageName, "gh_id") if (gh_id == null) { @@ -126,16 +114,6 @@ object PackageObserver { mPackageViewModel.addUninstalledGame(packageName) mDownloadEntity?.let { if (it.isPluggable || it.isUpdate) { - val kv6: MutableMap = HashMap() - kv6["安装或卸载"] = "卸载完成" - DataUtils.onEvent(application, "插件化", mDownloadEntity.name, kv6) - -// DataUtils.onMtaEvent(this, -// "插件化_新", -// "位置", mDownloadEntity.getEntrance(), -// "游戏", mDownloadEntity.getName() + "-" + mDownloadEntity.getPlatform(), -// "操作", "卸载完成", -// "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication())); PackageInstaller.install(application, mDownloadEntity) } } diff --git a/app/src/main/java/com/gh/download/cache/ExoCacheManager.kt b/app/src/main/java/com/gh/download/cache/ExoCacheManager.kt index aeea4d2e50..9096504294 100644 --- a/app/src/main/java/com/gh/download/cache/ExoCacheManager.kt +++ b/app/src/main/java/com/gh/download/cache/ExoCacheManager.kt @@ -1,17 +1,15 @@ package com.gh.download.cache import android.net.Uri -import com.gh.common.runOnIoThread -import com.gh.common.util.DeviceUtils -import com.gh.common.util.NetworkUtils -import com.gh.common.util.debugOnly +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.common.utils.DeviceUtils +import com.gh.gamecenter.common.utils.NetworkUtils import com.google.android.exoplayer2.upstream.DataSource import com.google.android.exoplayer2.upstream.DataSpec import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory import com.google.android.exoplayer2.upstream.cache.CacheDataSource import com.google.android.exoplayer2.upstream.cache.CacheWriter import com.halo.assistant.HaloApp -import com.lightgame.utils.Utils import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialog.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialog.kt index 1b259997ff..0e1ac9e5de 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialog.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialog.kt @@ -14,13 +14,17 @@ import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.* import androidx.recyclerview.widget.RecyclerView.SmoothScroller -import com.gh.common.TimeElapsedHelper -import com.gh.common.dialog.BaseDraggableDialogFragment +import com.gh.gamecenter.core.utils.TimeElapsedHelper +import com.gh.gamecenter.common.base.fragment.BaseDraggableDialogFragment import com.gh.common.exposure.ExposureEvent import com.gh.common.util.* import com.gh.download.DownloadManager import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.throwExceptionInDebug import com.gh.gamecenter.databinding.DialogDownloadBinding import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameEntity @@ -88,9 +92,9 @@ class DownloadDialog : BaseDraggableDialogFragment() { super.onCreate(savedInstanceState) mGameEntity = requireArguments().getParcelable(GameEntity::class.java.simpleName)!! - mEntrance = requireArguments().getString(EntranceUtils.KEY_ENTRANCE) ?: "" - mLocation = requireArguments().getString(EntranceUtils.KEY_LOCATION) ?: "" - mTraceEvent = requireArguments().getParcelable(EntranceUtils.KEY_TRACE_EVENT) ?: null + mEntrance = requireArguments().getString(EntranceConsts.KEY_ENTRANCE) ?: "" + mLocation = requireArguments().getString(EntranceConsts.KEY_LOCATION) ?: "" + mTraceEvent = requireArguments().getParcelable(EntranceConsts.KEY_TRACE_EVENT) ?: null val factory = DownloadViewModel.Factory(HaloApp.getInstance().application, mGameEntity) mViewModel = ViewModelProviders.of(this, factory).get(DownloadViewModel::class.java) @@ -353,10 +357,10 @@ class DownloadDialog : BaseDraggableDialogFragment() { val downloadDialog = DownloadDialog().apply { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) - bundle.putString(EntranceUtils.KEY_LOCATION, location) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_LOCATION, location) bundle.putParcelable(GameEntity::class.java.simpleName, gameEntity) - bundle.putParcelable(EntranceUtils.KEY_TRACE_EVENT, traceEvent) + bundle.putParcelable(EntranceConsts.KEY_TRACE_EVENT, traceEvent) arguments = bundle } downloadDialog.show(fragmentActivity.supportFragmentManager, DownloadDialog::class.java.name) diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogAdapter.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogAdapter.kt index ff05bd25a0..8ddb08ae09 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogAdapter.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogAdapter.kt @@ -5,16 +5,15 @@ import android.graphics.drawable.GradientDrawable import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.OnViewClickListener +import com.gh.gamecenter.common.callback.OnViewClickListener import com.gh.common.exposure.ExposureEvent import com.gh.common.util.* import com.gh.gamecenter.NewsDetailActivity -import com.gh.gamecenter.QaActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.* import com.gh.gamecenter.entity.GameEntity import com.lightgame.adapter.BaseRecyclerAdapter -import com.lightgame.utils.Utils class DownloadDialogAdapter( context: Context, diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogInstalledItemViewHolder.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogInstalledItemViewHolder.kt index 968a7251fc..71924485e5 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogInstalledItemViewHolder.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogInstalledItemViewHolder.kt @@ -1,12 +1,16 @@ package com.gh.download.dialog import android.view.View -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.constant.Config import com.gh.common.exposure.ExposureEvent import com.gh.common.util.* import com.gh.download.DownloadManager import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.throwExceptionInDebug +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.DownloadDialogInstalledItemBinding import com.gh.gamecenter.entity.ApkEntity import com.lightgame.download.DownloadStatus diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogInstructionItemViewHolder.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogInstructionItemViewHolder.kt index 48595b0939..0b363a7086 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogInstructionItemViewHolder.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogInstructionItemViewHolder.kt @@ -4,10 +4,9 @@ import android.graphics.Color import android.webkit.WebView import android.webkit.WebViewClient import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.DefaultUrlHandler -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.databinding.DownloadDialogInstructionItemBinding class DownloadDialogInstructionItemViewHolder(val binding: DownloadDialogInstructionItemBinding) : BaseRecyclerViewHolder(binding.root) { diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt index df9cc30d55..6244ff2f71 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogItemViewHolder.kt @@ -6,19 +6,23 @@ import android.widget.RelativeLayout import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseActivity -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.constant.Config import com.gh.common.dialog.CertificationDialog import com.gh.common.dialog.DeviceRemindDialog import com.gh.common.dialog.PackageCheckDialogFragment import com.gh.common.exposure.ExposureEvent import com.gh.common.util.* +import com.gh.common.util.DialogUtils import com.gh.common.util.DirectUtils.directToLinkPage import com.gh.download.DownloadManager import com.gh.download.server.BrowserInstallHelper import com.gh.gamecenter.DownloadManagerActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.DownloadDialogItemBinding import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameCollectionEntity @@ -351,22 +355,26 @@ class DownloadDialogItemViewHolder(val binding: DownloadDialogItemBinding) : Bas override fun onCallback() { DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apkEntity, object : EmptyCallback { override fun onCallback() { - PackageCheckDialogFragment.show(context as AppCompatActivity, gameEntity, DialogUtils.ConfirmListener { - CertificationDialog.showCertificationDialog(context, gameEntity, DialogUtils.ConfirmListener { - DialogUtils.checkDownload(context, apkEntity.size) { isSubscribe -> - DownloadManager.createDownload( - context, - apkEntity, - gameEntity, - downloadMethod, - entrance, - location, - isSubscribe, traceEvent - ) + PackageCheckDialogFragment.show(context as AppCompatActivity, gameEntity, object : ConfirmListener { + override fun onConfirm() { + CertificationDialog.showCertificationDialog(context, gameEntity, object : ConfirmListener { + override fun onConfirm() { + DialogUtils.checkDownload(context, apkEntity.size) { isSubscribe -> + DownloadManager.createDownload( + context, + apkEntity, + gameEntity, + downloadMethod, + entrance, + location, + isSubscribe, traceEvent + ) - DeviceRemindDialog.showDeviceRemindDialog(context, gameEntity) - } - }) + DeviceRemindDialog.showDeviceRemindDialog(context, gameEntity) + } + } + }) + } }) } }) diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogLinkItemViewHolder.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogLinkItemViewHolder.kt index 0a0b777454..cf454507e8 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogLinkItemViewHolder.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogLinkItemViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.download.dialog -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.DownloadDialogLinkItemBinding class DownloadDialogLinkItemViewHolder(val binding: DownloadDialogLinkItemBinding) : BaseRecyclerViewHolder(binding.root) { diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogPlatformRequestItemViewHolder.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogPlatformRequestItemViewHolder.kt index 724d575815..b61775c90b 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogPlatformRequestItemViewHolder.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogPlatformRequestItemViewHolder.kt @@ -1,7 +1,6 @@ package com.gh.download.dialog -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.VoteActivity import com.gh.gamecenter.databinding.DownloadDialogPlatformRequestItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/download/dialog/DownloadDialogSectionItemViewHolder.kt b/app/src/main/java/com/gh/download/dialog/DownloadDialogSectionItemViewHolder.kt index 268be73cd7..13ee777928 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadDialogSectionItemViewHolder.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadDialogSectionItemViewHolder.kt @@ -1,7 +1,6 @@ package com.gh.download.dialog -import com.gh.base.BaseRecyclerViewHolder -import com.gh.gamecenter.databinding.DownloadDialogLinkItemBinding +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.DownloadDialogSectionItemBinding class DownloadDialogSectionItemViewHolder(val binding: DownloadDialogSectionItemBinding) : BaseRecyclerViewHolder(binding.root) { diff --git a/app/src/main/java/com/gh/download/dialog/DownloadLinkDialog.kt b/app/src/main/java/com/gh/download/dialog/DownloadLinkDialog.kt index 67f26089a1..75ae3d0b90 100644 --- a/app/src/main/java/com/gh/download/dialog/DownloadLinkDialog.kt +++ b/app/src/main/java/com/gh/download/dialog/DownloadLinkDialog.kt @@ -6,8 +6,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.FragmentActivity -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.databinding.DialogDownloadLinkBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt b/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt index 9543a82ec2..6c601e92d6 100644 --- a/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt +++ b/app/src/main/java/com/gh/download/server/BrowserInstallHelper.kt @@ -4,12 +4,17 @@ import android.content.Context import android.os.Build import android.util.Base64 import com.gh.common.constant.Config -import com.gh.common.constant.Constants -import com.gh.common.exposure.ExposureEntity +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.entity.ExposureEntity import com.gh.common.exposure.ExposureEvent -import com.gh.common.loghub.LoghubUtils +import com.gh.gamecenter.common.loghub.LoghubUtils import com.gh.common.util.* import com.gh.gamecenter.ShellActivity +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.google.gson.JsonObject import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/download/server/DownloadServer.kt b/app/src/main/java/com/gh/download/server/DownloadServer.kt index ed0350c540..686e1f3cf0 100644 --- a/app/src/main/java/com/gh/download/server/DownloadServer.kt +++ b/app/src/main/java/com/gh/download/server/DownloadServer.kt @@ -1,9 +1,9 @@ package com.gh.download.server -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent -import com.gh.common.util.getMetaExtra -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.getMetaExtra +import com.gh.gamecenter.common.utils.toObject import com.gh.download.DownloadManager import com.halo.assistant.HaloApp import com.lightgame.download.FileUtils diff --git a/app/src/main/java/com/gh/flutter/FlutterAdServiceImplAop.java b/app/src/main/java/com/gh/flutter/FlutterAdServiceImplAop.java index 16a9445545..fe708d558f 100644 --- a/app/src/main/java/com/gh/flutter/FlutterAdServiceImplAop.java +++ b/app/src/main/java/com/gh/flutter/FlutterAdServiceImplAop.java @@ -4,7 +4,7 @@ import android.content.Context; import com.gh.common.util.AdHelper; import com.gh.common.util.DirectUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.entity.SettingsEntity; import me.ele.lancet.base.annotations.Insert; diff --git a/app/src/main/java/com/gh/flutter/FlutterBoostRouteServiceImplAop.java b/app/src/main/java/com/gh/flutter/FlutterBoostRouteServiceImplAop.java index befccd0d60..4ab7d1ff09 100644 --- a/app/src/main/java/com/gh/flutter/FlutterBoostRouteServiceImplAop.java +++ b/app/src/main/java/com/gh/flutter/FlutterBoostRouteServiceImplAop.java @@ -10,7 +10,7 @@ import android.content.Intent; import com.gh.common.DefaultUrlHandler; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.MessageDetailActivity; @@ -45,7 +45,7 @@ public class FlutterBoostRouteServiceImplAop { @TargetClass(TARGET_CLASS) @Insert(METHOD_HANDLE_HELP_DETAIL) public void handleHelpDetail(Context context, Map params) { - StringBuilder builder = new StringBuilder("ghzhushou://" + EntranceUtils.HOST_HELP_DETAIL); + StringBuilder builder = new StringBuilder("ghzhushou://" + EntranceConsts.HOST_HELP_DETAIL); String url = (String) params.get("url"); if (url != null && !url.isEmpty()) { builder.append("?url=").append(params.get("url")); @@ -67,7 +67,7 @@ public class FlutterBoostRouteServiceImplAop { @TargetClass(TARGET_CLASS) @Insert(METHOD_HANDLE_QQ_GROUP) public void handleQQGroup(Context context, Map params) { - String url = "ghzhushou://" + EntranceUtils.HOST_QQ_QUN + "?key=" + params.get("key"); + String url = "ghzhushou://" + EntranceConsts.HOST_QQ_QUN + "?key=" + params.get("key"); DefaultUrlHandler.interceptUrl(context, url, ""); } diff --git a/app/src/main/java/com/gh/flutter/FlutterContextServiceImplAop.java b/app/src/main/java/com/gh/flutter/FlutterContextServiceImplAop.java index 17e23bbb75..5093e2ca67 100644 --- a/app/src/main/java/com/gh/flutter/FlutterContextServiceImplAop.java +++ b/app/src/main/java/com/gh/flutter/FlutterContextServiceImplAop.java @@ -3,9 +3,9 @@ package com.gh.flutter; import android.text.TextUtils; import com.gh.common.constant.Config; -import com.gh.common.exposure.meta.MetaUtil; -import com.gh.common.util.EnvHelper; -import com.gh.common.util.TimestampUtils; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.utils.EnvHelper; +import com.gh.gamecenter.common.utils.TimestampUtils; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.entity.SettingsEntity; import com.halo.assistant.HaloApp; diff --git a/app/src/main/java/com/gh/flutter/FlutterImageServiceImplAop.java b/app/src/main/java/com/gh/flutter/FlutterImageServiceImplAop.java index 5d8bb0cf91..d8193eb747 100644 --- a/app/src/main/java/com/gh/flutter/FlutterImageServiceImplAop.java +++ b/app/src/main/java/com/gh/flutter/FlutterImageServiceImplAop.java @@ -1,6 +1,6 @@ package com.gh.flutter; -import com.gh.common.util.CompressImageUtils; +import com.gh.gamecenter.common.utils.CompressImageUtils; import java.io.File; diff --git a/app/src/main/java/com/gh/flutter/FlutterLogHubServiceImplAop.kt b/app/src/main/java/com/gh/flutter/FlutterLogHubServiceImplAop.kt index 76127b5e8e..e3a7856ffa 100644 --- a/app/src/main/java/com/gh/flutter/FlutterLogHubServiceImplAop.kt +++ b/app/src/main/java/com/gh/flutter/FlutterLogHubServiceImplAop.kt @@ -1,8 +1,8 @@ package com.gh.flutter -import com.gh.common.json.json -import com.gh.common.loghub.LoghubUtils -import com.gh.common.tracker.Tracker +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.gh.gamecenter.common.tracker.Tracker import com.gh.common.util.LogUtils import com.lightgame.utils.Utils import me.ele.lancet.base.annotations.Insert diff --git a/app/src/main/java/com/gh/gamecenter/AboutActivity.java b/app/src/main/java/com/gh/gamecenter/AboutActivity.java index 5a5ab58c01..a3d607b144 100644 --- a/app/src/main/java/com/gh/gamecenter/AboutActivity.java +++ b/app/src/main/java/com/gh/gamecenter/AboutActivity.java @@ -3,17 +3,21 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; import android.os.Bundle; + import androidx.annotation.NonNull; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.alibaba.android.arouter.facade.annotation.Route; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.halo.assistant.fragment.AboutFragment; /** * Created by khy on 2017/2/28. */ -public class AboutActivity extends NormalActivity { +@Route(path = RouteConsts.activity.aboutActivity) +public class AboutActivity extends ToolBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { @@ -24,7 +28,7 @@ public class AboutActivity extends NormalActivity { @NonNull public static Intent getIntent(Context context, boolean isUpdate) { Bundle bundle = new Bundle(); - bundle.putBoolean(EntranceUtils.KEY_VERSION_UPDATE, isUpdate); + bundle.putBoolean(EntranceConsts.KEY_VERSION_UPDATE, isUpdate); return getTargetIntent(context, AboutActivity.class, AboutFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/BlockActivity.kt b/app/src/main/java/com/gh/gamecenter/BlockActivity.kt index 9126220cea..3c4412923d 100644 --- a/app/src/main/java/com/gh/gamecenter/BlockActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/BlockActivity.kt @@ -3,17 +3,18 @@ package com.gh.gamecenter import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils +import com.gh.base.DownloadToolbarActivity +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.entity.SubjectRecommendEntity import com.gh.gamecenter.game.GameFragment -class BlockActivity : NormalActivity() { +class BlockActivity : DownloadToolbarActivity() { companion object { fun getIntent(context: Context, blockData: SubjectRecommendEntity, entrance: String): Intent { val args = Bundle() - args.putParcelable(EntranceUtils.KEY_BLOCK_DATA, blockData) - args.putString(EntranceUtils.KEY_ENTRANCE, entrance) + args.putParcelable(EntranceConsts.KEY_BLOCK_DATA, blockData) + args.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent(context, BlockActivity::class.java, GameFragment::class.java, args) } } @@ -36,7 +37,7 @@ class BlockActivity : NormalActivity() { } override fun getBusinessId(): Pair { - return Pair(targetFragment?.arguments?.getParcelable(EntranceUtils.KEY_BLOCK_DATA)?.link ?: "", "") + return Pair(targetFragment?.arguments?.getParcelable(EntranceConsts.KEY_BLOCK_DATA)?.link ?: "", "") } } diff --git a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java index c061cbd3af..dc5235211d 100644 --- a/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CleanApkActivity.java @@ -6,13 +6,14 @@ import android.os.Bundle; import androidx.annotation.NonNull; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.halo.assistant.fragment.ApkCleanerFragment; /** * Created by khy on 2017/1/24. */ -public class CleanApkActivity extends NormalActivity { +public class CleanApkActivity extends ToolBarActivity { @NonNull public static Intent getIntent(Context context) { @@ -22,7 +23,7 @@ public class CleanApkActivity extends NormalActivity { @NonNull public static Intent getIntent(Context context, Boolean isChooseApk) { Bundle bundle = new Bundle(); - bundle.putBoolean(EntranceUtils.KEY_IS_CHOOSE_APK, isChooseApk); + bundle.putBoolean(EntranceConsts.KEY_IS_CHOOSE_APK, isChooseApk); return getTargetIntent(context, CleanApkActivity.class, ApkCleanerFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/CollectionActivity.java b/app/src/main/java/com/gh/gamecenter/CollectionActivity.java index b80b612b83..652b58474b 100644 --- a/app/src/main/java/com/gh/gamecenter/CollectionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CollectionActivity.java @@ -3,20 +3,39 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; import android.os.Bundle; + import androidx.annotation.NonNull; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.gh.gamecenter.collection.CollectionWrapperFragment; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; /** * Created by khy on 18/07/17. */ -public class CollectionActivity extends NormalActivity { +public class CollectionActivity extends ToolBarActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); + } + + @Override + protected boolean isAutoResetViewBackgroundEnabled() { + return true; + } + + @Override + protected void onNightModeChange() { + super.onNightModeChange(); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); + } @NonNull public static Intent getCollectionActivity(Context context, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, CollectionActivity.class, CollectionWrapperFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java index 1c691b9dc1..f894eefba6 100644 --- a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java @@ -6,8 +6,9 @@ import android.os.Bundle; import android.view.View; import android.view.ViewGroup; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.entity.LinkEntity; import com.gh.gamecenter.entity.MessageEntity; import com.gh.gamecenter.qa.comment.CommentActivity; @@ -17,7 +18,7 @@ import com.halo.assistant.fragment.comment.CommentDetailFragment; /** * Created by khy on 2017/3/22. */ -public class CommentDetailActivity extends NormalActivity { +public class CommentDetailActivity extends ToolBarActivity { private View mShadowView; @@ -43,7 +44,7 @@ public class CommentDetailActivity extends NormalActivity { // article 不为空则显示跳转原文按钮 public static Intent getIntent(Context context, String commentId, MessageEntity.Article article) { Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_COMMENTID, commentId); + args.putString(EntranceConsts.KEY_COMMENTID, commentId); args.putParcelable(MessageEntity.Article.TAG, article); return getTargetIntent(context, CommentDetailActivity.class, CommentDetailFragment.class, args); } @@ -53,9 +54,9 @@ public class CommentDetailActivity extends NormalActivity { String answerId, LinkEntity linkEntity) { Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_COMMENTID, commentId); - args.putString(EntranceUtils.KEY_ANSWER_ID, answerId); - args.putParcelable(EntranceUtils.KEY_LINK, linkEntity); + args.putString(EntranceConsts.KEY_COMMENTID, commentId); + args.putString(EntranceConsts.KEY_ANSWER_ID, answerId); + args.putParcelable(EntranceConsts.KEY_LINK, linkEntity); return getTargetIntent(context, CommentDetailActivity.class, NewCommentConversationFragment.class, args); } @@ -67,9 +68,9 @@ public class CommentDetailActivity extends NormalActivity { LinkEntity linkEntity) { Bundle args = new Bundle(); args.putString(CommentActivity.ARTICLE_ID, articleId); - args.putString(EntranceUtils.KEY_COMMENTID, articleCommentId); + args.putString(EntranceConsts.KEY_COMMENTID, articleCommentId); args.putString(CommentActivity.COMMUNITY_ID, communityId); - args.putParcelable(EntranceUtils.KEY_LINK, linkEntity); + args.putParcelable(EntranceConsts.KEY_LINK, linkEntity); return getTargetIntent(context, CommentDetailActivity.class, NewCommentConversationFragment.class, args); } @@ -79,10 +80,10 @@ public class CommentDetailActivity extends NormalActivity { boolean isVideoAuthor, LinkEntity linkEntity) { Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_COMMENTID, commentId); + args.putString(EntranceConsts.KEY_COMMENTID, commentId); args.putString(CommentActivity.VIDEO_ID, videoId); args.putBoolean(CommentActivity.IS_VIDEO_AUTHOR, isVideoAuthor); - args.putParcelable(EntranceUtils.KEY_LINK, linkEntity); + args.putParcelable(EntranceConsts.KEY_LINK, linkEntity); return getTargetIntent(context, CommentDetailActivity.class, NewCommentConversationFragment.class, args); } } diff --git a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java index f82443d514..b563e71c67 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java @@ -3,20 +3,40 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; import android.os.Bundle; + import androidx.annotation.NonNull; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.halo.assistant.fragment.myconcern.MyConcernFragment; /** * 我的关注页面 */ -public class ConcernActivity extends NormalActivity { +public class ConcernActivity extends ToolBarActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); + } + + @Override + protected boolean isAutoResetViewBackgroundEnabled() { + return true; + } + + @Override + protected void onNightModeChange() { + super.onNightModeChange(); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); + } @NonNull public static Intent getIntent(Context context, String entrance) { Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_ENTRANCE, entrance); + args.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, ConcernActivity.class, MyConcernFragment.class, args); } diff --git a/app/src/main/java/com/gh/gamecenter/ConcernInfoActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernInfoActivity.java index 4f2e3df5fc..b87d242508 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernInfoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernInfoActivity.java @@ -4,15 +4,15 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.info.ConcernFragment; /** * Created by khy on 10/04/18. */ -public class ConcernInfoActivity extends NormalActivity { +public class ConcernInfoActivity extends ToolBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java index be068434d4..5b16cdf55a 100644 --- a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java @@ -11,11 +11,11 @@ import android.view.View; import android.widget.ImageView; import android.widget.TextView; -import com.gh.base.ToolBarActivity; -import com.gh.common.util.BitmapUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.view.CropImageCustom; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.utils.BitmapUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.view.CropImageCustom; import java.io.File; import java.lang.ref.SoftReference; @@ -46,11 +46,11 @@ public class CropImageActivity extends ToolBarActivity { @NonNull public static Intent getIntent(Context context, String picturePath, float cropRatio, boolean isBlackTheme, @LayoutRes int assistRes, String entrance) { Intent intent = new Intent(context, CropImageActivity.class); - intent.putExtra(EntranceUtils.KEY_PATH, picturePath); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); - intent.putExtra(EntranceUtils.KEY_IMAGE_CROP_RATIO, cropRatio); - intent.putExtra(EntranceUtils.KEY_BLACK_THEME, isBlackTheme); - intent.putExtra(EntranceUtils.KEY_ASSIST_RES, assistRes); + intent.putExtra(EntranceConsts.KEY_PATH, picturePath); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_IMAGE_CROP_RATIO, cropRatio); + intent.putExtra(EntranceConsts.KEY_BLACK_THEME, isBlackTheme); + intent.putExtra(EntranceConsts.KEY_ASSIST_RES, assistRes); return intent; } @@ -61,7 +61,7 @@ public class CropImageActivity extends ToolBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { - mBlackTheme = getIntent().getBooleanExtra(EntranceUtils.KEY_BLACK_THEME, false); + mBlackTheme = getIntent().getBooleanExtra(EntranceConsts.KEY_BLACK_THEME, false); super.onCreate(savedInstanceState); mCropImageCustom = findViewById(R.id.cropimage_custom); @@ -77,10 +77,10 @@ public class CropImageActivity extends ToolBarActivity { TextView menuButton = menuItem.getActionView().findViewById(R.id.menu_answer_post); menuButton.setTextColor(getResources().getColor(R.color.theme_font)); - float ratio = getIntent().getFloatExtra(EntranceUtils.KEY_IMAGE_CROP_RATIO, 1F); + float ratio = getIntent().getFloatExtra(EntranceConsts.KEY_IMAGE_CROP_RATIO, 1F); mCropImageCustom.setCropRatio(ratio); - int assistRes = getIntent().getIntExtra(EntranceUtils.KEY_ASSIST_RES, -1); + int assistRes = getIntent().getIntExtra(EntranceConsts.KEY_ASSIST_RES, -1); if (assistRes > 0) { View view = LayoutInflater.from(this).inflate(assistRes, null, false); addAssistView(view); @@ -126,7 +126,7 @@ public class CropImageActivity extends ToolBarActivity { super.onWindowFocusChanged(hasFocus); if (hasFocus && (reference == null || reference.get() == null)) { ImageView imageView = mCropImageCustom.getCropImageZoomView(); - Bitmap bitmap = BitmapUtils.getBitmapByFile(getIntent().getStringExtra(EntranceUtils.KEY_PATH), + Bitmap bitmap = BitmapUtils.getBitmapByFile(getIntent().getStringExtra(EntranceConsts.KEY_PATH), imageView.getWidth(), imageView.getHeight()); if (bitmap != null) { reference = new SoftReference<>(bitmap); diff --git a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java index fc918b86c3..35d67303df 100644 --- a/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java +++ b/app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java @@ -4,10 +4,10 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.base.fragment.BaseFragment_TabLayout; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.download.DownloadFragment; /** @@ -15,7 +15,7 @@ import com.gh.gamecenter.download.DownloadFragment; * * @author 黄壮华 */ -public class DownloadManagerActivity extends NormalActivity { +public class DownloadManagerActivity extends ToolBarActivity { public static final int INDEX_DOWNLOAD = 0; public static final int INDEX_UPDATE = 1; @@ -35,14 +35,14 @@ public class DownloadManagerActivity extends NormalActivity { public static Intent getDownloadMangerIntent(Context context, String url, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_URL, url); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_URL, url); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, DownloadManagerActivity.class, DownloadFragment.class, bundle); } public static Intent getDownloadMangerIntent(Context context, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, DownloadManagerActivity.class, DownloadFragment.class, bundle); } @@ -51,9 +51,9 @@ public class DownloadManagerActivity extends NormalActivity { */ public static Intent getDownloadMangerIntent(Context context, String packageName, int position, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); bundle.putInt(BaseFragment_TabLayout.PAGE_INDEX, position); - bundle.putString(EntranceUtils.KEY_PACKAGENAME, packageName); + bundle.putString(EntranceConsts.KEY_PACKAGENAME, packageName); return getTargetIntent(context, DownloadManagerActivity.class, DownloadFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/FullScreenWebActivity.kt b/app/src/main/java/com/gh/gamecenter/FullScreenWebActivity.kt index 545a9e7c26..89800b7e67 100644 --- a/app/src/main/java/com/gh/gamecenter/FullScreenWebActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/FullScreenWebActivity.kt @@ -3,9 +3,9 @@ package com.gh.gamecenter import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.halo.assistant.fragment.WebFragment class FullScreenWebActivity : BaseActivity() { @@ -30,7 +30,7 @@ class FullScreenWebActivity : BaseActivity() { companion object { fun getIntent(context: Context, url: String, webViewHandleBackPressed: Boolean = false): Intent { val intent = Intent(context, FullScreenWebActivity::class.java) - intent.putExtra(EntranceUtils.KEY_URL, url) + intent.putExtra(EntranceConsts.KEY_URL, url) intent.putExtra(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED, webViewHandleBackPressed) return intent } diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.kt index 6a2f24a4d7..dc31127417 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/GameDetailActivity.kt @@ -4,15 +4,15 @@ import android.content.Context import android.content.ContextWrapper import android.content.Intent import android.os.Bundle -import com.gh.common.constant.Constants +import com.gh.base.DownloadToolbarActivity +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureManager.log import com.gh.common.exposure.ExposureTraceUtils.appendTrace import com.gh.common.exposure.ExposureType -import com.gh.common.util.DataUtils -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.gamedetail.GameDetailFragment import com.halo.assistant.HaloApp @@ -21,7 +21,7 @@ import com.halo.assistant.HaloApp * Created by khy on 2017/3/24. * 游戏详情适配器 */ -class GameDetailActivity : NormalActivity() { +class GameDetailActivity : DownloadToolbarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -56,7 +56,7 @@ class GameDetailActivity : NormalActivity() { override fun getBusinessId(): Pair { val fragment = targetFragment as GameDetailFragment return if (fragment.arguments != null) { - Pair(fragment.requireArguments().getString(EntranceUtils.KEY_GAMEID) ?: "", "") + Pair(fragment.requireArguments().getString(EntranceConsts.KEY_GAMEID) ?: "", "") } else { super.getBusinessId() } @@ -103,13 +103,12 @@ class GameDetailActivity : NormalActivity() { scrollToServer: Boolean = false, traceEvent: ExposureEvent? = null ) { - DataUtils.onMtaEvent(context, "详情页面", "游戏详情", if (gameEntity != null) gameEntity.name else "") val bundle = Bundle() if (traceEvent != null) { val clickEvent = createEvent(gameEntity, traceEvent.source, appendTrace(traceEvent), ExposureType.CLICK) log(clickEvent) - bundle.putParcelable(EntranceUtils.KEY_TRACE_EVENT, clickEvent) + bundle.putParcelable(EntranceConsts.KEY_TRACE_EVENT, clickEvent) } if (gameEntity != null && traceEvent != null && gameEntity.id != traceEvent.payload.gameId) { // 当游戏 ID 跟曝光 traceEvent 的游戏ID 不一样的时候更新 traceEvent 的游戏ID @@ -122,21 +121,21 @@ class GameDetailActivity : NormalActivity() { traceEvent.payload = payload } if (defaultTab != -1) { - bundle.putInt(EntranceUtils.KEY_TARGET, defaultTab) + bundle.putInt(EntranceConsts.KEY_TARGET, defaultTab) } if (isSkipGameComment) { - bundle.putBoolean(EntranceUtils.KEY_SKIP_GAME_COMMENT, true) + bundle.putBoolean(EntranceConsts.KEY_SKIP_GAME_COMMENT, true) } if (scrollToLibao) { - bundle.putInt(EntranceUtils.KEY_TARGET, GameDetailFragment.INDEX_DESC) - bundle.putBoolean(EntranceUtils.KEY_SCROLL_TO_LIBAO, true) + bundle.putInt(EntranceConsts.KEY_TARGET, GameDetailFragment.INDEX_DESC) + bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_LIBAO, true) } if (scrollToServer) { - bundle.putInt(EntranceUtils.KEY_TARGET, GameDetailFragment.INDEX_DESC) - bundle.putBoolean(EntranceUtils.KEY_SCROLL_TO_SERVER, true) + bundle.putInt(EntranceConsts.KEY_TARGET, GameDetailFragment.INDEX_DESC) + bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_SERVER, true) } - bundle.putString(EntranceUtils.KEY_GAMEID, gameEntity?.id) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_GAMEID, gameEntity?.id) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) bundle.putParcelable(GameEntity.TAG, gameEntity) context.startActivity(getTargetIntent(context, GameDetailActivity::class.java, GameDetailFragment::class.java, bundle)) } @@ -180,7 +179,7 @@ class GameDetailActivity : NormalActivity() { ExposureType.CLICK ) log(clickEvent) - bundle.putParcelable(EntranceUtils.KEY_TRACE_EVENT, clickEvent) + bundle.putParcelable(EntranceConsts.KEY_TRACE_EVENT, clickEvent) } if (traceEvent != null && gameId != traceEvent.payload.gameId) { // 当游戏 ID 跟曝光 traceEvent 的游戏ID 不一样的时候更新 traceEvent 的游戏ID @@ -193,24 +192,24 @@ class GameDetailActivity : NormalActivity() { traceEvent.payload = payload } if (defaultTab != -1) { - bundle.putInt(EntranceUtils.KEY_TARGET, defaultTab) + bundle.putInt(EntranceConsts.KEY_TARGET, defaultTab) } if (isSkipGameComment) { - bundle.putBoolean(EntranceUtils.KEY_SKIP_GAME_COMMENT, true) + bundle.putBoolean(EntranceConsts.KEY_SKIP_GAME_COMMENT, true) } if (openVideoStreaming) { - bundle.putBoolean(EntranceUtils.KEY_OPEN_VIDEO_STREAMING, true) - bundle.putInt(EntranceUtils.KEY_TARGET, GameDetailFragment.INDEX_DESC) + bundle.putBoolean(EntranceConsts.KEY_OPEN_VIDEO_STREAMING, true) + bundle.putInt(EntranceConsts.KEY_TARGET, GameDetailFragment.INDEX_DESC) } if (openPlatformWindow) { - bundle.putBoolean(EntranceUtils.KEY_OPEN_PLATFORM_WINDOW, true) + bundle.putBoolean(EntranceConsts.KEY_OPEN_PLATFORM_WINDOW, true) } if (scrollToLibao) { - bundle.putInt(EntranceUtils.KEY_TARGET, GameDetailFragment.INDEX_TRENDES) - bundle.putBoolean(EntranceUtils.KEY_SCROLL_TO_LIBAO, true) + bundle.putInt(EntranceConsts.KEY_TARGET, GameDetailFragment.INDEX_TRENDES) + bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_LIBAO, true) } - bundle.putString(EntranceUtils.KEY_GAMEID, gameId) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_GAMEID, gameId) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) context.startActivity(getTargetIntent(context, GameDetailActivity::class.java, GameDetailFragment::class.java, bundle)) } diff --git a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java index 2e55256df2..1f2e81451f 100644 --- a/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameNewsActivity.java @@ -6,7 +6,8 @@ import android.os.Bundle; import androidx.annotation.NonNull; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.halo.assistant.fragment.game.GameNewsSearchFragment; /** @@ -14,15 +15,15 @@ import com.halo.assistant.fragment.game.GameNewsSearchFragment; * 游戏新闻界面,由于MTA界面统计未重新记录的原因,暂留此傀儡,连名字都不能改,真是可怕 */ @Deprecated -public class GameNewsActivity extends NormalActivity { +public class GameNewsActivity extends ToolBarActivity { @NonNull public static Intent getIntent(Context context, String gameName, String gameId, String entrance) { final Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_GAMENAME, gameName); - args.putString(EntranceUtils.KEY_GAMEID, gameId); - args.putString(EntranceUtils.KEY_ENTRANCE, entrance); + args.putString(EntranceConsts.KEY_GAMENAME, gameName); + args.putString(EntranceConsts.KEY_GAMEID, gameId); + args.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, GameNewsActivity.class, GameNewsSearchFragment.class, args); } diff --git a/app/src/main/java/com/gh/gamecenter/HelpAndFeedbackActivity.kt b/app/src/main/java/com/gh/gamecenter/HelpAndFeedbackActivity.kt index f9a6c98c1d..cc8681fad3 100644 --- a/app/src/main/java/com/gh/gamecenter/HelpAndFeedbackActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/HelpAndFeedbackActivity.kt @@ -5,8 +5,7 @@ import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import com.gh.base.BaseActivity_TabLayout -import com.gh.common.util.DisplayUtils -import com.gh.common.util.updateStatusBarColor +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.help.HelpContainerFragment import com.gh.gamecenter.suggest.SuggestSelectFragment import com.lightgame.utils.Util_System_Keyboard @@ -54,6 +53,8 @@ class HelpAndFeedbackActivity : BaseActivity_TabLayout() { mViewPager.currentItem = position } + override fun isAutoResetViewBackgroundEnabled() = true + override fun onNightModeChange() { super.onNightModeChange() updateStatusBarColor(R.color.black, R.color.white) diff --git a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt index 6cf1dd9707..b0c0a5ab5a 100644 --- a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt @@ -38,20 +38,22 @@ import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView import com.facebook.drawee.backends.pipeline.Fresco import com.facebook.imagepipeline.core.ImagePipeline import com.facebook.imagepipeline.request.ImageRequest -import com.gh.base.BaseActivity +import com.gh.gamecenter.common.base.BaseActivity import com.gh.common.Base64ImageHolder.image import com.gh.common.constant.Config -import com.gh.common.runOnIoThread -import com.gh.common.util.* -import com.gh.common.util.ImageUtils.getTransformedUrl -import com.gh.common.view.DraggableBigImageView -import com.gh.common.view.Gh_RelativeLayout +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.ImageUtils.getTransformedUrl +import com.gh.gamecenter.common.view.DraggableBigImageView +import com.gh.gamecenter.common.view.Gh_RelativeLayout +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ActivityViewimageBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.ImageInfoEntity import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity import com.gh.gamecenter.qa.entity.AnswerEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.github.piasy.biv.view.BigImageView import com.github.piasy.biv.view.FrescoImageViewFactory @@ -141,7 +143,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener { mImageInfoMap = HashMap() mImagePipeline = Fresco.getImagePipeline() - mInitialPosition = savedInstanceState?.getInt(EntranceUtils.KEY_CURRENTITEM, 0) ?: 0 + mInitialPosition = savedInstanceState?.getInt(EntranceConsts.KEY_CURRENTITEM, 0) ?: 0 intent.extras?.let { if (it.getBoolean(KEY_BASE64)) { @@ -240,7 +242,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener { override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - outState.putInt(EntranceUtils.KEY_CURRENTITEM, mViewPager.currentItem) + outState.putInt(EntranceConsts.KEY_CURRENTITEM, mViewPager.currentItem) } override fun onDestroy() { @@ -923,7 +925,7 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener { intent.putExtra(KEY_CURRENT, position) intent.putExtra(KEY_SHOW_SAVE, isShowSaveBtn) intent.putExtra(AnswerEntity::class.java.name, answerEntity) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance) intent.putExtra(KEY_IS_FROM_IMAGE_CONTAINER_VIEW, isFromICV) if (originalViewList != null) { diff --git a/app/src/main/java/com/gh/gamecenter/InfoActivity.java b/app/src/main/java/com/gh/gamecenter/InfoActivity.java index 7ddbb88904..b4b8aeacfe 100644 --- a/app/src/main/java/com/gh/gamecenter/InfoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/InfoActivity.java @@ -4,15 +4,15 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.info.InfoWrapperFragment; /** * Created by khy on 10/04/18. */ -public class InfoActivity extends NormalActivity { +public class InfoActivity extends ToolBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java index 852c822a3c..2585cf95f4 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java @@ -3,21 +3,23 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; import android.os.Bundle; + import androidx.annotation.NonNull; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.libao.LibaoFragment; /** * Created by khy on 2016/12/12. */ @Deprecated -public class LibaoActivity extends NormalActivity { +public class LibaoActivity extends ToolBarActivity { @NonNull public static Intent getIntent(Context context, String entrance) { Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_ENTRANCE, entrance); + args.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, LibaoActivity.class, LibaoFragment.class, args); } diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index a285e3696d..675e124b01 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -20,22 +20,21 @@ import androidx.recyclerview.widget.RecyclerView; import com.ethanhua.skeleton.Skeleton; import com.ethanhua.skeleton.ViewSkeletonScreen; -import com.gh.base.OnRequestCallBackListener; -import com.gh.base.ToolBarActivity; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DetailDownloadUtils; import com.gh.common.util.DeviceTokenUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.LibaoUtils; import com.gh.common.view.DownloadProgressBar; -import com.gh.common.view.VerticalItemDecoration; import com.gh.download.DownloadManager; import com.gh.gamecenter.adapter.LibaoDetailAdapter; import com.gh.gamecenter.adapter.viewholder.DetailViewHolder; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.LibaoEntity; @@ -46,7 +45,7 @@ import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.download.DataWatcher; @@ -154,8 +153,8 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA public static Intent getIntent(Context context, LibaoEntity libaoEntity, boolean isClickReceiveBtnIn, String entrance) { Intent intent = new Intent(context, LibaoDetailActivity.class); HaloApp.put(LibaoEntity.TAG, libaoEntity); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); - intent.putExtra(EntranceUtils.KEY_IS_CLICK_RECEIVE_BTN, isClickReceiveBtnIn); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_IS_CLICK_RECEIVE_BTN, isClickReceiveBtnIn); return intent; } @@ -167,8 +166,8 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA @NonNull public static Intent getIntentById(Context context, String id, String entrance) { Intent intent = new Intent(context, LibaoDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); - intent.putExtra(EntranceUtils.KEY_ID, id); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_ID, id); return intent; } @@ -194,11 +193,11 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA mName = getString(R.string.libao_detail); setNavigationTitle(mName); mLibaoEntity = (LibaoEntity) HaloApp.get(LibaoEntity.TAG, false); - isClickReceiveBtnIn = getIntent().getBooleanExtra(EntranceUtils.KEY_IS_CLICK_RECEIVE_BTN, false); + isClickReceiveBtnIn = getIntent().getBooleanExtra(EntranceConsts.KEY_IS_CLICK_RECEIVE_BTN, false); if (mLibaoEntity != null) { mLibaoEntity.setClickReceiveBtnIn(isClickReceiveBtnIn); } - DisplayUtils.setStatusBarColor(this, mNightMode ? android.R.color.black : R.color.white); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); mIsScroll = true; mSkeleton = Skeleton.bind(mListSkeleton).shimmer(false).load(R.layout.activity_libaodetail_skeleton).show(); @@ -220,7 +219,7 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA }); if (mLibaoEntity == null) { - String id = getIntent().getStringExtra(EntranceUtils.KEY_ID); + String id = getIntent().getStringExtra(EntranceConsts.KEY_ID); if (!TextUtils.isEmpty(id)) { getLibaoDigest(id); } @@ -413,7 +412,7 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA mAdapter.setGameEntity(mGameEntity); // 添加启动弹窗的相关信息 - if (mEntrance.contains(EntranceUtils.ENTRANCE_WELCOME) + if (mEntrance.contains(EntranceConsts.ENTRANCE_WELCOME) && ExtensionsKt.countOccurrences(mEntrance, ("+")) <= 1) { mGameEntity.setWelcomeDialogInfoIfAvailable(); } @@ -567,6 +566,6 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA mLibaoDetailRv.removeItemDecorationAt(0); mLibaoDetailRv.addItemDecoration(getItemDecoration()); } - DisplayUtils.setStatusBarColor(this, mNightMode ? android.R.color.black : R.color.white); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); } } diff --git a/app/src/main/java/com/gh/gamecenter/LoginActivity.java b/app/src/main/java/com/gh/gamecenter/LoginActivity.java index fa2a6ade50..4cffee4aac 100644 --- a/app/src/main/java/com/gh/gamecenter/LoginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LoginActivity.java @@ -6,19 +6,19 @@ import android.os.Bundle; import androidx.annotation.NonNull; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.alibaba.android.arouter.facade.annotation.Route; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.common.util.QuickLoginHelper; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.fragment.LoginFragment; /** * Created by khy on 14/08/17. */ - -public class LoginActivity extends NormalActivity { - - public static final int STATUS_DEFAULT = 0; // 默认(隐藏一键登录按钮) - public static final int STATUS_FROM_QUICK_LOGIN_PAGE = 1; // 从一键登录的授权页过来 - public static final int STATUS_FROM_QUICK_LOGIN_PERMISSION = 2; // 从一键登录的电话权限弹窗过来 +@Route(path = RouteConsts.activity.loginActivity) +public class LoginActivity extends ToolBarActivity { @Override protected Intent provideNormalIntent() { @@ -27,14 +27,14 @@ public class LoginActivity extends NormalActivity { @NonNull public static Intent getIntent(Context context, String entrance) { - return getIntent(context, entrance, STATUS_DEFAULT); + return getIntent(context, entrance, QuickLoginHelper.STATUS_DEFAULT); } @NonNull public static Intent getIntent(Context context, String entrance, int status) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); - bundle.putInt(EntranceUtils.KEY_SHOW_QUICK_LOGIN, status); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); + bundle.putInt(EntranceConsts.KEY_SHOW_QUICK_LOGIN, status); return getTargetIntent(context, LoginActivity.class, LoginFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 3e91730a04..ca84968c3f 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -1,17 +1,17 @@ package com.gh.gamecenter; -import static com.gh.common.util.EntranceUtils.ENTRANCE_BROWSER; -import static com.gh.common.util.EntranceUtils.HOST_LAUNCH_SIMULATOR_GAME; -import static com.gh.common.util.EntranceUtils.HOST_QQ; -import static com.gh.common.util.EntranceUtils.HOST_QQ_GROUP; -import static com.gh.common.util.EntranceUtils.HOST_WEB; -import static com.gh.common.util.EntranceUtils.KEY_DATA; -import static com.gh.common.util.EntranceUtils.KEY_MARKET_DETAILS; -import static com.gh.common.util.EntranceUtils.KEY_NEXT_TO; -import static com.gh.common.util.EntranceUtils.KEY_TO; -import static com.gh.common.util.EntranceUtils.KEY_TYPE; -import static com.gh.common.util.ExtensionsKt.observableToMain; import static com.gh.common.util.LoginHelper.WEIBO_SCOPE; +import static com.gh.gamecenter.common.constant.EntranceConsts.ENTRANCE_BROWSER; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_LAUNCH_SIMULATOR_GAME; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_QQ; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_QQ_GROUP; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_WEB; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_DATA; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_MARKET_DETAILS; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_NEXT_TO; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TO; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TYPE; +import static com.gh.gamecenter.common.utils.ExtensionsKt.observableToMain; import static com.gh.gamecenter.fragment.MainWrapperFragment.INDEX_PERSONAL; import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG; import static com.gh.gamecenter.personal.PersonalFragment.LOGOUT_TAG; @@ -40,48 +40,53 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProviders; import com.gh.base.AppUncaughtHandler; -import com.gh.base.BaseActivity; -import com.gh.base.fragment.BaseFragment_ViewPager; -import com.gh.common.AppExecutor; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.gh.common.DefaultUrlHandler; -import com.gh.common.avoidcallback.AvoidOnResultManager; import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; -import com.gh.common.exposure.meta.MetaUtil; import com.gh.common.history.HistoryDatabase; import com.gh.common.history.HistoryHelper; import com.gh.common.repository.ReservationRepository; import com.gh.common.simulator.SimulatorGameManager; import com.gh.common.util.ActivationHelper; import com.gh.common.util.AdHelper; -import com.gh.common.util.ClassUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DeviceTokenUtils; -import com.gh.common.util.DeviceUtils; -import com.gh.common.util.DialogHelper; import com.gh.common.util.DialogUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ErrorHelper; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.GsonUtils; import com.gh.common.util.HomePluggableHelper; import com.gh.common.util.LogUtils; import com.gh.common.util.LunchType; -import com.gh.common.util.MtaHelper; import com.gh.common.util.NotificationHelper; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.QuickLoginHelper; -import com.gh.common.util.SPUtils; -import com.gh.common.util.SentryHelper; -import com.gh.common.util.ShareUtils; -import com.gh.common.util.ToastUtils; -import com.gh.common.util.UrlFilterUtils; import com.gh.common.util.WechatBindHelper; import com.gh.download.DownloadManager; +import com.gh.gamecenter.common.avoidcallback.AvoidOnResultManager; +import com.gh.gamecenter.common.base.BaseActivity; +import com.gh.gamecenter.common.base.fragment.BaseFragment_ViewPager; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.Response; +import com.gh.gamecenter.common.utils.DeviceUtils; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ShareUtils; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.core.utils.ClassUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.SPUtils; +import com.gh.gamecenter.core.utils.SentryHelper; +import com.gh.gamecenter.core.utils.ToastUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.download.DownloadFragment; import com.gh.gamecenter.entity.CommunityEntity; import com.gh.gamecenter.entity.GameEntity; @@ -96,10 +101,7 @@ import com.gh.gamecenter.home.skip.PackageSkipActivity; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.UpdateManager; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.normal.NormalFragment; import com.gh.gamecenter.packagehelper.PackageViewModel; -import com.gh.gamecenter.retrofit.BiResponse; -import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.room.AppDatabase; import com.gh.gamecenter.room.dao.SimulatorGameDao; @@ -231,7 +233,7 @@ public class MainActivity extends BaseActivity { Config.setExceptionMsg(null); AppUncaughtHandler.reportException(this, new Throwable(message)); // 被改过的包闪退时增加跳转到光环游戏详情并自动下载的方法 - if (Config.DEFAULT_CHANNEL_FOR_RELEASE.equals(HaloApp.getInstance().getChannel())) { + if (com.gh.gamecenter.common.constant.Config.DEFAULT_CHANNEL_FOR_RELEASE.equals(HaloApp.getInstance().getChannel())) { DialogHelper.showCenterWarningDialog(this, "发生闪退", "光环助手发生了闪退,建议安装到最新版本修复异常" , "马上反馈", "马上安装修复", () -> { @@ -278,7 +280,7 @@ public class MainActivity extends BaseActivity { // 跳转至其它页面 if (getIntent() != null && getIntent().getExtras() != null - && getIntent().getBooleanExtra(EntranceUtils.KEY_REQUIRE_REDIRECT, false)) { + && getIntent().getBooleanExtra(EntranceConsts.KEY_REQUIRE_REDIRECT, false)) { doSkip(); } @@ -551,7 +553,7 @@ public class MainActivity extends BaseActivity { private void doSkip() { if (getIntent() != null && getIntent().getExtras() != null) { - getIntent().getExtras().putBoolean(EntranceUtils.KEY_REQUIRE_REDIRECT, false); + getIntent().getExtras().putBoolean(EntranceConsts.KEY_REQUIRE_REDIRECT, false); } handler.postDelayed(() -> { Bundle bundle = getIntent().getExtras(); @@ -560,9 +562,9 @@ public class MainActivity extends BaseActivity { if (!TextUtils.isEmpty(to)) { Class clazz = ClassUtils.forName(to); if (clazz != null) { - String entrance = bundle.getString(EntranceUtils.KEY_ENTRANCE); + String entrance = bundle.getString(EntranceConsts.KEY_ENTRANCE); if (TextUtils.isEmpty(entrance) || !entrance.startsWith("(") || !entrance.endsWith(")")) { - bundle.putString(EntranceUtils.KEY_ENTRANCE, "(插件跳转)"); + bundle.putString(EntranceConsts.KEY_ENTRANCE, "(插件跳转)"); } String packageName = bundle.getString("packageName"); @@ -570,8 +572,8 @@ public class MainActivity extends BaseActivity { bundle.putInt(BaseFragment_ViewPager.ARGS_INDEX, 1); } - if (NormalFragment.class.isAssignableFrom(clazz)) { - NormalActivity.startFragment(MainActivity.this, (Class) clazz, bundle); + if (ToolbarFragment.class.isAssignableFrom(clazz)) { + ToolBarActivity.startFragment(MainActivity.this, (Class) clazz, bundle); } else { Intent skipIntent = new Intent(MainActivity.this, clazz); skipIntent.putExtras(bundle); @@ -602,7 +604,7 @@ public class MainActivity extends BaseActivity { } break; case HOST_LAUNCH_SIMULATOR_GAME: - String json = getIntent().getStringExtra(EntranceUtils.KEY_GAME); + String json = getIntent().getStringExtra(EntranceConsts.KEY_GAME); try { GameEntity gameEntity = GsonUtils.getGson().fromJson(json, new TypeToken() { }.getType()); @@ -634,8 +636,8 @@ public class MainActivity extends BaseActivity { } Utils.log(bundle); - if (bundle.getInt(EntranceUtils.KEY_POSITION) != -1) { - EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, bundle.getInt(EntranceUtils.KEY_POSITION))); + if (bundle.getInt(EntranceConsts.KEY_POSITION) != -1) { + EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, bundle.getInt(EntranceConsts.KEY_POSITION))); } } }, 500); @@ -795,7 +797,7 @@ public class MainActivity extends BaseActivity { // 跳转至其它页面 if (getIntent() != null && getIntent().getExtras() != null - && getIntent().getBooleanExtra(EntranceUtils.KEY_REQUIRE_REDIRECT, false)) { + && getIntent().getBooleanExtra(EntranceConsts.KEY_REQUIRE_REDIRECT, false)) { doSkip(); } @@ -897,12 +899,7 @@ public class MainActivity extends BaseActivity { mSp.edit().putString("syncDeviceID", deviceId).apply(); DialogUtils.showForceDialog(MainActivity.this, "数据同步提醒" , "系统检测到你是光环助手的老用户,为了避免数据丢失,请尽快登录" - , "前往登录", "残忍拒绝", new DialogUtils.ConfirmListener() { - @Override - public void onConfirm() { - EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, INDEX_PERSONAL)); - } - }, null); + , "前往登录", "残忍拒绝", () -> EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, INDEX_PERSONAL)), null); } // 获取META-INF中的plugin_update 文件,判断是否从游戏插件中下载的app,是则获取游戏id,启动游戏更新,下载该游戏 @@ -931,7 +928,7 @@ public class MainActivity extends BaseActivity { InnerMetaInfoEntity info = GsonUtils.getGson().fromJson(reader, InnerMetaInfoEntity.class); if (info != null) { - if (EntranceUtils.HOST_COMMUNITY.equals(info.getType())) { + if (EntranceConsts.HOST_COMMUNITY.equals(info.getType())) { UserManager.getInstance().setCommunityData(new CommunityEntity(info.getLink(), info.getText())); runOnUiThread(() -> mMainWrapperFragment.setCurrentItem(MainWrapperFragment.INDEX_BBS)); } else { @@ -939,7 +936,7 @@ public class MainActivity extends BaseActivity { info.getType(), info.getLink(), info.getText(), - EntranceUtils.KEY_PLUGIN, + EntranceConsts.KEY_PLUGIN, "特定包启动跳转"); } } @@ -1036,4 +1033,10 @@ public class MainActivity extends BaseActivity { protected boolean isAutoResetViewBackgroundEnabled() { return true; } + + @Override + protected void updateStaticViewBackground(View view) { + if (view.getId() == R.id.tabLayout || view.getId() == R.id.appbar) return; + super.updateStaticViewBackground(view); + } } diff --git a/app/src/main/java/com/gh/gamecenter/MessageActivity.java b/app/src/main/java/com/gh/gamecenter/MessageActivity.java index 7fa9414aca..03f3e39a34 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageActivity.java @@ -4,16 +4,16 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.message.MessageFragment; /** * Created by khy on 21/07/17. */ @Deprecated -public class MessageActivity extends NormalActivity { +public class MessageActivity extends ToolBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { @@ -23,7 +23,7 @@ public class MessageActivity extends NormalActivity { public static Intent getIntent(Context context, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, MessageActivity.class, MessageFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index ce81a3831e..7aabeb0583 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -6,8 +6,9 @@ import android.os.Bundle; import android.view.View; import android.view.ViewGroup; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.entity.CommentEntity; import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.message.MessageDetailFragment; @@ -18,7 +19,7 @@ import com.halo.assistant.HaloApp; * 消息详情界面(评论详情) */ @Deprecated -public class MessageDetailActivity extends NormalActivity { +public class MessageDetailActivity extends ToolBarActivity { private View mShadowView; @@ -45,7 +46,7 @@ public class MessageDetailActivity extends NormalActivity { public static Intent getMessageDetailIntent(Context context, CommentEntity entity, String newsId) { Intent intent = new Intent(context, MessageDetailActivity.class); intent.putExtra("commentNum", -1); - intent.putExtra(EntranceUtils.KEY_NEWSID, newsId); + intent.putExtra(EntranceConsts.KEY_NEWSID, newsId); intent.putExtra("openSoftInput", true); intent.putExtra(CommentEntity.TAG, entity); @@ -56,15 +57,15 @@ public class MessageDetailActivity extends NormalActivity { Intent intent = new Intent(context, MessageDetailActivity.class); // intent.putExtra(ConcernEntity.TAG, concernEntity); HaloApp.put(ConcernEntity.TAG, concernEntity); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); // return intent; return getTargetIntent(context, MessageDetailActivity.class, MessageDetailFragment.class, intent.getExtras()); } public static Intent getIntentById(Context context, String newsId, Integer commentNum, Boolean openSoftInput, String entrance) { Intent intent = new Intent(context, MessageDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_NEWSID, newsId); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_NEWSID, newsId); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); intent.putExtra("commentNum", commentNum); intent.putExtra("openSoftInput", openSoftInput); // return intent; diff --git a/app/src/main/java/com/gh/gamecenter/MessageInviteActivity.java b/app/src/main/java/com/gh/gamecenter/MessageInviteActivity.java index 9f6109a1ed..bef06e760d 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageInviteActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageInviteActivity.java @@ -4,22 +4,22 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.message.MessageNormalFragment; /** * Created by khy on 10/04/18. */ -public class MessageInviteActivity extends NormalActivity { +public class MessageInviteActivity extends ToolBarActivity { public static Intent getIntent(Context context, String messageType, String outerInfo, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_MESSAGE_TYPE, messageType); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); - bundle.putString(EntranceUtils.KEY_OUTER_INFO, outerInfo); + bundle.putString(EntranceConsts.KEY_MESSAGE_TYPE, messageType); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_OUTER_INFO, outerInfo); return getTargetIntent(context, MessageInviteActivity.class, MessageNormalFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/MessageKeFuActivity.java b/app/src/main/java/com/gh/gamecenter/MessageKeFuActivity.java index 473bf13758..c1482e746d 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageKeFuActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageKeFuActivity.java @@ -4,16 +4,16 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.message.KeFuFragment; /** * Created by khy on 10/04/18. */ -public class MessageKeFuActivity extends NormalActivity { +public class MessageKeFuActivity extends ToolBarActivity { @Override protected Intent provideNormalIntent() { @@ -22,7 +22,7 @@ public class MessageKeFuActivity extends NormalActivity { public static Intent getIntent(Context context, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, MessageKeFuActivity.class, KeFuFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/MessageVoteActivity.java b/app/src/main/java/com/gh/gamecenter/MessageVoteActivity.java index 069121c325..1fb3388a30 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageVoteActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageVoteActivity.java @@ -4,22 +4,22 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.message.MessageNormalFragment; /** * Created by khy on 10/04/18. */ -public class MessageVoteActivity extends NormalActivity { +public class MessageVoteActivity extends ToolBarActivity { public static Intent getIntent(Context context, String messageType, String outerInfo, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); - bundle.putString(EntranceUtils.KEY_MESSAGE_TYPE, messageType); - bundle.putString(EntranceUtils.KEY_OUTER_INFO, outerInfo); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_MESSAGE_TYPE, messageType); + bundle.putString(EntranceConsts.KEY_OUTER_INFO, outerInfo); return getTargetIntent(context, MessageVoteActivity.class, MessageNormalFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt b/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt index 4604b97e1d..3dd0eec4a3 100644 --- a/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt @@ -17,9 +17,12 @@ import android.webkit.WebView import android.webkit.WebViewClient import android.widget.ScrollView import android.widget.TextView -import com.gh.base.ToolBarActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.common.util.* -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.DeviceUtils +import com.gh.gamecenter.common.retrofit.Response import io.reactivex.Observable import io.reactivex.ObservableOnSubscribe import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index 5868cbe3ed..64461f2772 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -1,5 +1,7 @@ package com.gh.gamecenter; +import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG; + import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -25,27 +27,27 @@ import androidx.recyclerview.widget.RecyclerView; import com.ethanhua.skeleton.Skeleton; import com.ethanhua.skeleton.ViewSkeletonScreen; -import com.gh.base.OnRequestCallBackListener; -import com.gh.base.ToolBarActivity; +import com.gh.base.DownloadToolbarActivity; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.history.HistoryHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; -import com.gh.common.util.ClickUtils; import com.gh.common.util.CollectionUtils; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DataUtils; import com.gh.common.util.DetailDownloadUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.MtaHelper; import com.gh.common.util.NewLogUtils; -import com.gh.common.util.ShareUtils; -import com.gh.common.view.FixLinearLayoutManager; -import com.gh.common.view.VerticalItemDecoration; import com.gh.download.DownloadManager; import com.gh.gamecenter.adapter.viewholder.DetailViewHolder; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.retrofit.Response; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ShareUtils; +import com.gh.gamecenter.common.view.FixLinearLayoutManager; +import com.gh.gamecenter.common.view.VerticalItemDecoration; +import com.gh.gamecenter.core.utils.ClickUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.MeEntity; import com.gh.gamecenter.entity.NewsDetailEntity; @@ -56,7 +58,6 @@ import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.newsdetail.NewsDetailAdapter; -import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.fragment.SettingsFragment; import com.lightgame.download.DataWatcher; @@ -65,25 +66,20 @@ import com.lightgame.utils.Utils; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import org.w3c.dom.Text; -import java.util.HashMap; import java.util.HashSet; -import java.util.Map; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import retrofit2.HttpException; -import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG; - /** * 文章详情页面 要启动该页面 需要传入一下参数 放入 EssayEntity中传过来 文章 id 文章标题 title 文章发表时间 time * * @author 黄壮华 */ -public class NewsDetailActivity extends ToolBarActivity implements OnClickListener, OnRequestCallBackListener { +public class NewsDetailActivity extends DownloadToolbarActivity implements OnClickListener, OnRequestCallBackListener { RecyclerView mDetailRv; LinearLayout mDetailBottomLl; @@ -179,7 +175,7 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen } else { Intent intent = new Intent(context, NewsDetailActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); intent.putExtra(NewsEntity.TAG, newsEntity); context.startActivity(intent); } @@ -197,7 +193,7 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen } else { Intent intent = new Intent(context, NewsDetailActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); intent.putExtra(NewsEntity.TAG, newsEntity); intent.putExtra(KEY_COLLECTIONNEWS, true); context.startActivity(intent); @@ -208,17 +204,17 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen @NonNull public static Intent getIntentById(Context context, String newsId, boolean isCollectionNews, String entrance) { Intent intent = new Intent(context, NewsDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); intent.putExtra(KEY_COLLECTIONNEWS, isCollectionNews); - intent.putExtra(EntranceUtils.KEY_NEWSID, newsId); + intent.putExtra(EntranceConsts.KEY_NEWSID, newsId); return intent; } @NonNull public static Intent getIntentById(Context context, String newsId, String entrance) { Intent intent = new Intent(context, NewsDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); - intent.putExtra(EntranceUtils.KEY_NEWSID, newsId); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_NEWSID, newsId); return intent; } @@ -262,7 +258,7 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen mItemDecoration = new VerticalItemDecoration(this, 8, false); mDetailRv.addItemDecoration(mItemDecoration); - mHideUselessInfo = getIntent().getBooleanExtra(EntranceUtils.KEY_HIDE_USELESS_INFO, false); + mHideUselessInfo = getIntent().getBooleanExtra(EntranceConsts.KEY_HIDE_USELESS_INFO, false); setToolbarMenu(R.menu.menu_news_detail); mNewsShare = getMenuItem(R.id.menu_share); @@ -277,7 +273,7 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen adapter = new NewsDetailAdapter(this, this, mHideUselessInfo, mEntrance); mDetailRv.setAdapter(adapter); - newsId = getIntent().getStringExtra(EntranceUtils.KEY_NEWSID); + newsId = getIntent().getStringExtra(EntranceConsts.KEY_NEWSID); mIsCollectionNews = getIntent().getBooleanExtra(KEY_COLLECTIONNEWS, false); if (newsId == null) { @@ -428,17 +424,6 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen } if (adapter.getNewsDetailEntity() != null) { - // 阅读报告 - Map kv = new HashMap<>(); - kv.put("用时", cost); - DataUtils.onEvent(NewsDetailActivity.this, "阅读文章", adapter.getNewsDetailEntity().getTitle(), kv); - - // 阅读报告 - Map kv1 = new HashMap<>(); - kv1.put(mEntrance, "阅读数"); - kv1.put(mEntrance, "用时:" + cost); - DataUtils.onEvent(NewsDetailActivity.this, "文章数据", adapter.getNewsDetailEntity().getTitle(), kv1); - if (seconds > 0) { DataCollectionUtils.uploadNews(this, adapter.getNewsDetailEntity(), gameEntity, seconds, mEntrance); } diff --git a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java index e956b7ff2a..3fcd9dddbd 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsSearchActivity.java @@ -3,9 +3,11 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; import android.os.Bundle; + import androidx.annotation.NonNull; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.halo.assistant.fragment.game.GameNewsSearchResultFragment; /** @@ -13,15 +15,15 @@ import com.halo.assistant.fragment.game.GameNewsSearchResultFragment; * 新闻搜索界面 */ @Deprecated -public class NewsSearchActivity extends NormalActivity { +public class NewsSearchActivity extends ToolBarActivity { @NonNull public static Intent getIntent(Context context, String gameName, String searchKey, String gameId, String entrance) { Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_GAMENAME, gameName); - args.putString(EntranceUtils.KEY_SEARCHKEY, searchKey); - args.putString(EntranceUtils.KEY_GAMEID, gameId); - args.putString(EntranceUtils.KEY_ENTRANCE, entrance); + args.putString(EntranceConsts.KEY_GAMENAME, gameName); + args.putString(EntranceConsts.KEY_SEARCHKEY, searchKey); + args.putString(EntranceConsts.KEY_GAMEID, gameId); + args.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, NewsSearchActivity.class, GameNewsSearchResultFragment.class, args); } diff --git a/app/src/main/java/com/gh/gamecenter/NormalActivity.java b/app/src/main/java/com/gh/gamecenter/NormalActivity.java deleted file mode 100644 index 490774afbc..0000000000 --- a/app/src/main/java/com/gh/gamecenter/NormalActivity.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.gh.gamecenter; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.text.TextUtils; -import android.view.MenuItem; -import android.view.MotionEvent; - -import com.gh.base.ToolBarActivity; -import com.gh.gamecenter.normal.NormalFragment; - -import androidx.fragment.app.Fragment; - -/** - * Created by khy on 17/10/17. - */ - -public abstract class NormalActivity extends ToolBarActivity { - - private Fragment mTargetFragment; - - public static final String NORMAL_FRAGMENT_NAME = "normalFragmentName"; - public static final String NORMAL_FRAGMENT_BUNDLE = "normalFragmentBundle"; - - // 针对部分跳转不符合NormalActivity规则的额外处理,主要绑定NormalFragment - protected Intent provideNormalIntent() { - return null; - } - - protected static Intent getTargetIntent(Context context, Class cls, Class t, Bundle bundle) { - Intent intent = new Intent(context, cls); - intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); - intent.putExtra(NORMAL_FRAGMENT_BUNDLE, bundle); - return intent; - } - - protected static Intent getTargetIntent(Context context, Class cls, Class t) { - Intent intent = new Intent(context, cls); - intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); - return intent; - } - - - public static void startFragmentNewTask(Context context, Class t, Bundle bundle) { - Intent intent = new Intent(context, NormalActivity.class); - intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); - intent.putExtra(NORMAL_FRAGMENT_BUNDLE, bundle); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } - - public static void startFragment(Context context, Class t, Bundle bundle) { - Intent intent = new Intent(context, NormalActivity.class); - intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); - intent.putExtra(NORMAL_FRAGMENT_BUNDLE, bundle); - context.startActivity(intent); - } - - - @Override - protected int getLayoutId() { - return R.layout.activity_normal; - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (getIntent() != null) { - if (savedInstanceState == null) { - handleIntent(getIntent()); - } else { - for (Fragment fragment : getSupportFragmentManager().getFragments()) { - if (fragment instanceof NormalFragment) mTargetFragment = fragment; - } - } - } - } - - @Override - protected void onNewIntent(Intent intent) { - super.onNewIntent(intent); - if (getIntent() != null) handleIntent(intent); - } - - private void handleIntent(Intent intent) { - String fraName = intent.getStringExtra(NORMAL_FRAGMENT_NAME); - Bundle bundle = intent.getBundleExtra(NORMAL_FRAGMENT_BUNDLE); - if (TextUtils.isEmpty(fraName)) { - if (provideNormalIntent() == null) { - return; - } - fraName = provideNormalIntent().getStringExtra(NORMAL_FRAGMENT_NAME); - if (bundle == null) bundle = getIntent().getExtras(); - if (TextUtils.isEmpty(fraName)) return; - } - mTargetFragment = getSupportFragmentManager().findFragmentByTag(fraName); - if (mTargetFragment == null) { - mTargetFragment = Fragment.instantiate(this, fraName, bundle); - } - getSupportFragmentManager().beginTransaction().replace(getFragmentPlaceholderId(), mTargetFragment, fraName).commitNowAllowingStateLoss(); - } - - @Override - public boolean onMenuItemClick(MenuItem item) { - if (mTargetFragment instanceof NormalFragment) { - ((NormalFragment) mTargetFragment).onMenuItemClick(item); - } - return super.onMenuItemClick(item); - } - - @Override - public void onBackPressed() { - if (mTargetFragment instanceof NormalFragment - && mTargetFragment.isAdded() - && !((NormalFragment) mTargetFragment).onBackPressed()) { - super.onBackPressed(); - } - } - - @Override - public boolean dispatchTouchEvent(MotionEvent ev) { - if (mTargetFragment instanceof NormalFragment) { - ((NormalFragment) mTargetFragment).onTouchEvent(ev); - } - return super.dispatchTouchEvent(ev); - } - - public Fragment getTargetFragment() { - return mTargetFragment; - } - - public int getFragmentPlaceholderId() { - return R.id.normal_content; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/QaActivity.kt b/app/src/main/java/com/gh/gamecenter/QaActivity.kt index d0818a689c..4d5bfe170f 100644 --- a/app/src/main/java/com/gh/gamecenter/QaActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/QaActivity.kt @@ -3,10 +3,12 @@ package com.gh.gamecenter import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.help.HelpContainerFragment -class QaActivity : NormalActivity() { +class QaActivity : ToolBarActivity() { companion object { /** @@ -16,9 +18,9 @@ class QaActivity : NormalActivity() { */ fun getIntent(context: Context, navigationTitle: String, qaId: String? = null, qaCollectionId: String? = null): Intent { val args = Bundle() - args.putString(EntranceUtils.KEY_QA_ID, qaId) - args.putString(EntranceUtils.KEY_QA_COLLECTION_ID, qaCollectionId) - args.putString(EntranceUtils.KEY_NAVIGATION_TITLE, navigationTitle) + args.putString(EntranceConsts.KEY_QA_ID, qaId) + args.putString(EntranceConsts.KEY_QA_COLLECTION_ID, qaCollectionId) + args.putString(EntranceConsts.KEY_NAVIGATION_TITLE, navigationTitle) return getTargetIntent(context, QaActivity::class.java, HelpContainerFragment::class.java, args) } } @@ -26,4 +28,16 @@ class QaActivity : NormalActivity() { override fun provideNormalIntent(): Intent { return getTargetIntent(this, QaActivity::class.java, HelpContainerFragment::class.java) } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } + + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.kt b/app/src/main/java/com/gh/gamecenter/SearchActivity.kt index 2f40a3a9af..c342b29c6c 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.kt @@ -13,9 +13,13 @@ import android.widget.RelativeLayout import android.widget.TextView import androidx.core.widget.doAfterTextChanged import androidx.core.widget.doOnTextChanged -import com.gh.base.BaseActivity +import com.gh.gamecenter.common.base.BaseActivity import com.gh.common.util.* import com.gh.gamecenter.DisplayType.* +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.db.SearchHistoryDao import com.gh.gamecenter.eventbus.EBSearch import com.gh.gamecenter.search.SearchDefaultFragment @@ -48,7 +52,7 @@ open class SearchActivity : BaseActivity() { override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putInt(KEY_DISPLAY_TYPE, mDisplayType.value) - outState.putString(EntranceUtils.KEY_SEARCHKEY, mSearchKey) + outState.putString(EntranceConsts.KEY_SEARCHKEY, mSearchKey) outState.putString(KEY_SEARCH_TYPE, mSearchType.value) } @@ -67,7 +71,7 @@ open class SearchActivity : BaseActivity() { deleteIv = findViewById(R.id.deleteIv) backBtn = findViewById(R.id.backBtn) - val hint = intent.getStringExtra(EntranceUtils.KEY_HINT) + val hint = intent.getStringExtra(EntranceConsts.KEY_HINT) val searchImmediately = intent.getBooleanExtra(KEY_SEARCH_IMMEDIATELY, false) var ignoreTextChanges = savedInstanceState != null @@ -271,8 +275,8 @@ open class SearchActivity : BaseActivity() { fun getIntent(context: Context, searchImmediately: Boolean, hint: String, entrance: String): Intent { val intent = Intent(context, SearchActivity::class.java) intent.putExtra(KEY_SEARCH_IMMEDIATELY, searchImmediately) - intent.putExtra(EntranceUtils.KEY_HINT, hint) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance) + intent.putExtra(EntranceConsts.KEY_HINT, hint) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java index 95da8d82d4..9020c73de5 100644 --- a/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SelectUserIconActivity.java @@ -2,14 +2,16 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; + import androidx.annotation.NonNull; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.halo.assistant.fragment.user.SelectPortraitFragment; /** * Created by khy on 2017/2/10. */ -public class SelectUserIconActivity extends NormalActivity { +public class SelectUserIconActivity extends ToolBarActivity { @NonNull public static Intent getIntent(Context context) { diff --git a/app/src/main/java/com/gh/gamecenter/SettingActivity.kt b/app/src/main/java/com/gh/gamecenter/SettingActivity.kt index 95a58a224a..4e112e51f7 100644 --- a/app/src/main/java/com/gh/gamecenter/SettingActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/SettingActivity.kt @@ -3,13 +3,12 @@ package com.gh.gamecenter import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.halo.assistant.fragment.SettingsFragment -class SettingActivity : NormalActivity() { - +class SettingActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) updateStatusBarColor(R.color.black, R.color.white) @@ -28,10 +27,11 @@ class SettingActivity : NormalActivity() { context, SettingActivity::class.java, SettingsFragment::class.java, Bundle().apply { - putString(EntranceUtils.KEY_ENTRANCE, entrance) - putBoolean(EntranceUtils.KEY_VERSION_UPDATE, isUpdate) + putString(EntranceConsts.KEY_ENTRANCE, entrance) + putBoolean(EntranceConsts.KEY_VERSION_UPDATE, isUpdate) } ) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java b/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java index e03749b504..5168bf767e 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareCardActivity.java @@ -18,9 +18,9 @@ import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.base.ToolBarActivity; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.common.util.MessageShareUtils; import com.gh.common.util.QRCodeUtils; import com.gh.gamecenter.entity.ConcernEntity; @@ -51,14 +51,14 @@ public class ShareCardActivity extends ToolBarActivity { public static Intent getIntent(Context context, ConcernEntity concernEntity, String shareContent) { Intent intent = new Intent(context, ShareCardActivity.class); Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_GAMENAME, concernEntity.getGameName()); - bundle.putString(EntranceUtils.KEY_GAME_ICON_URL, concernEntity.getGameIcon()); - bundle.putString(EntranceUtils.KEY_SHARECONTENT, shareContent); + bundle.putString(EntranceConsts.KEY_GAMENAME, concernEntity.getGameName()); + bundle.putString(EntranceConsts.KEY_GAME_ICON_URL, concernEntity.getGameIcon()); + bundle.putString(EntranceConsts.KEY_SHARECONTENT, shareContent); if (concernEntity.getLink() == null) { - bundle.putString(EntranceUtils.KEY_NEWSID, concernEntity.getId()); + bundle.putString(EntranceConsts.KEY_NEWSID, concernEntity.getId()); } intent.putExtras(bundle); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, "(资讯:关注[2-4])"); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, "(资讯:关注[2-4])"); return intent; } @@ -80,10 +80,10 @@ public class ShareCardActivity extends ToolBarActivity { mShareBottomLl = findViewById(R.id.sharecard_bottom); Bundle extras = getIntent().getExtras(); - gameName = extras.getString(EntranceUtils.KEY_GAMENAME); - gameIconUrl = extras.getString(EntranceUtils.KEY_GAME_ICON_URL); - shareContent = extras.getString(EntranceUtils.KEY_SHARECONTENT); - newsId = extras.getString(EntranceUtils.KEY_NEWSID); + gameName = extras.getString(EntranceConsts.KEY_GAMENAME); + gameIconUrl = extras.getString(EntranceConsts.KEY_GAME_ICON_URL); + shareContent = extras.getString(EntranceConsts.KEY_SHARECONTENT); + newsId = extras.getString(EntranceConsts.KEY_NEWSID); picName = "shareImg.jpg"; diff --git a/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java b/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java index 2e89cff6f3..40b2bb3b6b 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareCardPicActivity.java @@ -26,14 +26,14 @@ import com.facebook.drawee.controller.ControllerListener; import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.image.ImageInfo; -import com.gh.base.ToolBarActivity; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.common.util.MessageShareUtils; import com.gh.common.util.QRCodeUtils; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.entity.ConcernEntity; -import com.gh.gamecenter.retrofit.ObservableUtil; +import com.gh.gamecenter.common.retrofit.ObservableUtil; import java.io.File; import java.io.IOException; @@ -91,17 +91,17 @@ public class ShareCardPicActivity extends ToolBarActivity { Intent intent = new Intent(context, ShareCardPicActivity.class); Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_GAMENAME, concernEntity.getGameName()); - bundle.putString(EntranceUtils.KEY_GAME_ICON_URL, concernEntity.getGameIcon()); - bundle.putString(EntranceUtils.KEY_SHARECONTENT, shareContent); + bundle.putString(EntranceConsts.KEY_GAMENAME, concernEntity.getGameName()); + bundle.putString(EntranceConsts.KEY_GAME_ICON_URL, concernEntity.getGameIcon()); + bundle.putString(EntranceConsts.KEY_SHARECONTENT, shareContent); if (concernEntity.getLink() == null) { - bundle.putString(EntranceUtils.KEY_NEWSID, concernEntity.getId()); + bundle.putString(EntranceConsts.KEY_NEWSID, concernEntity.getId()); } if (concernEntity.getImg() != null && concernEntity.getImg().size() > 0) { bundle.putStringArrayList(KEY_SHARE_ARRIMG, (ArrayList) concernEntity.getImg()); } intent.putExtras(bundle); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", concernEntity.getGameName(), "])")); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, StringUtils.buildString(entrance, "+(消息详情[", concernEntity.getGameName(), "])")); context.startActivity(intent); } @@ -117,10 +117,10 @@ public class ShareCardPicActivity extends ToolBarActivity { initView(); Bundle extras = getIntent().getExtras(); - gameName = extras.getString(EntranceUtils.KEY_GAMENAME); - gameIconUrl = extras.getString(EntranceUtils.KEY_GAME_ICON_URL); - shareContent = extras.getString(EntranceUtils.KEY_SHARECONTENT); - newsId = extras.getString(EntranceUtils.KEY_NEWSID); + gameName = extras.getString(EntranceConsts.KEY_GAMENAME); + gameIconUrl = extras.getString(EntranceConsts.KEY_GAME_ICON_URL); + shareContent = extras.getString(EntranceConsts.KEY_SHARECONTENT); + newsId = extras.getString(EntranceConsts.KEY_NEWSID); List arrImg = extras.getStringArrayList(KEY_SHARE_ARRIMG); picName = "shareImgPic.jpg"; diff --git a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java index 6a4c30696b..501a46fe57 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java @@ -11,12 +11,12 @@ import android.widget.TextView; import androidx.annotation.NonNull; -import com.gh.base.ToolBarActivity; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.gh.common.util.MessageShareUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.QRCodeUtils; -import com.gh.common.util.ShareUtils; +import com.gh.gamecenter.common.utils.ShareUtils; import com.tencent.tauth.Tencent; /** diff --git a/app/src/main/java/com/gh/gamecenter/ShellActivity.kt b/app/src/main/java/com/gh/gamecenter/ShellActivity.kt index 1bd90e3061..1cdfb007bf 100644 --- a/app/src/main/java/com/gh/gamecenter/ShellActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/ShellActivity.kt @@ -4,9 +4,9 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.os.Parcelable -import com.gh.base.ToolBarActivity -import com.gh.base.fragment.BaseFragment -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.amway.AmwaySuccessFragment import com.halo.assistant.fragment.SwitchInstallMethodFragment import com.halo.assistant.fragment.user.ManuallyRealNameFragment @@ -33,7 +33,7 @@ class ShellActivity : ToolBarActivity() { Type.AMWAY_SUCCESS -> startFragment(AmwaySuccessFragment().with(bundle)) Type.SWITCH_INSTALL_METHOD -> startFragment(SwitchInstallMethodFragment()) Type.REAL_NAME_INFO -> startFragment(RealNameInfoFragment().with(bundle)) - Type.MANUALLY_REAL_NAME -> startFragment(ManuallyRealNameFragment().with(bundle?.getBundle(EntranceUtils.KEY_DATA))) + Type.MANUALLY_REAL_NAME -> startFragment(ManuallyRealNameFragment().with(bundle?.getBundle(EntranceConsts.KEY_DATA))) } } @@ -51,7 +51,7 @@ class ShellActivity : ToolBarActivity() { fun getIntent(context: Context, type: Type, extraParcelable: Parcelable? = null): Intent { val intent = Intent(context, ShellActivity::class.java) intent.putExtra(INTENT_TYPE, type.value) - intent.putExtra(EntranceUtils.KEY_DATA, extraParcelable) + intent.putExtra(EntranceConsts.KEY_DATA, extraParcelable) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/SingletonWebActivity.kt b/app/src/main/java/com/gh/gamecenter/SingletonWebActivity.kt index 50daa3aca6..41f4e53d7c 100644 --- a/app/src/main/java/com/gh/gamecenter/SingletonWebActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/SingletonWebActivity.kt @@ -1,7 +1,7 @@ package com.gh.gamecenter import android.content.Intent -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.halo.assistant.fragment.WebFragment class SingletonWebActivity : WebActivity() { @@ -9,12 +9,14 @@ class SingletonWebActivity : WebActivity() { override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) - if (intent?.extras?.getString(EntranceUtils.KEY_URL) - == targetFragment.arguments?.getString(EntranceUtils.KEY_URL)) { + if (intent?.extras?.getString(EntranceConsts.KEY_URL) + == targetFragment.arguments?.getString(EntranceConsts.KEY_URL)) { // 同样的地址,不理会 } else { if (targetFragment is WebFragment) { - targetFragment.arguments?.putString(EntranceUtils.KEY_URL, intent?.extras?.getString(EntranceUtils.KEY_URL)) + targetFragment.arguments?.putString( + EntranceConsts.KEY_URL, intent?.extras?.getString( + EntranceConsts.KEY_URL)) (targetFragment as WebFragment).reload() } } diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java index 1f81b69921..cbb7e0cd67 100644 --- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java @@ -1,18 +1,58 @@ package com.gh.gamecenter; +import static com.gh.gamecenter.common.constant.EntranceConsts.ENTRANCE_BROWSER; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_ANSWER; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_ARTICLE; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_CATEGORY; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COLUMN; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COLUMN_COLLECTION; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COMMUNITY; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COMMUNITY_COLUMN; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COMMUNITY_COLUMN_DETAIL; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_COMMUNITY_QUESTION_LABEL_DETAIL; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_DOWNLOAD; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_GAME; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_GAME_COLLECTION_DETAIL; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_GAME_COLLECTION_SQUARE; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_LIBAO; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_QQ; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_QQ_GROUP; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_QQ_QUN; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_QUESTION; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_SUGGESTION; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_TOOLBOX; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_UPLOAD_VIDEO; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_USERHOME; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_VIDEO; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_VIDEO_COLLECTION; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_VIDEO_MORE; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_VIDEO_SINGLE; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_VIDEO_STREAMING_DESC; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_VIDEO_STREAMING_HOME; +import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_WEB; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_DATA; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_GAME_NAME; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_NAME; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_PACKAGENAME; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_PLATFORM; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TO; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TYPE; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_VERSION; + import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.util.Base64; -import com.gh.base.BaseActivity; +import com.gh.gamecenter.common.base.BaseActivity; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DirectUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.common.util.EntranceUtils; -import com.gh.common.util.GsonUtils; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.RunningUtils; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.RunningUtils; import com.gh.gamecenter.entity.CommunityEntity; import com.gh.gamecenter.entity.LinkEntity; import com.gh.gamecenter.entity.SimpleGameEntity; @@ -24,45 +64,6 @@ import com.gh.gamecenter.video.videomanager.VideoManagerActivity; import com.lightgame.config.CommonDebug; import com.lightgame.utils.Utils; -import static com.gh.common.util.EntranceUtils.ENTRANCE_BROWSER; -import static com.gh.common.util.EntranceUtils.HOST_ANSWER; -import static com.gh.common.util.EntranceUtils.HOST_ARTICLE; -import static com.gh.common.util.EntranceUtils.HOST_CATEGORY; -import static com.gh.common.util.EntranceUtils.HOST_COLUMN; -import static com.gh.common.util.EntranceUtils.HOST_COLUMN_COLLECTION; -import static com.gh.common.util.EntranceUtils.HOST_COMMUNITY; -import static com.gh.common.util.EntranceUtils.HOST_COMMUNITY_COLUMN; -import static com.gh.common.util.EntranceUtils.HOST_COMMUNITY_COLUMN_DETAIL; -import static com.gh.common.util.EntranceUtils.HOST_COMMUNITY_QUESTION_LABEL_DETAIL; -import static com.gh.common.util.EntranceUtils.HOST_DOWNLOAD; -import static com.gh.common.util.EntranceUtils.HOST_GAME; -import static com.gh.common.util.EntranceUtils.HOST_GAME_COLLECTION_DETAIL; -import static com.gh.common.util.EntranceUtils.HOST_GAME_COLLECTION_SQUARE; -import static com.gh.common.util.EntranceUtils.HOST_LIBAO; -import static com.gh.common.util.EntranceUtils.HOST_QQ; -import static com.gh.common.util.EntranceUtils.HOST_QQ_GROUP; -import static com.gh.common.util.EntranceUtils.HOST_QQ_QUN; -import static com.gh.common.util.EntranceUtils.HOST_QUESTION; -import static com.gh.common.util.EntranceUtils.HOST_SUGGESTION; -import static com.gh.common.util.EntranceUtils.HOST_TOOLBOX; -import static com.gh.common.util.EntranceUtils.HOST_UPLOAD_VIDEO; -import static com.gh.common.util.EntranceUtils.HOST_USERHOME; -import static com.gh.common.util.EntranceUtils.HOST_VIDEO; -import static com.gh.common.util.EntranceUtils.HOST_VIDEO_COLLECTION; -import static com.gh.common.util.EntranceUtils.HOST_VIDEO_MORE; -import static com.gh.common.util.EntranceUtils.HOST_VIDEO_SINGLE; -import static com.gh.common.util.EntranceUtils.HOST_VIDEO_STREAMING_DESC; -import static com.gh.common.util.EntranceUtils.HOST_VIDEO_STREAMING_HOME; -import static com.gh.common.util.EntranceUtils.HOST_WEB; -import static com.gh.common.util.EntranceUtils.KEY_DATA; -import static com.gh.common.util.EntranceUtils.KEY_GAME_NAME; -import static com.gh.common.util.EntranceUtils.KEY_NAME; -import static com.gh.common.util.EntranceUtils.KEY_PACKAGENAME; -import static com.gh.common.util.EntranceUtils.KEY_PLATFORM; -import static com.gh.common.util.EntranceUtils.KEY_TO; -import static com.gh.common.util.EntranceUtils.KEY_TYPE; -import static com.gh.common.util.EntranceUtils.KEY_VERSION; - /** * Created by LGT on 2016/11/16. * 链接跳转用 @@ -112,9 +113,9 @@ public class SkipActivity extends BaseActivity { case HOST_SUGGESTION: String platform = uri.getQueryParameter(KEY_PLATFORM); String platformName = PlatformUtils.getInstance(this).getPlatformName(platform); - String gameId = uri.getQueryParameter(EntranceUtils.KEY_GAMEID); - String packageMd5 = uri.getQueryParameter(EntranceUtils.KEY_PACKAGE_MD5); - String isQaFeedbackString = uri.getQueryParameter(EntranceUtils.KEY_IS_QA_FEEDBACK); + String gameId = uri.getQueryParameter(EntranceConsts.KEY_GAMEID); + String packageMd5 = uri.getQueryParameter(EntranceConsts.KEY_PACKAGE_MD5); + String isQaFeedbackString = uri.getQueryParameter(EntranceConsts.KEY_IS_QA_FEEDBACK); boolean isQaFeedback = !TextUtils.isEmpty(isQaFeedbackString) && isQaFeedbackString.equals("true"); String content = (TextUtils.isEmpty(gameId) || TextUtils.isEmpty(packageMd5)) ? String.format("%s-%s-V%s,", @@ -126,12 +127,12 @@ public class SkipActivity extends BaseActivity { TextUtils.isEmpty(platformName) ? platform : platformName, uri.getQueryParameter(KEY_VERSION), gameId, packageMd5); String qaId = uri.getQueryParameter("qa_id"); - String qaContentId = uri.getQueryParameter(EntranceUtils.KEY_QA_CONTENT_ID); - String qaTitle = uri.getQueryParameter(EntranceUtils.KEY_QA_TITLE); + String qaContentId = uri.getQueryParameter(EntranceConsts.KEY_QA_CONTENT_ID); + String qaTitle = uri.getQueryParameter(EntranceConsts.KEY_QA_TITLE); if (!TextUtils.isEmpty(qaId)) { DirectUtils.directToQa(this, qaTitle, qaId); } else { - DirectUtils.directToFeedback(this, content, null, isQaFeedback, qaContentId, EntranceUtils.ENTRANCE_BROWSER); + DirectUtils.directToFeedback(this, content, null, isQaFeedback, qaContentId, EntranceConsts.ENTRANCE_BROWSER); } break; case HOST_DOWNLOAD: @@ -204,9 +205,9 @@ public class SkipActivity extends BaseActivity { VideoLinkEntity linkEntity = new VideoLinkEntity(title, categoryId, link, tagActivityId, tagActivityName); SimpleGameEntity simpleGameEntity = new SimpleGameEntity(gameId != null ? gameId : "", gameName != null ? gameName : "", ""); - Bundle nextToBundle = VideoManagerActivity.getVideoManagerBundle(linkEntity, simpleGameEntity, EntranceUtils.ENTRANCE_BROWSER, ""); - CheckLoginUtils.checkLogin(this, nextToBundle, true, EntranceUtils.ENTRANCE_BROWSER, () -> - DirectUtils.directToVideoManager(SkipActivity.this, linkEntity, simpleGameEntity, EntranceUtils.ENTRANCE_BROWSER, "浏览器")); + Bundle nextToBundle = VideoManagerActivity.getVideoManagerBundle(linkEntity, simpleGameEntity, EntranceConsts.ENTRANCE_BROWSER, ""); + CheckLoginUtils.checkLogin(this, nextToBundle, true, EntranceConsts.ENTRANCE_BROWSER, () -> + DirectUtils.directToVideoManager(SkipActivity.this, linkEntity, simpleGameEntity, EntranceConsts.ENTRANCE_BROWSER, "浏览器")); break; case HOST_VIDEO_SINGLE: DirectUtils.directToVideoDetail(this, path, VideoDetailContainerViewModel.Location.SINGLE_VIDEO.getValue(), @@ -277,7 +278,7 @@ public class SkipActivity extends BaseActivity { bundle.putString(KEY_TYPE, type); EntranceUtils.jumpActivity(this, bundle); break; - case EntranceUtils.HOST_VIDEO_DETAIL: + case EntranceConsts.HOST_VIDEO_DETAIL: DirectUtils.directToVideoDetail(this, path, ENTRANCE_BROWSER, ""); break; case HOST_LIBAO: @@ -318,7 +319,7 @@ public class SkipActivity extends BaseActivity { columnId = uri.getQueryParameter("column_id"); DirectUtils.directAskColumnDetail(this, columnId, community, ENTRANCE_BROWSER, "浏览器"); break; - case EntranceUtils.HOST_BLOCK: + case EntranceConsts.HOST_BLOCK: name = uri.getQueryParameter("name"); SubjectRecommendEntity entity = new SubjectRecommendEntity(); entity.setLink(path); @@ -327,31 +328,31 @@ public class SkipActivity extends BaseActivity { DirectUtils.directToBlock(this, entity, mEntrance); break; - case EntranceUtils.HOST_SERVER_BLOCK: + case EntranceConsts.HOST_SERVER_BLOCK: DirectUtils.directToGameServers(this, ENTRANCE_BROWSER, "浏览器"); break; - case EntranceUtils.HOST_AMWAY_BLOCK: + case EntranceConsts.HOST_AMWAY_BLOCK: DirectUtils.directToAmway(this, null, ENTRANCE_BROWSER, "浏览器"); break; - case EntranceUtils.HOST_HELP: + case EntranceConsts.HOST_HELP: name = uri.getQueryParameter("name"); DirectUtils.directToQa(this, name, path); break; - case EntranceUtils.HOST_HELP_COLLECTION: + case EntranceConsts.HOST_HELP_COLLECTION: name = uri.getQueryParameter("name"); DirectUtils.directToQaCollection(this, name, path); break; - case EntranceUtils.HOST_GAME_UPLOAD: + case EntranceConsts.HOST_GAME_UPLOAD: DirectUtils.directGameUpload(this, ENTRANCE_BROWSER, "浏览器"); break; - case EntranceUtils.HOST_GAME_ZONE: + case EntranceConsts.HOST_GAME_ZONE: String zoneUrl = uri.getQueryParameter("url"); DirectUtils.directGameZone(this, path, zoneUrl, ENTRANCE_BROWSER); break; - case EntranceUtils.HOST_LINK: + case EntranceConsts.HOST_LINK: try { String dataString = uri.getQueryParameter("data"); if (!TextUtils.isEmpty(dataString)) { @@ -365,35 +366,35 @@ public class SkipActivity extends BaseActivity { toast(e.getMessage()); } break; - case EntranceUtils.HOST_GAME_NEWS: + case EntranceConsts.HOST_GAME_NEWS: DirectUtils.directToGameNews( this, - uri.getQueryParameter(EntranceUtils.KEY_GAME_ID), - uri.getQueryParameter(EntranceUtils.KEY_GAME_NAME), - EntranceUtils.ENTRANCE_BROWSER); + uri.getQueryParameter(EntranceConsts.KEY_GAME_ID), + uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME), + EntranceConsts.ENTRANCE_BROWSER); break; - case EntranceUtils.HOST_GAME_CALENDAR: - DirectUtils.directToGameServerCalendar(this, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID)); + case EntranceConsts.HOST_GAME_CALENDAR: + DirectUtils.directToGameServerCalendar(this, uri.getQueryParameter(EntranceConsts.KEY_GAME_ID)); break; - case EntranceUtils.HOST_HISTORY_APK: - DirectUtils.directToHistoryApk(this, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID)); + case EntranceConsts.HOST_HISTORY_APK: + DirectUtils.directToHistoryApk(this, uri.getQueryParameter(EntranceConsts.KEY_GAME_ID)); break; - case EntranceUtils.HOST_FORUM_DETAIL: + case EntranceConsts.HOST_FORUM_DETAIL: DirectUtils.directForumDetail(this, id, ENTRANCE_BROWSER); break; - case EntranceUtils.HOST_GAME_RATING_DETAIL: - DirectUtils.directToGameRatingDetail(this, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID), uri.getQueryParameter(EntranceUtils.KEY_COMMENT_ID), ENTRANCE_BROWSER); + case EntranceConsts.HOST_GAME_RATING_DETAIL: + DirectUtils.directToGameRatingDetail(this, uri.getQueryParameter(EntranceConsts.KEY_GAME_ID), uri.getQueryParameter(EntranceConsts.KEY_COMMENT_ID), ENTRANCE_BROWSER); break; - case EntranceUtils.HOST_FORUM: + case EntranceConsts.HOST_FORUM: position = uri.getQueryParameter("position"); DirectUtils.directToForum(this, TextUtils.isEmpty(position) ? 0 : Integer.parseInt(position)); break; - case EntranceUtils.HOST_HELP_AND_FEEDBACK: + case EntranceConsts.HOST_HELP_AND_FEEDBACK: position = uri.getQueryParameter("position"); DirectUtils.directToHelpAndFeedback(this, TextUtils.isEmpty(position) ? 0 : Integer.parseInt(position)); break; case HOST_GAME_COLLECTION_DETAIL: - DirectUtils.directToGameCollectionDetail(this, path, ENTRANCE_BROWSER); + DirectUtils.directToGameCollectionDetail(this, path, ENTRANCE_BROWSER, ""); break; case HOST_GAME_COLLECTION_SQUARE: DirectUtils.directToGameCollectionSquare(this, ENTRANCE_BROWSER, "", "", ""); @@ -414,7 +415,7 @@ public class SkipActivity extends BaseActivity { if (host != null) { if ("details".equals(host)) { bundle = new Bundle(); - bundle.putString(KEY_TO, EntranceUtils.KEY_MARKET_DETAILS); + bundle.putString(KEY_TO, EntranceConsts.KEY_MARKET_DETAILS); bundle.putString(KEY_DATA, id); EntranceUtils.jumpActivity(this, bundle); } else { diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index 6b895f7ba1..814141b852 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -20,36 +20,38 @@ import androidx.core.app.ActivityCompat; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; +import com.alibaba.android.arouter.facade.annotation.Route; import com.g00fy2.versioncompare.Version; -import com.gh.base.BaseActivity; -import com.gh.common.AppExecutor; +import com.gh.gamecenter.common.base.BaseActivity; import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; import com.gh.common.dialog.PrivacyPolicyDialogFragment; -import com.gh.common.tracker.TrackerLogger; +import com.gh.gamecenter.common.tracker.TrackerLogger; import com.gh.common.util.AdHelper; import com.gh.common.util.DeviceTokenUtils; -import com.gh.common.util.DialogHelper; import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.PackageFlavorHelper; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.GameSubstituteRepositoryHelper; -import com.gh.common.util.GsonUtils; import com.gh.common.util.LunchType; -import com.gh.common.util.MtaHelper; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.SPUtils; -import com.gh.common.util.SimpleCallback; import com.gh.common.util.TagUtils; import com.gh.common.util.UsageStatsHelper; import com.gh.download.DownloadManager; +import com.gh.gamecenter.common.callback.SimpleCallback; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.PackageFlavorHelper; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.AuthDialogEntity; import com.gh.gamecenter.entity.DeviceDialogEntity; import com.gh.gamecenter.entity.PrivacyPolicyEntity; -import com.gh.gamecenter.retrofit.BiResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.download.DownloadEntity; @@ -78,6 +80,7 @@ import pub.devrel.easypermissions.EasyPermissions; /** * 引导页面 */ +@Route(path = RouteConsts.activity.splashActivity) public class SplashScreenActivity extends BaseActivity { private SharedPreferences mSharedPreferences; diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index a9fdb9eb38..b4fbe6b207 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -33,35 +33,35 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.OnListClickListener; -import com.gh.base.OnRequestCallBackListener; -import com.gh.base.ToolBarActivity; -import com.gh.base.fragment.WaitingDialogFragment; -import com.gh.common.AppExecutor; -import com.gh.common.dialog.TrackableDialog; -import com.gh.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.util.AdHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; -import com.gh.common.util.DialogHelper; import com.gh.common.util.DirectUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.GsonUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.NetworkUtils; import com.gh.common.util.NotificationHelper; import com.gh.common.util.PackageUtils; -import com.gh.common.util.ShareUtils; -import com.gh.common.util.TextHelper; -import com.gh.common.util.TimeUtils; -import com.gh.common.util.ToastUtils; +import com.gh.gamecenter.common.utils.ShareUtils; import com.gh.common.util.UploadImageUtils; -import com.gh.common.util.UrlFilterUtils; -import com.gh.common.view.FixLinearLayoutManager; +import com.gh.gamecenter.common.base.TrackableDialog; +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; +import com.gh.gamecenter.common.utils.TextHelper; +import com.gh.gamecenter.common.view.FixLinearLayoutManager; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.TimeUtils; +import com.gh.gamecenter.core.utils.ToastUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.databinding.ActivitySuggestBinding; import com.gh.gamecenter.entity.ErrorEntity; import com.gh.gamecenter.entity.GameEntity; @@ -71,7 +71,7 @@ import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.entity.SimpleGameEntity; import com.gh.gamecenter.entity.UserInfoEntity; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.suggest.SuggestGameCollectAdapter; import com.gh.gamecenter.suggest.SuggestPicAdapter; @@ -239,9 +239,9 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall public static Intent getIntentFromNetworkDiagnosis(Context context, String diagnosis) { Intent intent = new Intent(context, SuggestionActivity.class); - intent.putExtra(EntranceUtils.KEY_SUGGESTTYPE, SuggestType.normal); - intent.putExtra(EntranceUtils.KEY_CONTENT, "网络诊断结果" + TimeUtils.getFormatTime(System.currentTimeMillis(), "yyyy.MM.dd")); - intent.putExtra(EntranceUtils.KEY_DIAGNOSIS, diagnosis); + intent.putExtra(EntranceConsts.KEY_SUGGESTTYPE, SuggestType.normal); + intent.putExtra(EntranceConsts.KEY_CONTENT, "网络诊断结果" + TimeUtils.getFormatTime(System.currentTimeMillis(), "yyyy.MM.dd")); + intent.putExtra(EntranceConsts.KEY_DIAGNOSIS, diagnosis); return intent; } @@ -260,19 +260,19 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall ) { Intent intent = new Intent(context, SuggestionActivity.class); if (!diagnosis.isEmpty()) { - intent.putExtra(EntranceUtils.KEY_SUGGESTTYPE, SuggestType.normal); - intent.putExtra(EntranceUtils.KEY_CONTENT, "网络诊断结果" + TimeUtils.getFormatTime(System.currentTimeMillis(), "yyyy.MM.dd")); - intent.putExtra(EntranceUtils.KEY_DIAGNOSIS, diagnosis); + intent.putExtra(EntranceConsts.KEY_SUGGESTTYPE, SuggestType.normal); + intent.putExtra(EntranceConsts.KEY_CONTENT, "网络诊断结果" + TimeUtils.getFormatTime(System.currentTimeMillis(), "yyyy.MM.dd")); + intent.putExtra(EntranceConsts.KEY_DIAGNOSIS, diagnosis); } else { - intent.putExtra(EntranceUtils.KEY_SUGGESTTYPE, suggestType); - intent.putExtra(EntranceUtils.KEY_HIDE_SUGGEST_HINT, hiddenHint); - intent.putExtra(EntranceUtils.KEY_SUGGEST_HINT_TYPE, suggestHintType); - intent.putExtra(EntranceUtils.KEY_CONTENT, content); + intent.putExtra(EntranceConsts.KEY_SUGGESTTYPE, suggestType); + intent.putExtra(EntranceConsts.KEY_HIDE_SUGGEST_HINT, hiddenHint); + intent.putExtra(EntranceConsts.KEY_SUGGEST_HINT_TYPE, suggestHintType); + intent.putExtra(EntranceConsts.KEY_CONTENT, content); intent.putExtra(FROM_RATING_KEY, fromRatingKey); - intent.putExtra(EntranceUtils.KEY_PLATFORM, platform); + intent.putExtra(EntranceConsts.KEY_PLATFORM, platform); intent.putExtra(SimpleGameEntity.class.getSimpleName(), game); - intent.putExtra(EntranceUtils.KEY_IS_QA_FEEDBACK, isQaFeedback); - intent.putExtra(EntranceUtils.KEY_QA_CONTENT_ID, qaContentId); + intent.putExtra(EntranceConsts.KEY_IS_QA_FEEDBACK, isQaFeedback); + intent.putExtra(EntranceConsts.KEY_QA_CONTENT_ID, qaContentId); } return intent; } @@ -333,22 +333,22 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall Bundle extras = getIntent().getExtras(); if (extras == null) return; - Object suggestType = extras.get(EntranceUtils.KEY_SUGGESTTYPE); + Object suggestType = extras.get(EntranceConsts.KEY_SUGGESTTYPE); if (suggestType instanceof SuggestType) { mSuggestType = (SuggestType) suggestType; } else { mSuggestType = SuggestType.normal; } - mSuggestContent = extras.getString(EntranceUtils.KEY_CONTENT); - mSuggestHintType = extras.getString(EntranceUtils.KEY_SUGGEST_HINT_TYPE); - mHideHint = extras.getString(EntranceUtils.KEY_HIDE_SUGGEST_HINT, ""); - String gamePlatform = extras.getString(EntranceUtils.KEY_PLATFORM, ""); + mSuggestContent = extras.getString(EntranceConsts.KEY_CONTENT); + mSuggestHintType = extras.getString(EntranceConsts.KEY_SUGGEST_HINT_TYPE); + mHideHint = extras.getString(EntranceConsts.KEY_HIDE_SUGGEST_HINT, ""); + String gamePlatform = extras.getString(EntranceConsts.KEY_PLATFORM, ""); mFunctionTypeName = getResources().getStringArray(R.array.suggest_function_type); mGameEntity = extras.getParcelable(SimpleGameEntity.class.getSimpleName()); fromRating = extras.getBoolean(FROM_RATING_KEY, false); - isQaFeedback = extras.getBoolean(EntranceUtils.KEY_IS_QA_FEEDBACK, false); - qaContentId = extras.getString(EntranceUtils.KEY_QA_CONTENT_ID, ""); - mDiagnosisResult = extras.getString(EntranceUtils.KEY_DIAGNOSIS, ""); + isQaFeedback = extras.getBoolean(EntranceConsts.KEY_IS_QA_FEEDBACK, false); + qaContentId = extras.getString(EntranceConsts.KEY_QA_CONTENT_ID, ""); + mDiagnosisResult = extras.getString(EntranceConsts.KEY_DIAGNOSIS, ""); if (!mDiagnosisResult.isEmpty()) { mDiagnosisMessage = mSuggestContent; } @@ -409,7 +409,7 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall SettingsEntity.Suggestion typeEntity = GsonUtils.fromJson(suggestionType, SettingsEntity.Suggestion.class); if (typeEntity != null) { switch (mSuggestHintType) { - case EntranceUtils.KEY_PLUGIN: + case EntranceConsts.KEY_PLUGIN: List plugin = typeEntity.getPlugin(); if (plugin != null && plugin.size() > 0) { showHintDialog(plugin); @@ -638,7 +638,7 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall } else if (type == SuggestType.gameQuestion) { mSuggestTypeContainer.setVisibility(View.GONE); mCopyrightContainer.setVisibility(View.GONE); - if (!EntranceUtils.KEY_PLUGIN.equals(mSuggestHintType)) { + if (!EntranceConsts.KEY_PLUGIN.equals(mSuggestHintType)) { mSuggestContentEt.setHint("请描述具体遇到的问题... \n ↓↓你还可以上传截图"); mSuggestGameLl.setVisibility(View.VISIBLE); mPlatformContainer.setVisibility(View.VISIBLE); @@ -1248,7 +1248,7 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall } message = mGameInfo + "," + typeName + "," + content; } else if (mSuggestType == SuggestType.gameQuestion) { - if (EntranceUtils.KEY_PLUGIN.equals(mSuggestHintType)) { + if (EntranceConsts.KEY_PLUGIN.equals(mSuggestHintType)) { message = "【插件问题】" + content; } else { if (isQaFeedback && !qaContentId.isEmpty()) { diff --git a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java index 5bff6c15bf..533ed575a7 100644 --- a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java @@ -10,13 +10,13 @@ //import android.widget.LinearLayout; //import android.widget.TextView; // -//import com.gh.base.OnRequestCallBackListener; -//import com.gh.base.ToolBarActivity; +//import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +//import com.gh.gamecenter.common.base.ToolBarActivity; //import com.gh.common.util.EntranceUtils; -//import com.gh.common.util.MtaHelper; -//import com.gh.common.util.TextHelper; -//import com.gh.common.util.UrlFilterUtils; -//import com.gh.common.view.VerticalItemDecoration; +//import com.gh.gamecenter.core.utils.MtaHelper; +//import com.gh.gamecenter.common.utils.TextHelper; +//import com.gh.gamecenter.core.utils.UrlFilterUtils; +//import com.gh.gamecenter.common.view.VerticalItemDecoration; //import com.gh.gamecenter.adapter.ToolBoxRvAdapter; //import com.gh.gamecenter.entity.ToolBoxEntity; //import com.gh.gamecenter.retrofit.Response; diff --git a/app/src/main/java/com/gh/gamecenter/UserInfoActivity.kt b/app/src/main/java/com/gh/gamecenter/UserInfoActivity.kt index f539bd31bd..9af8e858a9 100644 --- a/app/src/main/java/com/gh/gamecenter/UserInfoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/UserInfoActivity.kt @@ -2,10 +2,11 @@ package com.gh.gamecenter import android.content.Context import android.content.Intent -import com.gh.common.util.updateStatusBarColor +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.halo.assistant.fragment.user.UserInfoFragment -class UserInfoActivity : NormalActivity() { +class UserInfoActivity : ToolBarActivity() { companion object { fun getIntent(context: Context?): Intent? { return getTargetIntent( diff --git a/app/src/main/java/com/gh/gamecenter/UserInfoEditActivity.kt b/app/src/main/java/com/gh/gamecenter/UserInfoEditActivity.kt index 2df7300067..cfd8d88f54 100644 --- a/app/src/main/java/com/gh/gamecenter/UserInfoEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/UserInfoEditActivity.kt @@ -3,11 +3,12 @@ package com.gh.gamecenter import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.user.UserViewModel import com.halo.assistant.fragment.user.UserInfoEditFragment -class UserInfoEditActivity : NormalActivity() { +class UserInfoEditActivity : ToolBarActivity() { companion object { fun getIntent(context: Context, editType: String): Intent { return getIntent(context, editType, false) @@ -25,7 +26,7 @@ class UserInfoEditActivity : NormalActivity() { ): Intent { val args = Bundle() args.putString(UserViewModel.KEY_EDIT_TYPE, editType) - args.putBoolean(EntranceUtils.KEY_IS_FORCED_TO_CERTIFICATE, isForcedToCertificate) + args.putBoolean(EntranceConsts.KEY_IS_FORCED_TO_CERTIFICATE, isForcedToCertificate) return getTargetIntent( context, UserInfoEditActivity::class.java, diff --git a/app/src/main/java/com/gh/gamecenter/UserRegionActivity.java b/app/src/main/java/com/gh/gamecenter/UserRegionActivity.java index 28bea7553c..b6c83d5c66 100644 --- a/app/src/main/java/com/gh/gamecenter/UserRegionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/UserRegionActivity.java @@ -3,12 +3,13 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.halo.assistant.fragment.user.SelectRegionFragment; /** * Created by khy on 25/09/17. */ -public class UserRegionActivity extends NormalActivity { +public class UserRegionActivity extends ToolBarActivity { public static Intent getIntent(Context context) { return getTargetIntent(context, UserRegionActivity.class, SelectRegionFragment.class); diff --git a/app/src/main/java/com/gh/gamecenter/VoteActivity.java b/app/src/main/java/com/gh/gamecenter/VoteActivity.java index 7dd38ed43f..1095ca5bf4 100644 --- a/app/src/main/java/com/gh/gamecenter/VoteActivity.java +++ b/app/src/main/java/com/gh/gamecenter/VoteActivity.java @@ -3,9 +3,11 @@ package com.gh.gamecenter; import android.content.Context; import android.content.Intent; import android.os.Bundle; + import androidx.annotation.NonNull; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.halo.assistant.fragment.VoteFragment; /** @@ -13,13 +15,13 @@ import com.halo.assistant.fragment.VoteFragment; * 求版本投票页面 */ @Deprecated -public class VoteActivity extends NormalActivity { +public class VoteActivity extends ToolBarActivity { @NonNull public static Intent getIntent(Context context, String gameName, String gameId) { Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_GAMENAME, gameName); - args.putString(EntranceUtils.KEY_GAMEID, gameId); + args.putString(EntranceConsts.KEY_GAMENAME, gameName); + args.putString(EntranceConsts.KEY_GAMEID, gameId); return getTargetIntent(context, VoteActivity.class, VoteFragment.class, args); } diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.kt b/app/src/main/java/com/gh/gamecenter/WebActivity.kt index 5b13c74b9b..12a88b7c21 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.kt @@ -8,14 +8,20 @@ import android.os.Bundle import android.text.TextUtils import android.view.KeyEvent import android.view.View -import com.gh.common.constant.Constants -import com.gh.common.util.* +import com.alibaba.android.arouter.facade.annotation.Route +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.utils.EnvHelper +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.entity.ConcernEntity import com.gh.gamecenter.entity.NewsEntity import com.gh.gamecenter.entity.ToolBoxEntity import com.halo.assistant.fragment.WebFragment -open class WebActivity : NormalActivity() { +@Route(path = RouteConsts.activity.webActivity) +open class WebActivity : ToolBarActivity() { private var mIsFullScreen = false override fun onCreate(savedInstanceState: Bundle?) { @@ -79,18 +85,18 @@ open class WebActivity : NormalActivity() { @JvmStatic fun getWebIntentByShare(context: Context?, url: String?, showWebShare: Boolean): Intent { val bundle = Bundle() - bundle.putBoolean(EntranceUtils.KEY_WEB_SHARE, showWebShare) - bundle.putString(EntranceUtils.KEY_URL, url) + bundle.putBoolean(EntranceConsts.KEY_WEB_SHARE, showWebShare) + bundle.putString(EntranceConsts.KEY_URL, url) bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_TITLE, true) - return IntentUtils.getWebTargetIntent(context, bundle, url) + return getWebTargetIntent(context, bundle, url) } // 获取通用页面 @JvmStatic fun getWebIntent(context: Context, title: String, url: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_GAMENAME, title) - bundle.putString(EntranceUtils.KEY_URL, url) + bundle.putString(EntranceConsts.KEY_GAMENAME, title) + bundle.putString(EntranceConsts.KEY_URL, url) return getTargetIntent(context, WebActivity::class.java, WebFragment::class.java, bundle) } @@ -99,11 +105,11 @@ open class WebActivity : NormalActivity() { fun getThirdPartySdkStatementIntent(context: Context): Intent { val bundle = Bundle() bundle.putString( - EntranceUtils.KEY_GAMENAME, + EntranceConsts.KEY_GAMENAME, context.getString(R.string.third_party_sdk_title) ) bundle.putString( - EntranceUtils.KEY_URL, + EntranceConsts.KEY_URL, context.getString(R.string.third_party_sdk_statement_url) ) return getTargetIntent( @@ -120,7 +126,7 @@ open class WebActivity : NormalActivity() { // bundle.putString(EntranceUtils.KEY_GAMENAME, context.getString(R.string.upload_game_policy_title)); bundle.putBoolean(WebFragment.KEY_COMPLETION_TITLE, true) bundle.putString( - EntranceUtils.KEY_URL, + EntranceConsts.KEY_URL, context.getString(R.string.upload_game_policy_url) ) return getTargetIntent( @@ -135,11 +141,11 @@ open class WebActivity : NormalActivity() { fun getSecurityCertificationIntent(context: Context): Intent { val bundle = Bundle() bundle.putString( - EntranceUtils.KEY_GAMENAME, + EntranceConsts.KEY_GAMENAME, context.getString(R.string.comment_security_certification) ) bundle.putString( - EntranceUtils.KEY_URL, + EntranceConsts.KEY_URL, context.getString(R.string.comment_security_certification_url) ) bundle.putBoolean(WebFragment.KEY_IS_SECURITY_CERTIFICATION, true) @@ -158,9 +164,9 @@ open class WebActivity : NormalActivity() { isCollectionTools: Boolean ): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, toolBoxEntity.url) + bundle.putString(EntranceConsts.KEY_URL, toolBoxEntity.url) bundle.putBoolean(WebFragment.KEY_ISTOOLS, true) - bundle.putString(EntranceUtils.KEY_GAMENAME, toolBoxEntity.name) + bundle.putString(EntranceConsts.KEY_GAMENAME, toolBoxEntity.name) bundle.putParcelable(ToolBoxEntity.TAG, toolBoxEntity) bundle.putBoolean(WebFragment.KEY_ISCOLLECTIONTOOLS, isCollectionTools) return getTargetIntent( @@ -179,7 +185,7 @@ open class WebActivity : NormalActivity() { Constants.WECHAT_BIND_ADDRESS } val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, url) + bundle.putString(EntranceConsts.KEY_URL, url) bundle.putBoolean(WebFragment.KEY_IS_BIND_WECHAT, true) bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED, true) return getTargetIntent( @@ -197,10 +203,10 @@ open class WebActivity : NormalActivity() { entrance: String? ): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, concernEntity.link) - bundle.putString(EntranceUtils.KEY_GAMENAME, concernEntity.getGameName()) - bundle.putString(EntranceUtils.KEY_NEWSID, concernEntity.id) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_URL, concernEntity.link) + bundle.putString(EntranceConsts.KEY_GAMENAME, concernEntity.getGameName()) + bundle.putString(EntranceConsts.KEY_NEWSID, concernEntity.id) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent( context, WebActivity::class.java, @@ -212,10 +218,10 @@ open class WebActivity : NormalActivity() { @JvmStatic fun getIntentByNews(context: Context?, newsEntity: NewsEntity, entrance: String?): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, newsEntity.link) - bundle.putString(EntranceUtils.KEY_GAMENAME, newsEntity.gameName) - bundle.putString(EntranceUtils.KEY_NEWSID, newsEntity.id) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_URL, newsEntity.link) + bundle.putString(EntranceConsts.KEY_GAMENAME, newsEntity.gameName) + bundle.putString(EntranceConsts.KEY_NEWSID, newsEntity.id) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent( context, WebActivity::class.java, @@ -226,10 +232,10 @@ open class WebActivity : NormalActivity() { @JvmStatic fun getIntent(context: Context?, url: String?, autoCompletionTitle: Boolean): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, url) + bundle.putString(EntranceConsts.KEY_URL, url) bundle.putBoolean(WebFragment.KEY_COMPLETION_TITLE, autoCompletionTitle) bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_TITLE, false) - return IntentUtils.getWebTargetIntent(context, bundle, url) + return getWebTargetIntent(context, bundle, url) } @JvmStatic @@ -241,12 +247,12 @@ open class WebActivity : NormalActivity() { isOpenNativePage: Boolean ): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, url) - bundle.putString(EntranceUtils.KEY_GAMENAME, title) + bundle.putString(EntranceConsts.KEY_URL, url) + bundle.putString(EntranceConsts.KEY_GAMENAME, title) bundle.putBoolean(WebFragment.KEY_COMPLETION_TITLE, autoCompletionTitle) bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_TITLE, false) bundle.putBoolean(WebFragment.KEY_OPEN_NATIVE_PAGE, isOpenNativePage) - return IntentUtils.getWebTargetIntent(context, bundle, url) + return getWebTargetIntent(context, bundle, url) } // 获取问答页 @@ -259,8 +265,8 @@ open class WebActivity : NormalActivity() { qaType: Int ): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, url) - bundle.putString(EntranceUtils.KEY_GAMENAME, title) + bundle.putString(EntranceConsts.KEY_URL, url) + bundle.putString(EntranceConsts.KEY_GAMENAME, title) bundle.putBoolean(WebFragment.KEY_COMPLETION_TITLE, false) bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_TITLE, false) bundle.putBoolean(WebFragment.KEY_OPEN_NATIVE_PAGE, false) @@ -270,7 +276,7 @@ open class WebActivity : NormalActivity() { isWebPageHandleBackPressed ) bundle.putInt(WebFragment.KEY_QA_TYPE, qaType) - return IntentUtils.getWebTargetIntent(context, bundle, url) + return getWebTargetIntent(context, bundle, url) } // 获取H5游戏 @@ -283,7 +289,7 @@ open class WebActivity : NormalActivity() { closeButton: String? ): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_URL, url) + bundle.putString(EntranceConsts.KEY_URL, url) bundle.putString(WebFragment.KEY_GAME_NAME, gameName) bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_TITLE, true) bundle.putString(WebFragment.KEY_CLOSE_BUTTON, closeButton) @@ -291,7 +297,22 @@ open class WebActivity : NormalActivity() { bundle.putBoolean(WebFragment.KEY_REQUIRE_BACK_CONFIRMATION, true) bundle.putString(WebFragment.KEY_BACK_CONFIRMATION_CONTENT, "退出后将不保存当前游戏进度,确定退出吗?") } - return IntentUtils.getWebTargetIntent(context, bundle, url) + return getWebTargetIntent(context, bundle, url) + } + + private fun getWebTargetIntent(context: Context?, bundle: Bundle, url: String?): Intent { + val cls: Class = if (url?.contains("android_page_type=singleton") == true) { + SingletonWebActivity::class.java + } else { + WebActivity::class.java + } + if (url?.contains("leave_web_page_handle_back_pressed=true") == true) { + bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED, true) + } + val intent = Intent(context, cls) + intent.putExtra(NORMAL_FRAGMENT_NAME, WebFragment::class.java.canonicalName) + intent.putExtra(NORMAL_FRAGMENT_BUNDLE, bundle) + return intent } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java b/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java index 052bb3130a..1bcf05bf4c 100644 --- a/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java @@ -1,5 +1,7 @@ package com.gh.gamecenter; +import static com.gh.gamecenter.common.constant.EntranceConsts.*; + import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -12,21 +14,22 @@ import android.util.Base64; import androidx.annotation.NonNull; +import com.alibaba.android.arouter.facade.annotation.Route; import com.gh.common.Base64ImageHolder; import com.gh.common.constant.Config; -import com.gh.common.util.BiCallback; -import com.gh.common.util.BitmapUtils; import com.gh.common.util.EnergyTaskHelper; -import com.gh.common.util.ImageUtils; import com.gh.common.util.IntegralLogHelper; import com.gh.common.util.LogUtils; import com.gh.common.util.NewLogUtils; -import com.gh.common.util.ShareUtils; -import com.gh.gamecenter.eventbus.EBShare; +import com.gh.gamecenter.common.callback.BiCallback; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.eventbus.EBShare; +import com.gh.gamecenter.common.utils.BitmapUtils; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.ShareUtils; import com.lightgame.utils.Utils; import com.sina.weibo.sdk.api.ImageObject; import com.sina.weibo.sdk.api.TextObject; -import com.sina.weibo.sdk.api.WebpageObject; import com.sina.weibo.sdk.api.WeiboMultiMessage; import com.sina.weibo.sdk.auth.AuthInfo; import com.sina.weibo.sdk.common.UiError; @@ -37,24 +40,15 @@ import com.sina.weibo.sdk.share.WbShareCallback; import org.greenrobot.eventbus.EventBus; import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.UUID; /** * Created by khy on 2016/11/23. *

* 微博分享 */ +@Route(path = RouteConsts.activity.weiBoShareActivity) public class WeiBoShareActivity extends Activity implements WbShareCallback { - - private static final String KET_SHARE_STYLE = "shareStyle"; - private static final String KET_SHAREICON = "shareIcon"; - private static final String KET_SHAREURL = "shareUrl"; - private static final String KET_TITLE = "KET_TITLE"; - private static final String KET_TYPE = "KET_TYPE"; - private static final String KET_SUMMARY = "KET_SUMMARY"; - private static final String WEIBO_SCOPE = ( "email,direct_messages_read,direct_messages_write," + "friendships_groups_read,friendships_groups_write,statuses_to_me_read," @@ -261,7 +255,7 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { public void onComplete() { Utils.toast(this, R.string.share_success_hint); if ("NORMAL".equals(mShareStyle)) { - LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "success", + com.gh.gamecenter.common.utils.LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "success", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); EventBus.getDefault().post(new EBShare(ShareUtils.shareEntrance)); EnergyTaskHelper.postEnergyTaskForShare(ShareUtils.shareEntrance.getName(), ShareUtils.resourceId, ShareUtils.shareEntity.getShareUrl()); @@ -271,9 +265,9 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.communityArticle || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.video) { - NewLogUtils.logShareResult(ShareUtils.additionalParams, true); + com.gh.gamecenter.common.utils.NewLogUtils.logShareResult(ShareUtils.additionalParams, true); } else if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.gameCollection) { - NewLogUtils.logViewOrClickGameCollectionDetail( + com.gh.gamecenter.common.utils.NewLogUtils.logViewOrClickGameCollectionDetail( "click_game_collect_detail_favorite_success", ShareUtils.shareEntity.getShareTitle(), ShareUtils.resourceId, @@ -290,7 +284,7 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { public void onError(UiError uiError) { Utils.toast(this, R.string.share_fail_hint); if ("NORMAL".equals(mShareStyle)) { - LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "fail", + com.gh.gamecenter.common.utils.LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "fail", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.inviteFriends) { IntegralLogHelper.INSTANCE.logInviteResult("失败", "微博"); @@ -298,7 +292,7 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.communityArticle || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.video) { - NewLogUtils.logShareResult(ShareUtils.additionalParams, false); + com.gh.gamecenter.common.utils.NewLogUtils.logShareResult(ShareUtils.additionalParams, false); } } else { IntegralLogHelper.INSTANCE.logInviteResult("失败", "微博"); @@ -310,7 +304,7 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { public void onCancel() { Utils.toast(this, R.string.share_cancel_hint); if ("NORMAL".equals(mShareStyle)) { - LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "cancel", + com.gh.gamecenter.common.utils.LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "cancel", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.inviteFriends) { IntegralLogHelper.INSTANCE.logInviteResult("取消", "微博"); @@ -318,7 +312,7 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.communityArticle || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.video) { - NewLogUtils.logShareResult(ShareUtils.additionalParams, false); + com.gh.gamecenter.common.utils.NewLogUtils.logShareResult(ShareUtils.additionalParams, false); } } else { IntegralLogHelper.INSTANCE.logInviteResult("取消", "微博"); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java index 36d8ebab21..5e8c922082 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CleanApkAdapter.java @@ -15,16 +15,16 @@ import android.widget.TextView; import androidx.collection.ArrayMap; import androidx.core.content.ContextCompat; -import com.gh.common.util.BitmapUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.utils.BitmapUtils; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.common.util.TimeUtils; +import com.gh.gamecenter.core.utils.TimeUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.KcSelectGameViewHolder; import com.gh.gamecenter.databinding.KcGameSelectItemBinding; import com.gh.gamecenter.entity.InstallGameEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.RuntimeUtils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java index 920b355b8e..edc67d0f5a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/CommentDetailAdapter.java @@ -8,20 +8,20 @@ import android.view.ViewGroup; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import com.gh.common.constant.ItemViewType; +import com.gh.gamecenter.common.constant.ItemViewType; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.CommentUtils; import com.gh.common.util.DialogUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.TextHelper; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.common.utils.TextHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.CommentViewHolder; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.entity.ArticleCommentParent; import com.gh.gamecenter.entity.CommentEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java index ab0d87d11a..67e847a527 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/GameNewsAdapter.java @@ -14,11 +14,11 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.gh.common.constant.Config; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.common.util.NewsUtils; -import com.gh.common.util.StringUtils; -import com.gh.common.util.TextHelper; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.common.utils.TextHelper; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.NewsSearchActivity; import com.gh.gamecenter.R; @@ -30,7 +30,7 @@ import com.gh.gamecenter.databinding.GameNewsSearchItemBinding; import com.gh.gamecenter.databinding.GameNewsTypeItemBinding; import com.gh.gamecenter.databinding.NewsTextItemBinding; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java index f3e83703e4..b23b0e7985 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java @@ -12,16 +12,16 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.common.exposure.ExposureEntity; +import com.gh.gamecenter.common.entity.ExposureEntity; import com.gh.common.exposure.ExposureEvent; import com.gh.common.exposure.ExposureSource; import com.gh.common.exposure.ExposureType; import com.gh.common.util.DataLogUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.PageSwitchDataHelper; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.PageSwitchDataHelper; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.GameEntity; @@ -33,8 +33,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import kotlin.Pair; - /** * ImagePagerAdapter * diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java index 6c2a2f7af6..3728115e5b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java @@ -17,15 +17,15 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import com.gh.base.OnRequestCallBackListener; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.ExtraTagHandler; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.ExtraTagHandler; import com.gh.common.util.LibaoUtils; -import com.gh.common.util.PicassoImageGetter; +import com.gh.gamecenter.common.utils.PicassoImageGetter; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.SpanBuilder; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.SpanBuilder; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.common.view.DownloadProgressBar; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; @@ -41,7 +41,7 @@ import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.MeEntity; import com.gh.gamecenter.entity.UserDataLibaoEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.suggest.SuggestType; import com.lightgame.adapter.BaseRecyclerAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index 90bf213c8e..20135677ed 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -17,16 +17,16 @@ import com.gh.common.util.ConcernContentUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DialogUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.NewsUtils; -import com.gh.common.util.NumberUtils; -import com.gh.common.util.StringUtils; -import com.gh.common.util.TextHelper; -import com.gh.common.util.TimestampUtils; +import com.gh.gamecenter.core.utils.NumberUtils; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.common.utils.TextHelper; +import com.gh.gamecenter.common.utils.TimestampUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.ShareCardActivity; @@ -42,9 +42,9 @@ import com.gh.gamecenter.entity.ArticleCommentParent; import com.gh.gamecenter.entity.CommentEntity; import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.manager.VisitManager; -import com.gh.gamecenter.retrofit.JSONObjectResponse; -import com.gh.gamecenter.retrofit.OkHttpCache; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.OkHttpCache; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; @@ -307,8 +307,8 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { , StringUtils.buildString(mEntrance, "+(消息详情)"))); } else { Intent intent = new Intent(mContext, NewsDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_NEWSID, mConcernEntity.getId()); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情)")); + intent.putExtra(EntranceConsts.KEY_NEWSID, mConcernEntity.getId()); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情)")); mContext.startActivity(intent); } }); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ReportReasonAdapter.kt b/app/src/main/java/com/gh/gamecenter/adapter/ReportReasonAdapter.kt index cab6368e17..8ee3c5fcd4 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ReportReasonAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/ReportReasonAdapter.kt @@ -4,7 +4,7 @@ import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.goneIf +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.databinding.ItemReportReasonBinding import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java index 3932b38590..d411f2544a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectTypeAdapter.java @@ -13,7 +13,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.lightgame.adapter.BaseRecyclerAdapter; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.SubjectTypeAdapter.GameTypeViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java index 3a7015f9f4..6f50c533cc 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/ToolBoxRvAdapter.java @@ -5,10 +5,10 @@ import android.content.Intent; import android.view.View; import android.view.ViewGroup; -import com.gh.base.OnRequestCallBackListener; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; @@ -18,7 +18,7 @@ import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; import com.gh.gamecenter.databinding.ToolboxItemBinding; import com.gh.gamecenter.entity.ToolBoxEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.suggest.SuggestType; import com.lightgame.adapter.BaseRecyclerAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java index 33c364164a..7488b3065b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/VoteAdapter.java @@ -8,10 +8,10 @@ import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; -import com.gh.base.OnRequestCallBackListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; import com.gh.common.util.DirectUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; @@ -84,7 +84,7 @@ public class VoteAdapter extends ListAdapter { } } else { LinkEntity link = versionVoteEntity.getLink(); - if (EntranceUtils.HOST_GAME.equals(link.getType())) { + if (EntranceConsts.HOST_GAME.equals(link.getType())) { viewHolder.binding.voteItemBtn.setText(R.string.download); } else { viewHolder.binding.voteItemBtn.setText(R.string.libao_check); @@ -126,10 +126,10 @@ public class VoteAdapter extends ListAdapter { LinkEntity link = versionVoteEntity.getLink(); String entrance = "(游戏求版本)"; switch (link.getType() == null ? "" : link.getType()) { - case EntranceUtils.HOST_GAME: + case EntranceConsts.HOST_GAME: GameDetailActivity.startGameDetailActivity(mContext, link.getLink(), entrance, -1, false, false, false, true, null); break; - case EntranceUtils.HOST_ARTICLE: + case EntranceConsts.HOST_ARTICLE: mContext.startActivity(NewsDetailActivity.getIntentById(mContext, link.getLink(), entrance)); break; default: diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AreaViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AreaViewHolder.java index a876d4a42e..113e217a03 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AreaViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AreaViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.AreaItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AskTabItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AskTabItemViewHolder.java index 9f328308ea..4acaa1bbd0 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AskTabItemViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/AskTabItemViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.AskOrderTabItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java index e2070a9e9f..29baf44c36 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentHeadViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.CommentHeadItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java index ec964b9a17..0ac3a17ff6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/CommentViewHolder.java @@ -8,7 +8,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.R; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java index 0ef452837e..dc0a131967 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ConcernViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.ConcernItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java index eb4aa5d7c4..792fe96c0d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java @@ -9,7 +9,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentActivity; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.dialog.CertificationDialog; import com.gh.common.dialog.DeviceRemindDialog; import com.gh.common.dialog.GameOffServiceDialogFragment; @@ -22,18 +22,18 @@ import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DataLogUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DetailDownloadUtils; -import com.gh.common.util.DialogHelper; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.common.util.DialogUtils; import com.gh.common.util.DownloadDialogHelper; import com.gh.common.util.EnergyTaskHelper; import com.gh.common.util.LogUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.common.util.PermissionHelper; +import com.gh.gamecenter.common.utils.PermissionHelper; import com.gh.common.util.RealNameHelper; import com.gh.common.util.ReservationHelper; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.common.view.DownloadProgressBar; import com.gh.download.DownloadManager; import com.gh.download.dialog.DownloadDialog; @@ -236,7 +236,6 @@ public class DetailViewHolder { return; } - DataUtils.onGameLaunchEvent(mViewHolder.context, mGameEntity.getName(), mGameEntity.getApk().get(0).getPlatform(), mName); PackageUtils.launchApplicationByPackageName(mViewHolder.context, mGameEntity.getApk().get(0).getPackageName()); } else { GamePermissionDialogFragment.show((AppCompatActivity) mViewHolder.context, mGameEntity, mGameEntity.getInfo(), () -> { @@ -371,12 +370,6 @@ public class DetailViewHolder { ApkEntity apkEntity = mGameEntity.getApk().get(0); String msg = FileUtils.isCanDownload(mViewHolder.context, apkEntity.getSize()); if (TextUtils.isEmpty(msg)) { - DataUtils.onGameDownloadEvent(mViewHolder.context, mGameEntity.getName(), - apkEntity.getPlatform(), - StringUtils.buildString(mEntrance, "+(", mName, "[", mTitle, "])"), - "下载开始", - method); - DownloadManager.createDownload(mViewHolder.context, apkEntity, mGameEntity, diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java index 036588a7ac..8edb5bb97a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DownloadHeadViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.DownloadmanagerItemHeadBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java index 2bcab214b0..ee84f90e7d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/FooterViewHolder.java @@ -7,8 +7,8 @@ import android.widget.TextView; import androidx.annotation.StringRes; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListViewModel; import com.gh.gamecenter.baselist.LoadType; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameCollectionItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameCollectionItemViewHolder.kt index 24ebf431eb..d395a20fef 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameCollectionItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameCollectionItemViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.GameCollectionItemBinding class GameCollectionItemViewHolder(var binding: GameCollectionItemBinding) : BaseRecyclerViewHolder(binding.root) diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java index 0634b687df..28590ad905 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailCalenderViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.GamedetailCalendarItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java index 6eb6833649..79959b4adb 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNewsViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.GamedetailItemNewsBinding; import com.gh.gamecenter.entity.GameDetailEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java index ad5c876969..1c0e230a0c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDetailNoticeViewHolder.java @@ -1,7 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.GamedetailItemNoticeBinding; import com.gh.gamecenter.entity.GameDetailEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java index 230c0d9a84..a48247480c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.FmDownloadmanagerItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt index 8c47c2bf6a..05b9b4e86b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt @@ -2,9 +2,9 @@ package com.gh.gamecenter.adapter.viewholder import android.view.View import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.dip2px -import com.gh.common.util.toColor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameHeadItemBinding import com.gh.gamecenter.entity.SubjectEntity diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.kt index d66ebe17d0..f4eb909cb1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameImageViewHolder.kt @@ -1,11 +1,11 @@ package com.gh.gamecenter.adapter.viewholder import com.facebook.drawee.generic.RoundingParams -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.databind.BindingAdapters -import com.gh.common.util.DisplayUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.goneIf +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameImageItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java index 66cc318f00..5581386d11 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsSearchViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.GameNewsSearchItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java index 67610ea4e7..f5bbfd54b3 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeListViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.GameNewsTypeItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java index a99fa46b00..3953127b6a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNewsTypeViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.GameNewsTypeListItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java index a2f8b786b5..e823f48354 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.FmUpdateItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java index f4260eec92..19f5fbdf86 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java @@ -9,7 +9,7 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.common.view.DrawableView; +import com.gh.gamecenter.common.view.DrawableView; import com.gh.common.view.GameIconView; import com.gh.gamecenter.databinding.GameItemBinding; import com.gh.gamecenter.entity.ColorEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java index cf749c18e5..b26e0684a5 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewPagerViewHolder.java @@ -3,7 +3,7 @@ package com.gh.gamecenter.adapter.viewholder; import android.view.ViewGroup; import android.widget.FrameLayout; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.GameViewpagerItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java index 41f2a129b6..d38d60ce73 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/KcSelectGameViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.KcGameSelectItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java index 9eefab7b98..88edc71e17 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LiBaoCodeViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.LibaoCodeItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailContentViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailContentViewHolder.java index 940cf01c65..d76d674fb2 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailContentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailContentViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.LibaodetailItemContentBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java index 5686faa5c4..061b61e4ff 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.LibaodetailItemTopBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java index 0ba24e4d30..17373990ee 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.LibaoItemBinding; import com.gh.gamecenter.entity.LibaoEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ListSectionItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ListSectionItemViewHolder.kt index a855da9882..3ccfbd0e3c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ListSectionItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ListSectionItemViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.ListSectionItemBinding class ListSectionItemViewHolder(val binding: ListSectionItemBinding) : BaseRecyclerViewHolder(binding.root) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java index f62b0c1598..c9416b5220 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailCommentListViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.NewsDetailCommentBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailGameViewHolder.java index 286e8add9e..b2a1adf8b6 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailGameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDetailGameViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.NewsdetailItemGameBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java index a5c71e4163..26a86065cf 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.NewsDigestItemBinding; import com.gh.gamecenter.entity.ConcernEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java index f889669944..7e6304b642 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsFooterViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.NewsFooterItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java index 32af142c9e..44b69b3ecb 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage1ViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.NewsImage1ItemBinding; import com.gh.gamecenter.entity.NewsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java index 3b08cc4d0a..129b6d5da8 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage2ViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.NewsImage2ItemBinding; import com.gh.gamecenter.entity.NewsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java index a93d563557..0eff73f6f1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsImage3ViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.NewsImage3ItemBinding; import com.gh.gamecenter.entity.NewsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java index 5622ee4575..3fce23ff3b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsTextViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.NewsTextItemBinding; import com.gh.gamecenter.entity.NewsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java index e370ca6a9d..40815ed094 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ReuseViewHolder.java @@ -2,8 +2,8 @@ package com.gh.gamecenter.adapter.viewholder; import android.view.View; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; /** * Created by LGT on 2016/8/12. diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java index f25ccdf573..28b60d30b1 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/SearchHistoryViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.FmSearchHistoryItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java index 347fa07bb1..4abccf9560 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/StrategyDialogViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.DialogStrategyItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java index 6220018c67..889b4f7ed4 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ToolBoxViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.ToolboxItemBinding; import com.gh.gamecenter.entity.ToolBoxEntity; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ViewHolder.kt index e54127a06b..a56e7dd830 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/ViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.* class SearchGameFooterViewHolder(val binding: SearchGameFooterBinding) : BaseRecyclerViewHolder(binding.root) diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java index 5cc3fe8da0..7ee3fac1b2 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/VoteViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.adapter.viewholder; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.VoteItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt index 0bdd6f1f95..63272ce88e 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwayActivity.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.amway import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.R /** diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt index 14c775a761..6f9a566314 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt @@ -7,15 +7,21 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.airbnb.lottie.LottieAnimationView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.AmwayCommentItemBinding import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.game.GameAndPosition @@ -208,6 +214,7 @@ class AmwayAdapter( binding.gameContainer.setOnClickListener { GameDetailActivity.startGameDetailActivity(binding.root.context, amway.game.id, "${viewModel.entrance}+(安利墙)", itemData.exposureEvent) MtaHelper.onEvent("安利墙", "点击", "评论${blockPosition}_${amway.game.name}_游戏") + NewLogUtils.logShareWallSquareCardClick(amway.game.name ?: "", amway.game.id, "游戏信息") } binding.gameIconView.displayGameIcon( @@ -228,14 +235,16 @@ class AmwayAdapter( binding.commentContainer.setOnClickListener { val intent = RatingReplyActivity.getIntent( context, amway.game.id, amway.comment, false, viewModel.entrance - ?: "", EntranceUtils.ENTRANCE_AMWAY + ?: "", EntranceConsts.ENTRANCE_AMWAY ) SyncDataBetweenPageHelper.startActivityForResult(binding.root.context, intent, RatingFragment.RATING_REPLAY_REQUEST, adapterPosition) MtaHelper.onEvent("安利墙", "点击", "评论${blockPosition}_${amway.game.name}_评论") + NewLogUtils.logShareWallSquareCardClick(amway.game.name ?: "", amway.game.id, "评论内容") } binding.userClickableView.setOnClickListener { - DirectUtils.directToHomeActivity(context, amway.comment.user.id, viewModel.entrance, EntranceUtils.ENTRANCE_AMWAY) + DirectUtils.directToHomeActivity(context, amway.comment.user.id, viewModel.entrance, EntranceConsts.ENTRANCE_AMWAY) + NewLogUtils.logShareWallSquareCardClick(amway.game.name ?: "", amway.game.id, "用户信息") } if (amway.comment.me.isVoted) { @@ -266,11 +275,13 @@ class AmwayAdapter( ImageUtils.display(binding.sdvUserBadge, amway.comment.user.badge?.icon) binding.sdvUserBadge.goneIf(amway.comment.user.badge == null) binding.sdvUserBadge.setOnClickListener { - DialogUtils.showViewBadgeDialog(context, amway.comment.user.badge) { - MtaHelper.onEvent("进入徽章墙_用户记录", "安利墙", "${amway.comment.user.name}(${amway.comment.user.id})") - MtaHelper.onEvent("徽章中心", "进入徽章中心", "安利墙") - DirectUtils.directToBadgeWall(context, amway.comment.user.id, amway.comment.user.name, amway.comment.user.icon) - } + DialogUtils.showViewBadgeDialog(context, amway.comment.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("进入徽章墙_用户记录", "安利墙", "${amway.comment.user.name}(${amway.comment.user.id})") + MtaHelper.onEvent("徽章中心", "进入徽章中心", "安利墙") + DirectUtils.directToBadgeWall(context, amway.comment.user.id, amway.comment.user.name, amway.comment.user.icon) + } + }) } } diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwayFragment.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwayFragment.kt index 10dc0aadda..aec7be1fa3 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwayFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwayFragment.kt @@ -9,11 +9,12 @@ import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.TimeElapsedHelper +import com.gh.gamecenter.core.utils.TimeElapsedHelper import com.gh.common.exposure.ExposureListener import com.gh.common.exposure.ExposureSource import com.gh.common.util.* -import com.gh.common.view.VerticalItemDecoration +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager @@ -21,6 +22,9 @@ import com.gh.gamecenter.R import com.gh.gamecenter.amway.search.AmwaySearchActivity import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentAmwayAlBinding import com.gh.gamecenter.databinding.FragmentAmwayBinding import com.gh.gamecenter.entity.RatingComment @@ -63,7 +67,7 @@ class AmwayFragment : LazyListFragment() { } override fun onCreate(savedInstanceState: Bundle?) { - mUseAlternativeLayout = arguments?.getBoolean(EntranceUtils.KEY_IS_HOME, false) ?: false + mUseAlternativeLayout = arguments?.getBoolean(EntranceConsts.KEY_IS_HOME, false) ?: false super.onCreate(savedInstanceState) } @@ -76,7 +80,7 @@ class AmwayFragment : LazyListFragment() { override fun onFragmentFirstVisible() { super.onFragmentFirstVisible() - mViewModel.fixedTopAmwayId = arguments?.getString(EntranceUtils.KEY_ID) + mViewModel.fixedTopAmwayId = arguments?.getString(EntranceConsts.KEY_ID) mViewModel.initData() mViewModel.entrance = mEntrance } @@ -125,12 +129,13 @@ class AmwayFragment : LazyListFragment() { return mViewModel } - override fun getItemDecoration() = VerticalItemDecoration(context, 12F, false).apply { mItemDecoration = this } + override fun getItemDecoration() = VerticalItemDecoration(context, 12F, false) + .apply { mItemDecoration = this } override fun provideListAdapter(): ListAdapter<*> { if (mAdapter == null) { val basicExposureSource = arrayListOf().apply { - arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE)?.let { + arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE)?.let { add(it) } add(ExposureSource("安利墙", "")) diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwaySuccessFragment.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwaySuccessFragment.kt index 0789945051..32661a3dd7 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwaySuccessFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwaySuccessFragment.kt @@ -2,15 +2,15 @@ package com.gh.gamecenter.amway import android.os.Bundle import android.view.View -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.databinding.FragmentAmwaySuccessBinding import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment -class AmwaySuccessFragment : NormalFragment() { +class AmwaySuccessFragment : ToolbarFragment() { private var mGameEntity: GameEntity? = null private val mBinding: FragmentAmwaySuccessBinding by lazy { FragmentAmwaySuccessBinding.inflate(layoutInflater) } @@ -18,7 +18,7 @@ class AmwaySuccessFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mGameEntity = arguments?.get(EntranceUtils.KEY_DATA) as GameEntity? + mGameEntity = arguments?.get(EntranceConsts.KEY_DATA) as GameEntity? } override fun getLayoutId() = 0 diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwayViewModel.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwayViewModel.kt index 736ebdad76..faa97c4101 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwayViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwayViewModel.kt @@ -7,14 +7,15 @@ import com.gh.download.DownloadManager import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.entity.AmwayCommentEntity import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.entity.SubjectEntity import com.gh.gamecenter.home.LegacyHomeItemData import com.gh.gamecenter.home.LegacyHomeSubjectTransformer -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable @@ -102,7 +103,7 @@ class AmwayViewModel(application: Application) : ListViewModel>() { override fun onSuccess(data: List) { // 为从启动弹窗跳转过来的 gameEntity 附上启动弹窗的相关数据供曝光数据使用 (草) - if (entrance == EntranceUtils.ENTRANCE_WELCOME) { + if (entrance == EntranceConsts.ENTRANCE_WELCOME) { for (subject in data) { subject.data?.let { for (game in it) { @@ -193,7 +194,7 @@ class AmwayViewModel(application: Application) : ListViewModel(context: Context) : diff --git a/app/src/main/java/com/gh/gamecenter/baselist/LazyListFragment.java b/app/src/main/java/com/gh/gamecenter/baselist/LazyListFragment.java index aa11083c2c..37f305efa5 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/LazyListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/LazyListFragment.java @@ -15,10 +15,10 @@ import androidx.recyclerview.widget.StaggeredGridLayoutManager; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.ethanhua.skeleton.SkeletonScreen; -import com.gh.base.fragment.LazyFragment; -import com.gh.common.util.NumberUtils; -import com.gh.common.view.FixLinearLayoutManager; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.common.base.fragment.LazyFragment; +import com.gh.gamecenter.core.utils.NumberUtils; +import com.gh.gamecenter.common.view.FixLinearLayoutManager; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.halo.assistant.HaloApp; diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListActivity.java b/app/src/main/java/com/gh/gamecenter/baselist/ListActivity.java index eb940d47e4..9f6e955957 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListActivity.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListActivity.java @@ -14,10 +14,10 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.StaggeredGridLayoutManager; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.gh.base.ToolBarActivity; -import com.gh.common.util.NumberUtils; -import com.gh.common.view.FixLinearLayoutManager; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.core.utils.NumberUtils; +import com.gh.gamecenter.common.view.FixLinearLayoutManager; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.halo.assistant.HaloApp; diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java b/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java index d2140c0f1b..9e65c7ab71 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java @@ -2,9 +2,8 @@ package com.gh.gamecenter.baselist; import android.annotation.SuppressLint; import android.content.Context; -import android.os.AsyncTask; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.lightgame.adapter.BaseRecyclerAdapter; import java.util.ArrayList; diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListExecutor.kt b/app/src/main/java/com/gh/gamecenter/baselist/ListExecutor.kt index c47ee78391..c85fdb63e6 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListExecutor.kt +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListExecutor.kt @@ -1,7 +1,7 @@ package com.gh.gamecenter.baselist -import com.gh.base.GHThreadFactory -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.GHThreadFactory +import com.gh.gamecenter.core.AppExecutor import java.util.concurrent.Executors object ListExecutor { diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java b/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java index 6e86ce4243..1651b827b8 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListFragment.java @@ -16,11 +16,11 @@ import androidx.recyclerview.widget.StaggeredGridLayoutManager; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.ethanhua.skeleton.SkeletonScreen; -import com.gh.common.util.NumberUtils; -import com.gh.common.view.FixLinearLayoutManager; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.core.utils.NumberUtils; +import com.gh.gamecenter.common.view.FixLinearLayoutManager; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import com.halo.assistant.HaloApp; import java.lang.reflect.ParameterizedType; @@ -34,7 +34,7 @@ import io.reactivex.Single; * Created by khy on 2/12/17. */ -public abstract class ListFragment extends NormalFragment implements +public abstract class ListFragment extends ToolbarFragment implements Observer>, SwipeRefreshLayout.OnRefreshListener, OnDataObservable { diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListHeadViewModel.java b/app/src/main/java/com/gh/gamecenter/baselist/ListHeadViewModel.java index 0d833aa76a..90cd88ebed 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListHeadViewModel.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListHeadViewModel.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.gh.gamecenter.mvvm.Resource; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.retrofit.service.ApiService; diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListViewModel.java b/app/src/main/java/com/gh/gamecenter/baselist/ListViewModel.java index 31924e577e..b42829b648 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListViewModel.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListViewModel.java @@ -8,13 +8,12 @@ import androidx.lifecycle.MutableLiveData; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.util.ApkActiveUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.download.DownloadManager; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.retrofit.BiResponse; -import com.gh.gamecenter.retrofit.Response; -import com.halo.assistant.HaloApp; +import com.gh.gamecenter.common.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.Response; import org.jetbrains.annotations.NotNull; @@ -121,7 +120,7 @@ public abstract class ListViewModel extends Ba game.setEntryMap(DownloadManager.getInstance().getEntryMap(game.getName())); // 当页面是由启动弹窗过来的第一或第二个页面的时候添加启动弹窗信息 - if (mEntrance.contains(EntranceUtils.ENTRANCE_WELCOME) + if (mEntrance.contains(EntranceConsts.ENTRANCE_WELCOME) && ExtensionsKt.countOccurrences(mEntrance, "+") <= 1) { game.setWelcomeDialogInfoIfAvailable(); } diff --git a/app/src/main/java/com/gh/gamecenter/catalog/BannerAdapter.kt b/app/src/main/java/com/gh/gamecenter/catalog/BannerAdapter.kt index 1d22999efc..7a89509358 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/BannerAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/BannerAdapter.kt @@ -9,10 +9,10 @@ import com.facebook.drawee.view.SimpleDraweeView import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.util.DirectUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.PageSwitchDataHelper +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.RecyclingPagerAdapter +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.entity.GameEntity class BannerAdapter( diff --git a/app/src/main/java/com/gh/gamecenter/catalog/CatalogActivity.kt b/app/src/main/java/com/gh/gamecenter/catalog/CatalogActivity.kt index cb6b2f6076..6d23b4ae2d 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/CatalogActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/CatalogActivity.kt @@ -3,13 +3,12 @@ package com.gh.gamecenter.catalog import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.base.DownloadToolbarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class CatalogActivity : NormalActivity() { +class CatalogActivity : DownloadToolbarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -35,9 +34,9 @@ class CatalogActivity : NormalActivity() { companion object { fun getIntent(context: Context, catalogId: String, catalogTitle: String, entrance: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_CATALOG_ID, catalogId) - bundle.putString(EntranceUtils.KEY_CATALOG_TITLE, catalogTitle) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_CATALOG_ID, catalogId) + bundle.putString(EntranceConsts.KEY_CATALOG_TITLE, catalogTitle) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent(context, CatalogActivity::class.java, CatalogFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/catalog/CatalogAdapter.kt b/app/src/main/java/com/gh/gamecenter/catalog/CatalogAdapter.kt index f95eb6cf22..9346c4fe23 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/CatalogAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/CatalogAdapter.kt @@ -3,10 +3,10 @@ package com.gh.gamecenter.catalog import android.content.Context import android.view.View import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.goneIf -import com.gh.common.util.toBinding -import com.gh.common.util.toColor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.CatalogItemBinding import com.gh.gamecenter.entity.CatalogEntity diff --git a/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt b/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt index dd926ca24f..3f34a4ef14 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt @@ -4,12 +4,12 @@ import android.os.Bundle import android.view.View import androidx.core.os.bundleOf import androidx.lifecycle.Observer -import com.gh.base.fragment.LazyFragment -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.util.viewModelProviderFromParent -import com.gh.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProviderFromParent +import com.gh.gamecenter.common.view.FixLinearLayoutManager import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentCatalogBinding import com.gh.gamecenter.entity.CatalogEntity @@ -29,13 +29,13 @@ class CatalogFragment : LazyFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) savedInstanceState?.run { - mLastSelectedPosition = getInt(EntranceUtils.KEY_LAST_SELECTED_POSITION) + mLastSelectedPosition = getInt(EntranceConsts.KEY_LAST_SELECTED_POSITION) } } override fun onSaveInstanceState(outState: Bundle) { mViewModel?.run { - outState.putInt(EntranceUtils.KEY_LAST_SELECTED_POSITION, selectedCatalogPosition) + outState.putInt(EntranceConsts.KEY_LAST_SELECTED_POSITION, selectedCatalogPosition) } super.onSaveInstanceState(outState) } @@ -47,12 +47,12 @@ class CatalogFragment : LazyFragment() { } override fun onFragmentFirstVisible() { - mCatalogId = arguments?.getString(EntranceUtils.KEY_CATALOG_ID) ?: "" - mCatalogTitle = arguments?.getString(EntranceUtils.KEY_CATALOG_TITLE) ?: "" + mCatalogId = arguments?.getString(EntranceConsts.KEY_CATALOG_ID) ?: "" + mCatalogTitle = arguments?.getString(EntranceConsts.KEY_CATALOG_TITLE) ?: "" mViewModel = viewModelProviderFromParent(CatalogViewModel.Factory(mCatalogId, mCatalogTitle), mCatalogId) mViewModel?.validEntranceName = if (mEntrance.contains("首页")) "首页" else "板块" - if (arguments?.getBoolean(EntranceUtils.KEY_IS_HOME) == true) { + if (arguments?.getBoolean(EntranceConsts.KEY_IS_HOME) == true) { mViewModel?.validEntranceName = "首页Tab栏" } mViewModel?.logAppearance() @@ -96,7 +96,7 @@ class CatalogFragment : LazyFragment() { }) // 嵌入在首页时特殊处理 - if (arguments?.getBoolean(EntranceUtils.KEY_IS_HOME) == true) { + if (arguments?.getBoolean(EntranceConsts.KEY_IS_HOME) == true) { mBinding?.divider?.visibility = View.GONE mBinding?.root?.setBackgroundColor(R.color.background_white.toColor(requireContext())) mBinding?.root?.setPadding(0, 8F.dip2px(), 0, 0) @@ -122,19 +122,20 @@ class CatalogFragment : LazyFragment() { mSpecialCatalogFragment = childFragmentManager.findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_IS_CATEGORY_V2 to false, - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_CATALOG_TITLE to mCatalogTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE) + EntranceConsts.KEY_IS_CATEGORY_V2 to false, + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_CATALOG_TITLE to mCatalogTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable( + EntranceConsts.KEY_EXPOSURE_SOURCE) ) childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSpecialCatalogFragment!!, SpecialCatalogFragment::class.java.simpleName).commitAllowingStateLoss() } else { mSubCatalogFragment = childFragmentManager.findFragmentByTag(SubCatalogFragment::class.java.simpleName) as? SubCatalogFragment ?: SubCatalogFragment() mSubCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_PRIMARY_CATALOG_ID to subCatalog[selectedCatalogPosition].id, - EntranceUtils.KEY_CATALOG_TITLE to mCatalogTitle + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_PRIMARY_CATALOG_ID to subCatalog[selectedCatalogPosition].id, + EntranceConsts.KEY_CATALOG_TITLE to mCatalogTitle ) childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSubCatalogFragment!!, SubCatalogFragment::class.java.simpleName).commitAllowingStateLoss() } @@ -151,9 +152,9 @@ class CatalogFragment : LazyFragment() { mSubCatalogFragment = childFragmentManager.findFragmentByTag(SubCatalogFragment::class.java.simpleName) as? SubCatalogFragment ?: SubCatalogFragment() mSubCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_PRIMARY_CATALOG_ID to subCatalog[position].id, - EntranceUtils.KEY_CATALOG_TITLE to mCatalogTitle + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_PRIMARY_CATALOG_ID to subCatalog[position].id, + EntranceConsts.KEY_CATALOG_TITLE to mCatalogTitle ) childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSubCatalogFragment!!, SubCatalogFragment::class.java.simpleName).commitAllowingStateLoss() } else { @@ -161,18 +162,19 @@ class CatalogFragment : LazyFragment() { mSpecialCatalogFragment = childFragmentManager.findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_IS_CATEGORY_V2 to false, - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_CATALOG_TITLE to mCatalogTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE) + EntranceConsts.KEY_IS_CATEGORY_V2 to false, + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_CATALOG_TITLE to mCatalogTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable( + EntranceConsts.KEY_EXPOSURE_SOURCE) ) childFragmentManager.beginTransaction().replace(R.id.container_sub_catalog, mSpecialCatalogFragment!!, SpecialCatalogFragment::class.java.simpleName).commitAllowingStateLoss() } else { if (mSubCatalogFragment?.isStateSaved == false) { mSubCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_PRIMARY_CATALOG_ID to subCatalog[position].id, - EntranceUtils.KEY_CATALOG_TITLE to mCatalogTitle + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_PRIMARY_CATALOG_ID to subCatalog[position].id, + EntranceConsts.KEY_CATALOG_TITLE to mCatalogTitle ) } mSubCatalogFragment?.changeSubCatalog(subCatalog[position].id) @@ -181,9 +183,9 @@ class CatalogFragment : LazyFragment() { } else { if (mSubCatalogFragment?.isStateSaved == false) { mSubCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_PRIMARY_CATALOG_ID to subCatalog[position].id, - EntranceUtils.KEY_CATALOG_TITLE to mCatalogTitle + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_PRIMARY_CATALOG_ID to subCatalog[position].id, + EntranceConsts.KEY_CATALOG_TITLE to mCatalogTitle ) } mSubCatalogFragment?.changeSubCatalog(subCatalog[position].id) diff --git a/app/src/main/java/com/gh/gamecenter/catalog/CatalogViewModel.kt b/app/src/main/java/com/gh/gamecenter/catalog/CatalogViewModel.kt index 154b97e34e..2d64321288 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/CatalogViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/CatalogViewModel.kt @@ -8,7 +8,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.common.util.LogUtils import com.gh.gamecenter.entity.CatalogEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListActivity.kt b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListActivity.kt index 07b294eb79..a18c525148 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListActivity.kt @@ -3,14 +3,13 @@ package com.gh.gamecenter.catalog import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.base.DownloadToolbarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.entity.CatalogEntity -class NewCatalogListActivity : NormalActivity() { +class NewCatalogListActivity : DownloadToolbarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -37,12 +36,12 @@ class NewCatalogListActivity : NormalActivity() { catalog: CatalogEntity, initTitle: String): Intent { val bundle = Bundle() - bundle.putParcelable(EntranceUtils.KEY_DATA, catalog) - bundle.putString(EntranceUtils.KEY_PRIMARY_CATALOG_ID, primaryCatalogId) - bundle.putString(EntranceUtils.KEY_PRIMARY_CATALOG_NAME, primaryCatalogName) - bundle.putString(EntranceUtils.KEY_NAME, catalog.name) - bundle.putString(EntranceUtils.KEY_CATALOG_TITLE, catalogTitle) - bundle.putString(EntranceUtils.KEY_CATALOG_INIT_TITLE, initTitle) + bundle.putParcelable(EntranceConsts.KEY_DATA, catalog) + bundle.putString(EntranceConsts.KEY_PRIMARY_CATALOG_ID, primaryCatalogId) + bundle.putString(EntranceConsts.KEY_PRIMARY_CATALOG_NAME, primaryCatalogName) + bundle.putString(EntranceConsts.KEY_NAME, catalog.name) + bundle.putString(EntranceConsts.KEY_CATALOG_TITLE, catalogTitle) + bundle.putString(EntranceConsts.KEY_CATALOG_INIT_TITLE, initTitle) return getTargetIntent(context, NewCatalogListActivity::class.java, NewCatalogListFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListAdapter.kt b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListAdapter.kt index 69c2d417aa..6e1f3e118b 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListAdapter.kt @@ -4,7 +4,7 @@ import android.content.Context import android.util.SparseArray import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureType @@ -15,6 +15,9 @@ import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.game.GameItemViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListFragment.kt b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListFragment.kt index 20b46e6d42..979389be63 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListFragment.kt @@ -3,16 +3,20 @@ package com.gh.gamecenter.catalog import android.os.Bundle import android.view.View import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.exposure.ExposureSource -import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.common.view.CatalogFilterView import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.FragmentCatalogListBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBDownloadStatus @@ -62,15 +66,15 @@ class NewCatalogListFragment : ListFragment override fun onCreate(savedInstanceState: Bundle?) { mViewModel = provideListViewModel() - mViewModel.title = arguments?.getString(EntranceUtils.KEY_NAME) ?: "" - mViewModel.categoryTitle = arguments?.getString(EntranceUtils.KEY_CATALOG_TITLE) ?: "" - mEntrance = arguments?.getString(EntranceUtils.KEY_ENTRANCE) ?: Constants.ENTRANCE_UNKNOWN - mPrimeCatalog = arguments?.getParcelable(EntranceUtils.KEY_DATA) + mViewModel.title = arguments?.getString(EntranceConsts.KEY_NAME) ?: "" + mViewModel.categoryTitle = arguments?.getString(EntranceConsts.KEY_CATALOG_TITLE) ?: "" + mEntrance = arguments?.getString(EntranceConsts.KEY_ENTRANCE) ?: Constants.ENTRANCE_UNKNOWN + mPrimeCatalog = arguments?.getParcelable(EntranceConsts.KEY_DATA) mSubCatalogList = mPrimeCatalog?.subCatalog as? ArrayList ?: arrayListOf() - mInitCatalogName = arguments?.getString(EntranceUtils.KEY_CATALOG_INIT_TITLE) ?: "" - mPrimaryCatalogName = arguments?.getString(EntranceUtils.KEY_PRIMARY_CATALOG_NAME) ?: "" - mPrimaryCatalogId = arguments?.getString(EntranceUtils.KEY_PRIMARY_CATALOG_ID) ?: "" + mInitCatalogName = arguments?.getString(EntranceConsts.KEY_CATALOG_INIT_TITLE) ?: "" + mPrimaryCatalogName = arguments?.getString(EntranceConsts.KEY_PRIMARY_CATALOG_NAME) ?: "" + mPrimaryCatalogId = arguments?.getString(EntranceConsts.KEY_PRIMARY_CATALOG_ID) ?: "" mViewModel.selectedCatalog = mSubCatalogList.find { entity -> entity.name == mInitCatalogName } ?: CatalogEntity.SubCatalogEntity() @@ -190,9 +194,10 @@ class NewCatalogListFragment : ListFragment override fun onNightModeChange() { super.onNightModeChange() - mBinding?.run { - filterContainer.setRootBackgroundColor(R.color.background_white.toColor(requireContext())) - filterContainer.setItemTextColor(R.color.text_subtitle.toColor(requireContext())) + mBinding?.filterContainer?.run { + setRootBackgroundColor(R.color.background_white.toColor(requireContext())) + setItemTextColor(R.color.text_subtitle.toColor(requireContext())) + updatePopupWindow() } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListViewModel.kt b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListViewModel.kt index a9bf98689d..08b3ab6212 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListViewModel.kt @@ -2,9 +2,9 @@ package com.gh.gamecenter.catalog import android.app.Application import androidx.lifecycle.MutableLiveData -import com.gh.common.exposure.ExposureEntity +import com.gh.gamecenter.common.entity.ExposureEntity import com.gh.common.exposure.ExposureUtils -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.common.view.CatalogFilterView import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.CatalogEntity diff --git a/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogAdapter.kt b/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogAdapter.kt index ab283d8e45..c317aee1cb 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogAdapter.kt @@ -11,8 +11,8 @@ import android.widget.LinearLayout import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable @@ -20,6 +20,8 @@ import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.databinding.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.subject.SubjectActivity.Companion.startSubjectActivity @@ -164,6 +166,8 @@ class SpecialCatalogAdapter( val specialLink = entity.link holder.binding.run { headTitle.text = specialLink.text + headTitle.setTextColor(R.color.text_title.toColor(mContext)) + headMore.setTextColor(R.color.theme_font.toColor(mContext)) headMore.setOnClickListener { if (entity.type == "专题合集") { DirectUtils.directToColumnCollection( diff --git a/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogFragment.kt b/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogFragment.kt index d8edb2d7e0..20093e678d 100644 --- a/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogFragment.kt @@ -3,12 +3,13 @@ package com.gh.gamecenter.catalog import android.os.Bundle import android.view.View import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener -import com.gh.common.util.EntranceUtils -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.FragmentListBaseSkeletonBinding class SpecialCatalogFragment : ListFragment() { @@ -31,7 +32,7 @@ class SpecialCatalogFragment : ListFragment + + mIsCategoryV2 = arguments?.getBoolean(EntranceConsts.KEY_IS_CATEGORY_V2) ?: false + mCatalogId = arguments?.getString(EntranceConsts.KEY_CATALOG_ID) ?: "" + mCatalogTitle = arguments?.getString(EntranceConsts.KEY_CATALOG_TITLE) ?: "" + mLastPageDataMap = arguments?.getSerializable(EntranceConsts.KEY_LAST_PAGE_DATA) as? HashMap super.onCreate(savedInstanceState) @@ -91,4 +93,13 @@ class SpecialCatalogFragment : ListFragment { val category = mEntityList[position] holder.binding.run { + divider.setBackgroundColor(R.color.background.toColor(mContext)) containerPrimaryCategory.setOnClickListener { - IntentUtils.startCategoryListActivity(root.context, categoryTitle, category) + root.context.startActivity(getIntent(root.context, categoryTitle, category, "全部")) } ImageUtils.display(iconIv, category.icon) categoryName.text = category.name diff --git a/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt b/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt index 686d9c8903..74e69f6c46 100644 --- a/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt @@ -4,10 +4,10 @@ import android.graphics.Color import android.view.View import androidx.lifecycle.ViewModelProviders import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants -import com.gh.common.util.EntranceUtils -import com.gh.common.util.toColor -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.databinding.FragmentListBaseSkeletonBinding @@ -28,15 +28,15 @@ class CategoryDirectoryFragment : LazyListFragment ?: arrayListOf() - val initSelectedCategory = arguments?.getString(EntranceUtils.KEY_CATEGORY_INIT_TITLE) + val initSelectedCategory = arguments?.getString(EntranceConsts.KEY_CATEGORY_INIT_TITLE) mViewModel.selectedCategory = mSubCategoryList.find { categoryEntity -> categoryEntity.name == initSelectedCategory } ?: CategoryEntity() @@ -70,7 +75,7 @@ class NewCategoryListFragment : ListFragment>? { @@ -56,8 +56,8 @@ class NewCategoryListViewModel(application: Application) if (sortSize != null && sortSize != mSortSize) { mSortSize = sortSize refresh.postValue(true) - } else if (sortType != null && sortType != mSortType) { - mSortType = sortType + } else if (sortType != null && sortType != this.sortType) { + this.sortType = sortType refresh.postValue(true) } } @@ -69,7 +69,7 @@ class NewCategoryListViewModel(application: Application) } fun getSortType(): String? { - return if (mSortType == ConfigFilterView.SortType.RECOMMENDED) { + return if (sortType == ConfigFilterView.SortType.RECOMMENDED) { "download:-1" } else { "publish:-1" diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryDirectoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryDirectoryAdapter.kt index 3a73e156f7..dc3c94565b 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryDirectoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryDirectoryAdapter.kt @@ -4,10 +4,11 @@ import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.dip2px -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.CategoryDirectoryItemBinding import com.gh.gamecenter.entity.CategoryEntity import com.lightgame.adapter.BaseRecyclerAdapter @@ -40,6 +41,7 @@ class CategoryDirectoryAdapter(context: Context, val entity = mList[position] title.text = entity.name + title.setTextColor(R.color.text_title.toColor(mContext)) subCategoryRv.run { if (adapter is SubCategoryAdapter) { @@ -62,7 +64,14 @@ class CategoryDirectoryAdapter(context: Context, position ) } - addItemDecoration(GridSpacingItemColorDecoration(mContext, 6, 6, R.color.transparent)) + addItemDecoration( + GridSpacingItemColorDecoration( + mContext, + 6, + 6, + R.color.transparent + ) + ) } } } diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt index 5d82f7b5ab..07b011a66c 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt @@ -3,17 +3,17 @@ package com.gh.gamecenter.category2 import android.content.Context import android.content.Intent import android.os.Bundle -import android.view.MenuItem -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.base.DownloadToolbarActivity import com.gh.gamecenter.R -import com.gh.gamecenter.SearchActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class CategoryV2Activity : NormalActivity() { +class CategoryV2Activity : DownloadToolbarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setToolbarMenu(R.menu.menu_search) + updateStatusBarColor(R.color.black, R.color.white) } override fun showDownloadMenu(): Boolean { @@ -24,12 +24,19 @@ class CategoryV2Activity : NormalActivity() { return getTargetIntent(this, CategoryV2Activity::class.java, CategoryV2Fragment::class.java) } + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { fun getIntent(context: Context, catalogId: String, catalogTitle: String, entrance: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_CATEGORY_ID, catalogId) - bundle.putString(EntranceUtils.KEY_CATEGORY_TITLE, catalogTitle) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_CATEGORY_ID, catalogId) + bundle.putString(EntranceConsts.KEY_CATEGORY_TITLE, catalogTitle) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent(context, CategoryV2Activity::class.java, CategoryV2Fragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Adapter.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Adapter.kt index 610cd46c6c..5b86f49826 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Adapter.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Adapter.kt @@ -3,10 +3,10 @@ package com.gh.gamecenter.category2 import android.content.Context import android.view.View import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.goneIf -import com.gh.common.util.toBinding -import com.gh.common.util.toColor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.CategoryV2ItemBinding import com.gh.gamecenter.entity.SidebarsEntity @@ -31,12 +31,12 @@ class CategoryV2Adapter( recommendTag.goneIf(!catalogEntity.recommended) if (catalogEntity.name == mViewModel.selectedCategoryName) { selectedTag.visibility = View.VISIBLE - catalogName.setTextColor(R.color.theme_font.toColor()) - root.setBackgroundColor(R.color.white.toColor()) + catalogName.setTextColor(R.color.theme_font.toColor(mContext)) + root.setBackgroundColor(R.color.background_white.toColor(mContext)) } else { selectedTag.visibility = View.GONE - catalogName.setTextColor(R.color.text_title.toColor()) - root.setBackgroundColor(R.color.background.toColor()) + catalogName.setTextColor(R.color.text_title.toColor(mContext)) + root.setBackgroundColor(R.color.background.toColor(mContext)) } root.setOnClickListener { if (catalogEntity.name != mViewModel.selectedCategoryName) { diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt index 3968b40de6..c7cd8414e9 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt @@ -10,13 +10,17 @@ import androidx.core.view.GravityCompat import androidx.drawerlayout.widget.DrawerLayout import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.fragment.LazyFragment -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.common.view.FixLinearLayoutManager +import com.gh.common.util.LogUtils +import com.gh.gamecenter.common.view.FixLinearLayoutManager import com.gh.gamecenter.R import com.gh.gamecenter.SearchActivity import com.gh.gamecenter.catalog.SpecialCatalogFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentCategoryBinding import com.gh.gamecenter.entity.CategoryEntity import com.gh.gamecenter.entity.SidebarsEntity @@ -39,13 +43,13 @@ class CategoryV2Fragment : LazyFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) savedInstanceState?.run { - mLastSelectedPosition = getInt(EntranceUtils.KEY_LAST_SELECTED_POSITION) + mLastSelectedPosition = getInt(EntranceConsts.KEY_LAST_SELECTED_POSITION) } } override fun onSaveInstanceState(outState: Bundle) { mViewModel?.run { - outState.putInt(EntranceUtils.KEY_LAST_SELECTED_POSITION, selectedCategoryPosition) + outState.putInt(EntranceConsts.KEY_LAST_SELECTED_POSITION, selectedCategoryPosition) } super.onSaveInstanceState(outState) } @@ -57,14 +61,14 @@ class CategoryV2Fragment : LazyFragment() { } override fun onFragmentFirstVisible() { - mCategoryId = arguments?.getString(EntranceUtils.KEY_CATEGORY_ID) ?: "" - mCategoryTitle = arguments?.getString(EntranceUtils.KEY_CATEGORY_TITLE) ?: "" + mCategoryId = arguments?.getString(EntranceConsts.KEY_CATEGORY_ID) ?: "" + mCategoryTitle = arguments?.getString(EntranceConsts.KEY_CATEGORY_TITLE) ?: "" mLastPageDataMap = PageSwitchDataHelper.popLastPageData() mViewModel = viewModelProviderFromParent(CategoryV2ViewModel.Factory(mCategoryId, mCategoryTitle), mCategoryId) // 除了这里以外,下面还有一个判断是否为首页 tab 栏的赋值 mViewModel?.entrance = if (mEntrance.contains("首页")) "首页" else "板块" - if (arguments?.getBoolean(EntranceUtils.KEY_IS_HOME) == true) { + if (arguments?.getBoolean(EntranceConsts.KEY_IS_HOME) == true) { mHomeViewModel = viewModelProviderFromParent() mViewModel?.entrance = "首页Tab栏" } @@ -102,11 +106,11 @@ class CategoryV2Fragment : LazyFragment() { directoryRv.layoutParams.width = width // 嵌入在首页时特殊处理 - if (arguments?.getBoolean(EntranceUtils.KEY_IS_HOME) == true) { - root.setBackgroundColor(Color.WHITE) + if (arguments?.getBoolean(EntranceConsts.KEY_IS_HOME) == true) { + root.setBackgroundColor(R.color.background_white.toColor(requireContext())) root.setPadding(0, 8F.dip2px(), 0, 0) directoryRv.isNestedScrollingEnabled = false - categoryRv.setBackgroundColor(R.color.background.toColor()) + categoryRv.setBackgroundColor(R.color.background.toColor(requireContext())) } } @@ -300,11 +304,11 @@ class CategoryV2Fragment : LazyFragment() { .findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_IS_CATEGORY_V2 to true, - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_CATALOG_TITLE to mCategoryTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE), - EntranceUtils.KEY_LAST_PAGE_DATA to mLastPageDataMap + EntranceConsts.KEY_IS_CATEGORY_V2 to true, + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_CATALOG_TITLE to mCategoryTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE), + EntranceConsts.KEY_LAST_PAGE_DATA to mLastPageDataMap ) childFragmentManager .beginTransaction() @@ -324,11 +328,11 @@ class CategoryV2Fragment : LazyFragment() { .findFragmentByTag(CategoryV2ListFragment::class.java.simpleName) as? CategoryV2ListFragment ?: CategoryV2ListFragment() mCategoryV2ListFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATEGORY_ID to id, - EntranceUtils.KEY_SUB_CATEGORY_ID to sidebars[selectedCategoryPosition].categoryId, - EntranceUtils.KEY_CATEGORY_TITLE to mCategoryTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE), - EntranceUtils.KEY_LAST_PAGE_DATA to mLastPageDataMap + EntranceConsts.KEY_CATEGORY_ID to id, + EntranceConsts.KEY_SUB_CATEGORY_ID to sidebars[selectedCategoryPosition].categoryId, + EntranceConsts.KEY_CATEGORY_TITLE to mCategoryTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE), + EntranceConsts.KEY_LAST_PAGE_DATA to mLastPageDataMap ) childFragmentManager .beginTransaction() @@ -353,11 +357,11 @@ class CategoryV2Fragment : LazyFragment() { .findFragmentByTag(CategoryV2ListFragment::class.java.simpleName) as? CategoryV2ListFragment ?: CategoryV2ListFragment() mCategoryV2ListFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATEGORY_ID to id, - EntranceUtils.KEY_SUB_CATEGORY_ID to sidebars[position].categoryId, - EntranceUtils.KEY_CATALOG_TITLE to mCategoryTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE), - EntranceUtils.KEY_LAST_PAGE_DATA to mLastPageDataMap + EntranceConsts.KEY_CATEGORY_ID to id, + EntranceConsts.KEY_SUB_CATEGORY_ID to sidebars[position].categoryId, + EntranceConsts.KEY_CATALOG_TITLE to mCategoryTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE), + EntranceConsts.KEY_LAST_PAGE_DATA to mLastPageDataMap ) childFragmentManager .beginTransaction() @@ -371,11 +375,11 @@ class CategoryV2Fragment : LazyFragment() { .findFragmentByTag(SpecialCatalogFragment::class.java.simpleName) as? SpecialCatalogFragment ?: SpecialCatalogFragment() mSpecialCatalogFragment?.arguments = bundleOf( - EntranceUtils.KEY_IS_CATEGORY_V2 to true, - EntranceUtils.KEY_CATALOG_ID to id, - EntranceUtils.KEY_CATALOG_TITLE to mCategoryTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE), - EntranceUtils.KEY_LAST_PAGE_DATA to mLastPageDataMap + EntranceConsts.KEY_IS_CATEGORY_V2 to true, + EntranceConsts.KEY_CATALOG_ID to id, + EntranceConsts.KEY_CATALOG_TITLE to mCategoryTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE), + EntranceConsts.KEY_LAST_PAGE_DATA to mLastPageDataMap ) childFragmentManager .beginTransaction() @@ -384,11 +388,11 @@ class CategoryV2Fragment : LazyFragment() { } else { if (mCategoryV2ListFragment?.isStateSaved == false) { mCategoryV2ListFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATEGORY_ID to id, - EntranceUtils.KEY_SUB_CATEGORY_ID to sidebars[position].categoryId, - EntranceUtils.KEY_CATALOG_TITLE to mCategoryTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE), - EntranceUtils.KEY_LAST_PAGE_DATA to mLastPageDataMap + EntranceConsts.KEY_CATEGORY_ID to id, + EntranceConsts.KEY_SUB_CATEGORY_ID to sidebars[position].categoryId, + EntranceConsts.KEY_CATALOG_TITLE to mCategoryTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE), + EntranceConsts.KEY_LAST_PAGE_DATA to mLastPageDataMap ) } mCategoryV2ListFragment?.changeCategoryTab(sidebars[position].categoryId) @@ -406,11 +410,11 @@ class CategoryV2Fragment : LazyFragment() { } else { if (mCategoryV2ListFragment?.isStateSaved == false) { mCategoryV2ListFragment?.arguments = bundleOf( - EntranceUtils.KEY_CATEGORY_ID to id, - EntranceUtils.KEY_SUB_CATEGORY_ID to sidebars[position].categoryId, - EntranceUtils.KEY_CATALOG_TITLE to mCategoryTitle, - EntranceUtils.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE), - EntranceUtils.KEY_LAST_PAGE_DATA to mLastPageDataMap + EntranceConsts.KEY_CATEGORY_ID to id, + EntranceConsts.KEY_SUB_CATEGORY_ID to sidebars[position].categoryId, + EntranceConsts.KEY_CATALOG_TITLE to mCategoryTitle, + EntranceConsts.KEY_EXPOSURE_SOURCE to arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE), + EntranceConsts.KEY_LAST_PAGE_DATA to mLastPageDataMap ) } mCategoryV2ListFragment?.changeCategoryTab(sidebars[position].categoryId) @@ -461,4 +465,16 @@ class CategoryV2Fragment : LazyFragment() { requireContext().resources.getDimension(R.dimen.main_bottom_tab_height).toInt() - it.appBarOffset) } } + + override fun onNightModeChange() { + super.onNightModeChange() + mBinding?.categoryRv?.adapter?.run { + mBinding?.categoryRv?.recycledViewPool?.clear() + notifyItemRangeChanged(0, itemCount) + } + mBinding?.directoryRv?.adapter?.run { + mBinding?.directoryRv?.recycledViewPool?.clear() + notifyItemRangeChanged(0, itemCount) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListAdapter.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListAdapter.kt index b15d225b82..36459ce123 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListAdapter.kt @@ -5,20 +5,25 @@ import android.util.SparseArray import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureType import com.gh.common.exposure.IExposable import com.gh.common.util.* -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.CategoryGameItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBDownloadStatus diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt index 4f0cae0f4c..c0ba61b88f 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt @@ -4,15 +4,18 @@ import android.os.Bundle import android.view.View import android.view.ViewGroup import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.util.* +import com.gh.common.util.DialogUtils import com.gh.common.view.CategoryFilterView import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.FragmentCategoryListBinding import com.gh.gamecenter.databinding.LayoutSelectedCategoryBinding import com.gh.gamecenter.entity.CategoryEntity @@ -54,7 +57,7 @@ class CategoryV2ListFragment : ListFragment viewModelProvider(CategoryV2ListViewModel.Factory( mCategoryId, mSubCategoryId, - arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE))) + arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE))) override fun provideListAdapter() = mAdapter ?: CategoryV2ListAdapter( @@ -73,13 +76,12 @@ class CategoryV2ListFragment : ListFragment override fun getItemDecoration() = null override fun onCreate(savedInstanceState: Bundle?) { - mCategoryId = arguments?.getString(EntranceUtils.KEY_CATEGORY_ID) ?: "" - mSubCategoryId = arguments?.getString(EntranceUtils.KEY_SUB_CATEGORY_ID) ?: "" - mCategoryTitle = arguments?.getString(EntranceUtils.KEY_CATEGORY_TITLE) ?: "" - mLastPageDataMap = arguments?.getSerializable(EntranceUtils.KEY_LAST_PAGE_DATA) as? HashMap - + mCategoryId = arguments?.getString(EntranceConsts.KEY_CATEGORY_ID) ?: "" + mSubCategoryId = arguments?.getString(EntranceConsts.KEY_SUB_CATEGORY_ID) ?: "" + mCategoryTitle = arguments?.getString(EntranceConsts.KEY_CATEGORY_TITLE) ?: "" + mLastPageDataMap = arguments?.getSerializable(EntranceConsts.KEY_LAST_PAGE_DATA) as? HashMap mCategoryViewModel = viewModelProviderFromParent(CategoryV2ViewModel.Factory(mCategoryId, mCategoryTitle), mCategoryId) - mEntrance = arguments?.getString(EntranceUtils.KEY_ENTRANCE) ?: Constants.ENTRANCE_UNKNOWN + mEntrance = arguments?.getString(EntranceConsts.KEY_ENTRANCE) ?: Constants.ENTRANCE_UNKNOWN super.onCreate(savedInstanceState) } @@ -315,4 +317,13 @@ class CategoryV2ListFragment : ListFragment fun openDirectoryLayout() { (parentFragment as? CategoryV2Fragment)?.openDirectoryLayout() } + + override fun onNightModeChange() { + super.onNightModeChange() + mBinding?.filterContainer?.run { + setRootBackgroundColor(R.color.background_white.toColor(requireContext())) + setItemTextColor(R.color.text_subtitle.toColor(requireContext())) + updatePopupWindow() + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListViewModel.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListViewModel.kt index 5b7f8b861d..10c19a6b3b 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListViewModel.kt @@ -4,10 +4,10 @@ import android.app.Application import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.exposure.ExposureEntity +import com.gh.gamecenter.common.entity.ExposureEntity import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureUtils -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.common.view.CategoryFilterView import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ViewModel.kt b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ViewModel.kt index 3196a24d62..881a957e73 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/CategoryV2ViewModel.kt @@ -9,7 +9,7 @@ import androidx.lifecycle.ViewModelProvider import com.gh.common.util.LogUtils import com.gh.gamecenter.entity.CategoryEntity import com.gh.gamecenter.entity.SidebarsEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/category2/SubCategoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/category2/SubCategoryAdapter.kt index cff08601e1..c135fe7cd4 100644 --- a/app/src/main/java/com/gh/gamecenter/category2/SubCategoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/category2/SubCategoryAdapter.kt @@ -3,11 +3,12 @@ package com.gh.gamecenter.category2 import android.content.Context import android.view.View import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.ToastUtils -import com.gh.common.util.goneIf -import com.gh.common.util.toColor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.databinding.SubCategoryItemBinding import com.gh.gamecenter.entity.CategoryEntity import com.lightgame.adapter.BaseRecyclerAdapter @@ -32,12 +33,12 @@ class SubCategoryAdapter( if (categoryEntity.selected) { selectedIv.visibility = View.VISIBLE - container.setBackgroundResource(R.drawable.bg_category_selected) - name.setTextColor(R.color.theme_font.toColor()) + container.background = R.drawable.bg_category_selected.toDrawable(mContext) + name.setTextColor(R.color.theme_font.toColor(mContext)) } else { selectedIv.visibility = View.GONE - container.setBackgroundResource(R.drawable.bg_shape_f8_radius_8) - name.setTextColor(R.color.text_title.toColor()) + container.background = R.drawable.bg_shape_f8_radius_8.toDrawable(mContext) + name.setTextColor(R.color.text_title.toColor(mContext)) } root.setOnClickListener { @@ -47,8 +48,8 @@ class SubCategoryAdapter( categoryEntity.selected -> { categoryEntity.selected = false selectedIv.visibility = View.GONE - container.setBackgroundResource(R.drawable.bg_shape_f8_radius_8) - name.setTextColor(R.color.text_title.toColor()) + container.background = R.drawable.bg_shape_f8_radius_8.toDrawable(mContext) + name.setTextColor(R.color.text_title.toColor(mContext)) mViewModel.run { if (selectedCount > 0) { selectedCount-- @@ -63,8 +64,8 @@ class SubCategoryAdapter( categoryEntity.selected = true categoryEntity.primaryIndex = mPrimaryIndex selectedIv.visibility = View.VISIBLE - container.setBackgroundResource(R.drawable.bg_category_selected) - name.setTextColor(R.color.theme_font.toColor()) + container.background = R.drawable.bg_category_selected.toDrawable(mContext) + name.setTextColor(R.color.theme_font.toColor(mContext)) mViewModel.run { if (selectedCount < 5) { selectedCount++ diff --git a/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java b/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java index e0c328f3f0..4f52920db5 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/collection/AnswerAdapter.java @@ -8,13 +8,13 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.PopupWindow; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.syncpage.ISyncAdapterHandler; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler; import com.gh.common.util.CollectionUtils; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java b/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java index 7b4b06a9c3..0038463619 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java +++ b/app/src/main/java/com/gh/gamecenter/collection/AnswerFragment.java @@ -4,9 +4,14 @@ import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.RecyclerView; + import com.gh.common.util.CollectionUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; @@ -20,11 +25,6 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import org.jetbrains.annotations.NotNull; -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.ViewModelProviders; -import androidx.recyclerview.widget.RecyclerView; - /** * Created by khy on 22/12/17. */ @@ -45,9 +45,9 @@ public class AnswerFragment extends ListFragment @Override public void onCreate(@Nullable Bundle savedInstanceState) { - mType = getArguments().getString(EntranceUtils.KEY_TYPE, COLLECTION); + mType = getArguments().getString(EntranceConsts.KEY_TYPE, COLLECTION); super.onCreate(savedInstanceState); - mCachedView.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.white)); + mCachedView.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.background_white)); } @Override @@ -97,4 +97,16 @@ public class AnswerFragment extends ListFragment itemDecoration.setDrawable(insetDivider); return itemDecoration; } + + @Override + protected void onNightModeChange() { + super.onNightModeChange(); + mCachedView.post(() -> { + mCachedView.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.background_white)); + }); + if (mListRv != null && mListRv.getItemDecorationCount() > 0) { + mListRv.removeItemDecorationAt(0); + mListRv.addItemDecoration(getItemDecoration()); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/collection/AnswerViewModel.kt b/app/src/main/java/com/gh/gamecenter/collection/AnswerViewModel.kt index 2f7cca644c..ecd336bc1d 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/AnswerViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/AnswerViewModel.kt @@ -2,14 +2,14 @@ package com.gh.gamecenter.collection import android.annotation.SuppressLint import android.app.Application -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.history.HistoryDatabase import com.gh.common.history.HistoryHelper import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.entity.AnswerEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.Single diff --git a/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java b/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java index ab2583d564..e24f38d357 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ArticleAdapter.java @@ -12,14 +12,14 @@ import android.view.WindowManager; import android.widget.LinearLayout; import android.widget.PopupWindow; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.common.util.NewsUtils; -import com.gh.common.util.NumberUtils; +import com.gh.gamecenter.core.utils.NumberUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage1ViewHolder; @@ -33,7 +33,7 @@ import com.gh.gamecenter.databinding.PopupHistoryOptionBinding; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.history.ManageOption; import com.gh.gamecenter.manager.VisitManager; -import com.gh.gamecenter.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.RetrofitManager; import org.json.JSONException; diff --git a/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java b/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java index 85bf1d5373..423a2cf723 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ArticleFragment.java @@ -4,11 +4,15 @@ import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + import com.gh.common.util.CollectionUtils; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.EntranceUtils; -import com.gh.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; @@ -23,10 +27,6 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import org.jetbrains.annotations.NotNull; -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.RecyclerView; - /** * Created by khy on 18/07/17. */ @@ -42,9 +42,9 @@ public class ArticleFragment extends ListFragment @Override public void onCreate(@Nullable Bundle savedInstanceState) { - mType = getArguments().getString(EntranceUtils.KEY_TYPE, COLLECTION); + mType = getArguments().getString(EntranceConsts.KEY_TYPE, COLLECTION); super.onCreate(savedInstanceState); - mCachedView.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.white)); + mCachedView.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.background_white)); } @Override @@ -121,4 +121,16 @@ public class ArticleFragment extends ListFragment itemDecoration.setDrawable(insetDivider); return itemDecoration; } + + @Override + protected void onNightModeChange() { + super.onNightModeChange(); + mCachedView.post(() -> { + mCachedView.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.background_white)); + }); + if (mListRv != null && mListRv.getItemDecorationCount() > 0) { + mListRv.removeItemDecorationAt(0); + mListRv.addItemDecoration(getItemDecoration()); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/collection/ArticleViewModel.java b/app/src/main/java/com/gh/gamecenter/collection/ArticleViewModel.java index 56a5d41d3e..2ccd953e6a 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ArticleViewModel.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ArticleViewModel.java @@ -2,10 +2,10 @@ package com.gh.gamecenter.collection; import android.app.Application; -import com.gh.common.AppExecutor; +import com.gh.gamecenter.core.AppExecutor; import com.gh.common.history.HistoryDatabase; import com.gh.common.history.HistoryHelper; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.baselist.ListViewModel; import com.gh.gamecenter.baselist.LoadType; import com.gh.gamecenter.entity.NewsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/collection/CollectionCommunityArticleViewHolder.kt b/app/src/main/java/com/gh/gamecenter/collection/CollectionCommunityArticleViewHolder.kt index 2007478ccc..042f7ec251 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/CollectionCommunityArticleViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/CollectionCommunityArticleViewHolder.kt @@ -1,6 +1,7 @@ package com.gh.gamecenter.collection -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.CollectionComunityArticleItemBinding -class CollectionCommunityArticleViewHolder(val binding: CollectionComunityArticleItemBinding):BaseRecyclerViewHolder(binding.root) +class CollectionCommunityArticleViewHolder(val binding: CollectionComunityArticleItemBinding): + BaseRecyclerViewHolder(binding.root) diff --git a/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java index d62ac44944..368a5cae60 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/collection/CollectionWrapperFragment.java @@ -3,15 +3,14 @@ package com.gh.gamecenter.collection; import android.os.Bundle; import android.view.View; -import com.gh.base.fragment.BaseFragment_TabLayout; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.manager.UserManager; import java.util.List; -import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; /** @@ -76,8 +75,8 @@ public class CollectionWrapperFragment extends BaseFragment_TabLayout { } else { gameCollectionArguments = new Bundle(); } - gameCollectionArguments.putString(EntranceUtils.KEY_USER_ID, UserManager.getInstance().getUserId()); - gameCollectionArguments.putString(EntranceUtils.KEY_TYPE, GamesCollectionFragment.TYPE_COLLECT); + gameCollectionArguments.putString(EntranceConsts.KEY_USER_ID, UserManager.getInstance().getUserId()); + gameCollectionArguments.putString(EntranceConsts.KEY_TYPE, GamesCollectionFragment.TYPE_COLLECT); fragments.add(new GamesCollectionFragment().with(gameCollectionArguments)); fragments.add(new ToolsFragment().with(getArguments())); diff --git a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt index 1d7765d312..91df199a22 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleAdapter.kt @@ -9,12 +9,12 @@ import android.widget.LinearLayout import android.widget.PopupWindow import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler -import com.gh.common.util.* +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.databinding.PopupHistoryOptionBinding import com.gh.gamecenter.entity.CommunityEntity diff --git a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt index 111b5b8ed0..32fbbf2bf2 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleFragment.kt @@ -4,10 +4,10 @@ import android.os.Bundle import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.CollectionUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType @@ -25,9 +25,9 @@ class CommunityArticleFragment : ListFragment 0) { + mListRv?.removeItemDecorationAt(0) + mListRv?.addItemDecoration(itemDecoration) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleViewModel.kt b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleViewModel.kt index b024feea56..5e2daac106 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/CommunityArticleViewModel.kt @@ -2,7 +2,7 @@ package com.gh.gamecenter.collection import android.annotation.SuppressLint import android.app.Application -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.history.HistoryDatabase import com.gh.common.history.HistoryHelper import com.gh.gamecenter.R @@ -11,8 +11,8 @@ import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.entity.AnswerEntity import com.gh.gamecenter.qa.entity.ArticleEntity -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt index ec18d2b04d..1b561e5960 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt @@ -13,15 +13,18 @@ import android.widget.PopupWindow import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameCollectionItemViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.collection.GamesCollectionFragment.Companion.TYPE_USER +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemGameCollectionFlexTagBinding import com.gh.gamecenter.databinding.PopupHistoryOptionBinding import com.gh.gamecenter.entity.GamesCollectionEntity diff --git a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt index 16c4e4022a..afc5c8f322 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt @@ -3,12 +3,14 @@ package com.gh.gamecenter.collection import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat -import com.gh.common.util.* -import com.gh.common.util.EntranceUtils.* -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts.* +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.entity.GamesCollectionEntity import com.gh.gamecenter.eventbus.EBReuse import org.greenrobot.eventbus.Subscribe @@ -46,7 +48,7 @@ class GamesCollectionFragment : ListFragment 0) { + removeItemDecorationAt(0) + addItemDecoration(itemDecoration) + } } } + companion object { const val TYPE_HISTORY = "history" const val TYPE_COLLECT = "collect" diff --git a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt index e7d5478313..1730b6dd71 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/GamesCollectionViewModel.kt @@ -5,20 +5,20 @@ import android.app.Application import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.history.HistoryDatabase import com.gh.common.history.HistoryHelper import com.gh.common.util.ErrorHelper -import com.gh.common.util.ToastUtils -import com.gh.common.util.observableToMain -import com.gh.common.util.singleToMain +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.singleToMain import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.collection.GamesCollectionFragment.Companion.TYPE_COLLECT import com.gh.gamecenter.collection.GamesCollectionFragment.Companion.TYPE_HISTORY import com.gh.gamecenter.entity.GamesCollectionEntity -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.Single diff --git a/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java b/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java index 52dcd1f5e6..632299d602 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ToolsAdapter.java @@ -5,9 +5,9 @@ import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.ToolBoxViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java b/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java index 6404f4ef8a..38d0911482 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/collection/ToolsFragment.java @@ -1,16 +1,17 @@ package com.gh.gamecenter.collection; +import static com.gh.common.constant.Config.URL_ARTICLE; + import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import com.gh.common.util.CollectionUtils; -import com.gh.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.WebActivity; @@ -30,8 +31,6 @@ import java.util.List; import io.reactivex.Observable; -import static com.gh.common.constant.Config.URL_ARTICLE; - /** * Created by khy on 18/07/17. */ @@ -43,7 +42,7 @@ public class ToolsFragment extends ListFragment 0) { + mListRv.removeItemDecorationAt(0); + mListRv.addItemDecoration(getItemDecoration()); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt index f690b593b3..118bc0375e 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/VideoAdapter.kt @@ -11,11 +11,12 @@ import android.widget.LinearLayout import android.widget.PopupWindow import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.PopupHistoryOptionBinding import com.gh.gamecenter.databinding.VideoNewItemBinding import com.gh.gamecenter.entity.MyVideoEntity diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt index b4657b3779..7c38ab9202 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/VideoFragment.kt @@ -4,10 +4,10 @@ import android.os.Bundle import android.view.View import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px -import com.gh.common.util.viewModelProvider -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.GridSpacingItemDecoration import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.entity.MyVideoEntity import com.gh.gamecenter.history.IBatchDelete @@ -32,7 +32,7 @@ class VideoFragment : ListFragment(), IBatchDelet override fun onCreate(savedInstanceState: Bundle?) { mVideoStyle = requireArguments().getString("videoStyle") ?: "" - mIsInsertBbsVideo = requireArguments().getBoolean(EntranceUtils.KEY_INSERT_BBS_VIDEO) + mIsInsertBbsVideo = requireArguments().getBoolean(EntranceConsts.KEY_INSERT_BBS_VIDEO) super.onCreate(savedInstanceState) mListRv.setPadding(8f.dip2px(), 0, 8f.dip2px(), 0) } @@ -71,4 +71,13 @@ class VideoFragment : ListFragment(), IBatchDelet override fun toString() = value } + + override fun onNightModeChange() { + super.onNightModeChange() + if ((mListRv?.itemDecorationCount ?: 0) > 0) { + mListRv?.removeItemDecorationAt(0) + mListRv?.addItemDecoration(itemDecoration) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/collection/VideoViewModel.kt b/app/src/main/java/com/gh/gamecenter/collection/VideoViewModel.kt index 60d5c4d76e..b897744744 100644 --- a/app/src/main/java/com/gh/gamecenter/collection/VideoViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/collection/VideoViewModel.kt @@ -1,11 +1,11 @@ package com.gh.gamecenter.collection import android.app.Application -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.constant.Config import com.gh.common.history.HistoryDatabase import com.gh.common.history.HistoryHelper -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.entity.MyVideoEntity diff --git a/app/src/main/java/com/gh/gamecenter/db/SearchHistoryDao.java b/app/src/main/java/com/gh/gamecenter/db/SearchHistoryDao.java index b7f86c021b..d159e3282b 100644 --- a/app/src/main/java/com/gh/gamecenter/db/SearchHistoryDao.java +++ b/app/src/main/java/com/gh/gamecenter/db/SearchHistoryDao.java @@ -2,7 +2,7 @@ package com.gh.gamecenter.db; import android.content.Context; -import com.gh.common.AppExecutor; +import com.gh.gamecenter.core.AppExecutor; import com.gh.gamecenter.db.info.SearchHistoryInfo; import com.j256.ormlite.dao.CloseableIterator; import com.j256.ormlite.dao.Dao; diff --git a/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt b/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt index 4973752dc5..6e7d87a6fa 100644 --- a/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/download/DownloadFragment.kt @@ -8,10 +8,10 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView import androidx.fragment.app.Fragment -import com.gh.base.fragment.BaseFragment_TabLayout +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout import com.gh.common.util.HomePluggableHelper -import com.gh.common.util.dip2px -import com.gh.common.util.visibleIf +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.visibleIf import com.gh.download.DownloadManager import com.gh.gamecenter.DownloadManagerActivity import com.gh.gamecenter.R @@ -19,7 +19,7 @@ import com.gh.gamecenter.databinding.TabItemDownloadNumberBinding import com.gh.gamecenter.entity.HomePluggableFilterEntity import com.gh.gamecenter.entity.PluginLocation import com.gh.gamecenter.eventbus.EBDownloadChanged -import com.gh.gamecenter.eventbus.EBMiPush +import com.gh.gamecenter.common.eventbus.EBMiPush import com.gh.gamecenter.eventbus.EBSkip import com.gh.gamecenter.eventbus.EBUISwitch import com.gh.gamecenter.manager.PackagesManager diff --git a/app/src/main/java/com/gh/gamecenter/download/DownloadedGameIdAndPackageNameDao.kt b/app/src/main/java/com/gh/gamecenter/download/DownloadedGameIdAndPackageNameDao.kt index 969feaa1e3..e19115e401 100644 --- a/app/src/main/java/com/gh/gamecenter/download/DownloadedGameIdAndPackageNameDao.kt +++ b/app/src/main/java/com/gh/gamecenter/download/DownloadedGameIdAndPackageNameDao.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.download -import com.gh.base.BaseSimpleDao +import com.gh.gamecenter.common.base.BaseSimpleDao /** * 用来记录光环下载过什么包名和游戏ID间合集的一个简单类 diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java index ceeeb022c3..ac1f1aef3a 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java @@ -13,11 +13,10 @@ import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.NetworkUtils; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.common.util.PackageUtils; import com.gh.common.xapk.XapkInstaller; import com.gh.common.xapk.XapkUnzipStatus; @@ -25,9 +24,10 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.databinding.DownloadmanagerBinding; import com.gh.gamecenter.eventbus.EBDownloadChanged; -import com.gh.gamecenter.eventbus.EBMiPush; +import com.gh.gamecenter.common.eventbus.EBMiPush; import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.fragment.MainWrapperFragment; @@ -215,8 +215,8 @@ public class GameDownloadFragment extends BaseFragment implements View.OnClickLi @Override protected void initView(View view) { super.initView(view); - String path = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_PATH); - url = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_URL); + String path = getActivity().getIntent().getStringExtra(EntranceConsts.KEY_PATH); + url = getActivity().getIntent().getStringExtra(EntranceConsts.KEY_URL); isScroll = false; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java index da26a1d0f9..123dd4d8df 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java @@ -9,18 +9,18 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.util.DataUtils; -import com.gh.common.util.DialogHelper; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.common.util.DialogUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.NetworkUtils; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.common.util.PermissionHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.PermissionHelper; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.SpeedUtils; +import com.gh.gamecenter.core.utils.SpeedUtils; import com.gh.common.xapk.XapkInstaller; import com.gh.common.xapk.XapkUnzipStatus; import com.gh.download.DownloadManager; @@ -347,10 +347,6 @@ class GameDownloadFragmentAdapter extends BaseRecyclerAdapter { Utils.toast(mContext, "最多只能同时启动3个下载任务"); break; case "启动": - Map kv = new HashMap<>(); - kv.put("版本", downloadEntity.getPlatform()); - DataUtils.onEvent(mContext, "游戏启动", downloadEntity.getName(), kv); - PackageUtils.launchApplicationByPackageName(mContext, downloadEntity.getPackageName()); break; case "失败": @@ -503,16 +499,6 @@ class GameDownloadFragmentAdapter extends BaseRecyclerAdapter { // 显示插件化 void showPluginDialog(final String path) { DialogHelper.showPluginDialog(mContext, () -> { - for (DownloadEntity downloadEntity : DownloadManager.getInstance().getAllDownloadEntityExcludeSilentUpdate()) { - if (downloadEntity.isPluggable() - && downloadEntity.getPath().equals(path)) { - Map kv6 = new HashMap<>(); - kv6.put("操作", "点击插件化安装完成"); - DataUtils.onEvent(mContext, "插件化", downloadEntity.getName(), kv6); - break; - } - } - if (FileUtils.isEmptyFile(path)) { Utils.toast(mContext, R.string.install_failure_hint); } else { diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java index 6d74fc2020..93bbad16fa 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java @@ -9,9 +9,9 @@ import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProviders; import androidx.recyclerview.widget.LinearLayoutManager; -import com.gh.base.fragment.BaseFragment; +import com.gh.gamecenter.common.base.fragment.BaseFragment; import com.gh.common.exposure.ExposureListener; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.databinding.GameupdateBinding; import com.gh.gamecenter.eventbus.EBDownloadStatus; @@ -62,8 +62,8 @@ public class GameUpdateFragment extends BaseFragment { protected void initView(View view) { super.initView(view); Intent intent = getActivity().getIntent(); - String packageName = intent.getStringExtra(EntranceUtils.KEY_PACKAGENAME); - String entrance = intent.getStringExtra(EntranceUtils.KEY_ENTRANCE); + String packageName = intent.getStringExtra(EntranceConsts.KEY_PACKAGENAME); + String entrance = intent.getStringExtra(EntranceConsts.KEY_ENTRANCE); mBinding.reuseNodataSkip.getRoot().setVisibility(View.GONE); mBinding.reuseNodataSkip.reuseNodataSkipTvHint.setText("暂无更新"); diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index 5206f3a013..6cfc417712 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -12,8 +12,9 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import com.gh.common.AppExecutor; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.databind.BindingAdapters; import com.gh.common.exposure.ExposureEvent; import com.gh.common.exposure.ExposureSource; @@ -23,19 +24,17 @@ import com.gh.common.exposure.IExposable; import com.gh.common.history.HistoryHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DialogHelper; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.common.util.DialogUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.GsonUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.NetworkUtils; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.common.util.PermissionHelper; +import com.gh.gamecenter.common.utils.PermissionHelper; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.StringUtils; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.download.DownloadManager; import com.gh.download.dialog.DownloadDialog; import com.gh.gamecenter.DownloadManagerActivity; @@ -51,7 +50,7 @@ import com.gh.gamecenter.entity.PluginLocation; import com.gh.gamecenter.eventbus.EBDownloadChanged; import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.manager.PackagesManager; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.download.DownloadEntity; @@ -63,9 +62,7 @@ import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.HashMap; import java.util.List; -import java.util.Map; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -374,10 +371,6 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter implemen }); }); } else if (mContext.getString(R.string.launch).equals(str)) { - Map kv = new HashMap<>(); - kv.put("版本", updateEntity.getPlatform()); - DataUtils.onEvent(mContext, "游戏启动", updateEntity.getName(), kv); - PackageUtils.launchApplicationByPackageName(mContext, updateEntity.getPackageName()); } else if (mContext.getString(R.string.downloading).equals(str)) { @@ -501,11 +494,6 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter implemen GameUpdateEntity updateEntity = updateList.get(position); ExposureUtils.DownloadType downloadType; - Map kv = new HashMap<>(); - kv.put("版本", updateEntity.getPlatform()); - kv.put("状态", "下载开始"); - DataUtils.onEvent(mContext, "游戏更新", updateEntity.getName(), kv); - String downloadId = PackageInstaller.createDownloadId(updateEntity.getName()); DownloadEntity downloadEntity = new DownloadEntity(); diff --git a/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt b/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt index 1e09201327..ee4cb48dd5 100644 --- a/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt @@ -12,12 +12,12 @@ //import butterknife.BindView //import com.ethanhua.skeleton.Skeleton //import com.ethanhua.skeleton.ViewSkeletonScreen -//import com.gh.base.OnRequestCallBackListener +//import com.gh.gamecenter.common.callback.OnRequestCallBackListener //import com.gh.common.exposure.ExposureListener //import com.gh.common.util.DownloadItemUtils -//import com.gh.common.util.isSimulatorGame -//import com.gh.common.view.FixLinearLayoutManager -//import com.gh.common.view.VerticalItemDecoration +//import com.gh.gamecenter.common.utils.isSimulatorGame +//import com.gh.gamecenter.common.view.FixLinearLayoutManager +//import com.gh.gamecenter.common.view.VerticalItemDecoration //import com.gh.download.DownloadManager //import com.gh.gamecenter.MainActivity //import com.gh.gamecenter.R @@ -27,7 +27,7 @@ //import com.gh.gamecenter.eventbus.EBReuse //import com.gh.gamecenter.fragment.MainWrapperFragment //import com.gh.gamecenter.manager.PackagesManager -//import com.gh.gamecenter.normal.NormalFragment +//import com.gh.gamecenter.common.base.fragment.NormalFragment //import com.gh.gamecenter.packagehelper.PackageViewModel //import com.lightgame.download.DataWatcher //import com.lightgame.download.DownloadEntity diff --git a/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragmentAdapter.java index c78285bc46..4795650f6f 100644 --- a/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragmentAdapter.java @@ -4,7 +4,7 @@ //import android.view.View; //import android.view.ViewGroup; // -//import com.gh.common.constant.ItemViewType; +//import com.gh.gamecenter.common.constant.ItemViewType; //import com.gh.common.exposure.ExposureEvent; //import com.gh.common.exposure.ExposureSource; //import com.gh.common.exposure.ExposureType; @@ -18,7 +18,7 @@ //import com.gh.common.util.GameUtils; //import com.gh.common.util.PackageUtils; //import com.gh.common.util.PlatformUtils; -//import com.gh.common.util.ThirdPartyPackageHelper; +//import com.gh.gamecenter.core.utils.ThirdPartyPackageHelper; //import com.gh.download.DownloadManager; //import com.gh.gamecenter.GameDetailActivity; //import com.gh.gamecenter.R; diff --git a/app/src/main/java/com/gh/gamecenter/download/InstalledGameViewModel.kt b/app/src/main/java/com/gh/gamecenter/download/InstalledGameViewModel.kt index 5ddf547b66..48a52632df 100644 --- a/app/src/main/java/com/gh/gamecenter/download/InstalledGameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/download/InstalledGameViewModel.kt @@ -9,12 +9,12 @@ import com.gh.common.filter.RegionSettingHelper.shouldThisGameBeFiltered import com.gh.common.util.ApkActiveUtils import com.gh.common.util.GameUtils import com.gh.common.util.PackageUtils -import com.gh.common.util.ThirdPartyPackageHelper.getGameId +import com.gh.gamecenter.core.utils.ThirdPartyPackageHelper.getGameId import com.gh.download.DownloadManager import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.GameInstall -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragment.kt b/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragment.kt index edf49fda3e..e8ed7612c1 100644 --- a/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragment.kt @@ -1,7 +1,6 @@ package com.gh.gamecenter.download import android.annotation.SuppressLint -import android.graphics.Color import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProvider @@ -10,10 +9,10 @@ import com.ethanhua.skeleton.Skeleton import com.ethanhua.skeleton.ViewSkeletonScreen import com.gh.common.exposure.ExposureListener import com.gh.common.util.DownloadItemUtils -import com.gh.common.util.isSimulatorGame -import com.gh.common.util.toColor -import com.gh.common.view.FixLinearLayoutManager -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.common.utils.isSimulatorGame +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.download.DownloadManager import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R @@ -24,7 +23,7 @@ import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.fragment.MainWrapperFragment import com.gh.gamecenter.manager.PackagesManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.packagehelper.PackageViewModel import com.lightgame.download.DataWatcher import com.lightgame.download.DownloadEntity @@ -32,7 +31,7 @@ import com.lightgame.download.DownloadStatus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -class NewInstalledGameFragment : NormalFragment() { +class NewInstalledGameFragment : ToolbarFragment() { private lateinit var mBinding: FragmentMyGameBinding private var mPackageViewModel: PackageViewModel? = null diff --git a/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragmentAdapter.kt index 08012c0dd1..ba5aeaa2e4 100644 --- a/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragmentAdapter.kt @@ -7,7 +7,7 @@ import android.view.ViewGroup import androidx.core.graphics.drawable.toBitmap import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureSource @@ -21,6 +21,7 @@ import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder +import com.gh.gamecenter.common.utils.safelyGetInRelease import com.gh.gamecenter.databinding.GameItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.game.GameItemViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/download/UpdatableGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/download/UpdatableGameAdapter.kt index 76f5e4dc8a..f3a9b5551d 100644 --- a/app/src/main/java/com/gh/gamecenter/download/UpdatableGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/download/UpdatableGameAdapter.kt @@ -11,17 +11,19 @@ import androidx.core.content.ContextCompat import androidx.core.view.setPadding import androidx.fragment.app.FragmentActivity import androidx.recyclerview.widget.RecyclerView -import com.gh.base.CurrentActivityHolder +import com.gh.gamecenter.core.utils.CurrentActivityHolder import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.* -import com.gh.common.view.BugFixedPopupWindow +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.download.DownloadManager import com.gh.download.dialog.DownloadDialog import com.gh.gamecenter.DownloadManagerActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.* import com.gh.gamecenter.entity.GameUpdateEntity import com.gh.gamecenter.eventbus.EBSkip diff --git a/app/src/main/java/com/gh/gamecenter/download/UpdatableGameFragment.kt b/app/src/main/java/com/gh/gamecenter/download/UpdatableGameFragment.kt index c9ebd9f653..c3f37b23a5 100644 --- a/app/src/main/java/com/gh/gamecenter/download/UpdatableGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/download/UpdatableGameFragment.kt @@ -1,12 +1,16 @@ package com.gh.gamecenter.download import android.view.View -import com.gh.base.fragment.LazyFragment +import com.gh.gamecenter.common.base.fragment.LazyFragment import com.gh.common.exposure.ExposureListener -import com.gh.common.util.* -import com.gh.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.FixLinearLayoutManager import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.FragmentGameUpdatableBinding import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.eventbus.EBReuse @@ -28,8 +32,8 @@ class UpdatableGameFragment : LazyFragment() { } override fun onFragmentFirstVisible() { - val packageName = activity?.intent?.getStringExtra(EntranceUtils.KEY_PACKAGENAME) ?: "" - val entrance = activity?.intent?.getStringExtra(EntranceUtils.KEY_ENTRANCE) ?: "" + val packageName = activity?.intent?.getStringExtra(EntranceConsts.KEY_PACKAGENAME) ?: "" + val entrance = activity?.intent?.getStringExtra(EntranceConsts.KEY_ENTRANCE) ?: "" mViewModel = viewModelProvider(UpdatableGameViewModel.Factory(packageName, entrance)) diff --git a/app/src/main/java/com/gh/gamecenter/download/UpdatableGameViewModel.kt b/app/src/main/java/com/gh/gamecenter/download/UpdatableGameViewModel.kt index 974d7a6d2c..b82a313e66 100644 --- a/app/src/main/java/com/gh/gamecenter/download/UpdatableGameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/download/UpdatableGameViewModel.kt @@ -3,22 +3,27 @@ package com.gh.gamecenter.download import android.app.Application import android.view.View import androidx.lifecycle.* -import com.gh.base.BaseSimpleDao -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.BaseSimpleDao +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureUtils import com.gh.common.exposure.ExposureUtils.logADownloadExposureEvent import com.gh.common.history.HistoryHelper.insertGameEntity import com.gh.common.util.* -import com.gh.common.util.GsonUtils.toJson +import com.gh.gamecenter.core.utils.GsonUtils.toJson import com.gh.common.util.PackageInstaller.createDownloadId import com.gh.common.util.PackageInstaller.getDownloadPathWithId import com.gh.download.DownloadManager +import com.gh.gamecenter.common.utils.addMetaExtra +import com.gh.gamecenter.common.utils.secondOrNull +import com.gh.gamecenter.common.utils.toProperReadableSize +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.GameUpdateEntity import com.gh.gamecenter.entity.PluginLocation import com.gh.gamecenter.eventbus.EBDownloadChanged import com.gh.gamecenter.manager.PackagesManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity diff --git a/app/src/main/java/com/gh/gamecenter/energy/CommodityAdapter.kt b/app/src/main/java/com/gh/gamecenter/energy/CommodityAdapter.kt index 3242cf4626..866c2ca002 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/CommodityAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/CommodityAdapter.kt @@ -6,13 +6,15 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.time.TimeUtil import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.CommodityItemBinding import com.gh.gamecenter.entity.CommodityCategoryEntity import com.gh.gamecenter.entity.CommodityEntity diff --git a/app/src/main/java/com/gh/gamecenter/energy/CommodityFragment.kt b/app/src/main/java/com/gh/gamecenter/energy/CommodityFragment.kt index 42f4074d0d..e6a30c6cfc 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/CommodityFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/CommodityFragment.kt @@ -9,10 +9,15 @@ import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.gh.common.util.* -import com.gh.common.util.NumberUtils.findMax +import com.gh.gamecenter.core.utils.NumberUtils.findMax import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.layoutInflater +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.databinding.FragmentCommodityListBinding import com.gh.gamecenter.databinding.ItemFilterCommodityCategoryBinding import com.gh.gamecenter.databinding.LayoutFilterCategoryBinding @@ -39,8 +44,8 @@ class CommodityFragment : ListFragment() { override fun getInflatedLayout() = FragmentCommodityListBinding.inflate(layoutInflater).apply { mBinding = this }.root override fun provideListViewModel(): CommodityViewModel { - mEntrance = requireArguments().getString(EntranceUtils.KEY_ENTRANCE) ?: "" - mCategory = requireArguments().getParcelable(EntranceUtils.KEY_CATEGORY) + mEntrance = requireArguments().getString(EntranceConsts.KEY_ENTRANCE) ?: "" + mCategory = requireArguments().getParcelable(EntranceConsts.KEY_CATEGORY) val factory = CommodityViewModel.Factory(mCategory?.id ?: "", mEntrance) return viewModelProvider(factory) } @@ -62,7 +67,7 @@ class CommodityFragment : ListFragment() { rightMargin = 12F.dip2px() } - requireArguments().getParcelableArrayList(EntranceUtils.KEY_CATEGORY_LIST)?.run { + requireArguments().getParcelableArrayList(EntranceConsts.KEY_CATEGORY_LIST)?.run { mCategoryList = this mCategoryItemWidth = (resources.displayMetrics.widthPixels - ((14F * 2 + 8F * 4 + 28F).dip2px())) / 4 @@ -356,4 +361,6 @@ class CommodityFragment : ListFragment() { fun setNestedScrollingEnabled(enable: Boolean) { mListRv?.isNestedScrollingEnabled = enable } + + override fun onNightModeChange() {} } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/energy/CommodityViewModel.kt b/app/src/main/java/com/gh/gamecenter/energy/CommodityViewModel.kt index 28f4b4a0db..1963425595 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/CommodityViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/CommodityViewModel.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.energy import android.app.Application import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadParams import com.gh.gamecenter.entity.CommodityEntity diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterActivity.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterActivity.kt index ac81cc2502..d3b0ed2258 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterActivity.kt @@ -4,11 +4,11 @@ import android.content.Context import android.content.Intent import android.os.Build import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.DisplayUtils -class EnergyCenterActivity : NormalActivity() { +class EnergyCenterActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -29,7 +29,7 @@ class EnergyCenterActivity : NormalActivity() { fun getIntent(context: Context?, initTabIndex: Int): Intent? { val bundle = Bundle() - bundle.putInt(EntranceUtils.KEY_TAB_INDEX, if (initTabIndex == 0 || initTabIndex == 1) initTabIndex else 0) + bundle.putInt(EntranceConsts.KEY_TAB_INDEX, if (initTabIndex == 0 || initTabIndex == 1) initTabIndex else 0) return getTargetIntent(context, EnergyCenterActivity::class.java, EnergyCenterFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt index 55262c46fd..3bdf7643fe 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt @@ -8,10 +8,15 @@ import android.view.LayoutInflater import android.view.View import android.widget.* import androidx.fragment.app.Fragment -import com.gh.base.adapter.FragmentAdapter -import com.gh.base.fragment.BaseLazyFragment +import com.gh.gamecenter.common.base.adapter.FragmentAdapter +import com.gh.gamecenter.common.base.fragment.BaseLazyFragment import com.gh.common.util.* +import com.gh.common.util.DialogUtils import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentEnergyCenterBinding import com.gh.gamecenter.databinding.TabItemMainBinding import com.gh.gamecenter.entity.CommodityCategoryEntity @@ -34,7 +39,7 @@ class EnergyCenterFragment : BaseLazyFragment() { private val mTitleList = listOf("赚光能", "兑换区") private var mTabList = arrayListOf() private var mFragmentsList = ArrayList() - private var mCategoryList = ArrayList() + private var mCategoryList = ArrayList() private var mUserInfo: UserInfoEntity? = null private var mEnergy = 0L private var mSignStatus: SignStatusEntity? = null @@ -60,7 +65,7 @@ class EnergyCenterFragment : BaseLazyFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mInitTabIndex = arguments?.getInt(EntranceUtils.KEY_TAB_INDEX) ?: 0 + mInitTabIndex = arguments?.getInt(EntranceConsts.KEY_TAB_INDEX) ?: 0 if (mInitTabIndex != 0 && mInitTabIndex != 1) mInitTabIndex = 0 mEnergyCenterViewModel = viewModelProvider() @@ -104,10 +109,12 @@ class EnergyCenterFragment : BaseLazyFragment() { mUserHomeViewModel?.sign?.observeNonNull(this) { mSignStatus = it - DialogUtils.showSignSuccessDialog(requireContext()) { - mUserHomeViewModel?.getUserEnergy() - refreshTaskList() - } + DialogUtils.showSignSuccessDialog(requireContext(), object : ConfirmListener { + override fun onConfirm() { + mUserHomeViewModel?.getUserEnergy() + refreshTaskList() + } + }) } mUserHomeViewModel?.signStatus?.observeNonNull(this) { @@ -131,15 +138,15 @@ class EnergyCenterFragment : BaseLazyFragment() { Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> { DisplayMetrics() - .apply { requireActivity().display?.getRealMetrics(this) } - .heightPixels + .apply { requireActivity().display?.getRealMetrics(this) } + .heightPixels } else -> { @Suppress("DEPRECATION") DisplayMetrics() - .apply { requireActivity().windowManager.defaultDisplay.getRealMetrics(this) } - .heightPixels + .apply { requireActivity().windowManager.defaultDisplay.getRealMetrics(this) } + .heightPixels } } @@ -197,48 +204,49 @@ class EnergyCenterFragment : BaseLazyFragment() { val tag = "android:switcher:${viewpager.id}:" val taskFragment = childFragmentManager.findFragmentByTag("${tag}0") ?: TaskFragment() val commodityListFragment = childFragmentManager.findFragmentByTag("${tag}1") - ?: CommodityFragment().apply { - val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, "光能中心") - if (mCategoryList.isNotEmpty()) { - bundle.putParcelable(EntranceUtils.KEY_CATEGORY, mCategoryList[0]) - bundle.putParcelableArrayList(EntranceUtils.KEY_CATEGORY_LIST, mCategoryList) - } - arguments = bundle + ?: CommodityFragment().apply { + val bundle = Bundle() + bundle.putString(EntranceConsts.KEY_ENTRANCE, "光能中心") + if (mCategoryList.isNotEmpty()) { + bundle.putParcelable(EntranceConsts.KEY_CATEGORY, mCategoryList[0]) + bundle.putParcelableArrayList(EntranceConsts.KEY_CATEGORY_LIST, mCategoryList) } + arguments = bundle + } mFragmentsList.add(taskFragment) mFragmentsList.add(commodityListFragment) viewpager.offscreenPageLimit = mFragmentsList.size - viewpager.adapter = FragmentAdapter(childFragmentManager, mFragmentsList, mTitleList) + viewpager.adapter = + FragmentAdapter(childFragmentManager, mFragmentsList, mTitleList) viewpager.doOnScroll( - onPageSelected = { position -> - updateTabTextStyle(position, 0F) - }, - onPageScrolled = { position, positionOffset, _ -> - if (position + 1 != mTabList.size) { - mTabList[position].run { - textSize = (DEFAULT_TAB_TEXT_SIZE + ((1 - positionOffset) * 4)).roundTo(1) + onPageSelected = { position -> + updateTabTextStyle(position, 0F) + }, + onPageScrolled = { position, positionOffset, _ -> + if (position + 1 != mTabList.size) { + mTabList[position].run { + textSize = (DEFAULT_TAB_TEXT_SIZE + ((1 - positionOffset) * 4)).roundTo(1) // setTextColor(ColorUtils.blendARGB(TAB_DEFAULT_COLOR, TAB_SELECTED_COLOR, 1 - positionOffset)) - } - mTabList[position + 1].run { - textSize = (DEFAULT_TAB_TEXT_SIZE + ((positionOffset) * 4)).roundTo(1) + } + mTabList[position + 1].run { + textSize = (DEFAULT_TAB_TEXT_SIZE + ((positionOffset) * 4)).roundTo(1) // setTextColor(ColorUtils.blendARGB(TAB_DEFAULT_COLOR, TAB_SELECTED_COLOR, positionOffset)) - } + } - // 多 tab 切换的时候可能会出现某些 tab 的文字没有回归到原始大小的问题的问题 (positionOffset 不保证连续) - for ((index, tabTv) in mTabList.withIndex()) { - if (abs(index - position) >= 2) { - if (tabTv.textSize != DEFAULT_TAB_TEXT_SIZE) { - tabTv.textSize = DEFAULT_TAB_TEXT_SIZE + // 多 tab 切换的时候可能会出现某些 tab 的文字没有回归到原始大小的问题的问题 (positionOffset 不保证连续) + for ((index, tabTv) in mTabList.withIndex()) { + if (abs(index - position) >= 2) { + if (tabTv.textSize != DEFAULT_TAB_TEXT_SIZE) { + tabTv.textSize = DEFAULT_TAB_TEXT_SIZE // tabTv.setTextColor(TAB_DEFAULT_COLOR) - } } } } - - updateTabTextStyle(position, positionOffset) } + + updateTabTextStyle(position, positionOffset) + } ) tabLayout.setupWithViewPager(viewpager) @@ -371,6 +379,14 @@ class EnergyCenterFragment : BaseLazyFragment() { } } + override fun onNightModeChange() { + super.onNightModeChange() + mBinding?.run { + root.setBackgroundColor(R.color.background_white.toColor(requireContext())) + contentContainer.setBackgroundColor(R.color.background_white.toColor(requireContext())) + } + } + companion object { const val LOCATION = "光能中心" var TAB_TEXT_COLOR: Int = R.color.text_00DBA4.toColor() diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterViewModel.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterViewModel.kt index 5f8b5c8509..d3568bac52 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterViewModel.kt @@ -5,7 +5,7 @@ import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import com.gh.gamecenter.entity.CommodityCategoryEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseActivity.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseActivity.kt index 66995f63e3..768a66e913 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseActivity.kt @@ -3,11 +3,11 @@ package com.gh.gamecenter.energy import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.DisplayUtils -class EnergyHouseActivity : NormalActivity() { +class EnergyHouseActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -21,7 +21,7 @@ class EnergyHouseActivity : NormalActivity() { fun getIntent(context: Context?, categoryId: String? = null): Intent? { if (categoryId != null) { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_CATEGORY_ID, categoryId) + bundle.putString(EntranceConsts.KEY_CATEGORY_ID, categoryId) return getTargetIntent(context, EnergyHouseActivity::class.java, EnergyHouseFragment::class.java, bundle) } return getTargetIntent(context, EnergyHouseActivity::class.java, EnergyHouseFragment::class.java) diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseFragment.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseFragment.kt index dcd31cc58d..1cc4ff2f2b 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseFragment.kt @@ -11,9 +11,11 @@ import android.widget.TextView import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentStatePagerAdapter -import com.gh.base.fragment.BaseLazyFragment +import com.gh.gamecenter.common.base.fragment.BaseLazyFragment import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.FragmentEnergyHouseBinding import com.gh.gamecenter.databinding.TabItemCommodityBinding import com.gh.gamecenter.entity.CommodityCategoryEntity @@ -62,7 +64,7 @@ class EnergyHouseFragment: BaseLazyFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mCategoryId = arguments?.getString(EntranceUtils.KEY_CATEGORY_ID) ?: "" + mCategoryId = arguments?.getString(EntranceConsts.KEY_CATEGORY_ID) ?: "" mEnergyHouseViewModel = viewModelProvider() mUserViewModel = viewModelProvider(UserViewModel.Factory(HaloApp.getInstance().application)) mUserHomeViewModel = viewModelProvider(UserHomeViewModel.Factory(HaloApp.getInstance().application, UserManager.getInstance().userId)) @@ -185,8 +187,8 @@ class EnergyHouseFragment: BaseLazyFragment() { mTitleList.add(entity.name) val commodityListFragment = childFragmentManager.findFragmentByTag("$tag$index") ?: CommodityFragment().with(bundleOf( - EntranceUtils.KEY_ENTRANCE to "光能屋", - EntranceUtils.KEY_CATEGORY to entity)) + EntranceConsts.KEY_ENTRANCE to "光能屋", + EntranceConsts.KEY_CATEGORY to entity)) mFragments.add(commodityListFragment) } @@ -443,6 +445,11 @@ class EnergyHouseFragment: BaseLazyFragment() { } } + override fun onNightModeChange() { + super.onNightModeChange() + mBinding?.root?.setBackgroundColor(R.color.background_white.toColor(requireContext())) + } + companion object { const val LOCATION = "光能屋" var TAB_TEXT_COLOR: Int = R.color.text_00DBA4.toColor() diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseViewModel.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseViewModel.kt index ef906e18b5..506eaa9481 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyHouseViewModel.kt @@ -6,8 +6,7 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import com.gh.gamecenter.entity.CommodityCategoryEntity import com.gh.gamecenter.entity.RollNoticeEntity -import com.gh.gamecenter.entity.TaskEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/energy/HorizontalTaskAdapter.kt b/app/src/main/java/com/gh/gamecenter/energy/HorizontalTaskAdapter.kt index b96f9a67d6..fc8749953c 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/HorizontalTaskAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/HorizontalTaskAdapter.kt @@ -3,9 +3,14 @@ package com.gh.gamecenter.energy import android.content.Context import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toResString +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.NoviceTaskItemBinding import com.gh.gamecenter.entity.TaskEntity import com.gh.gamecenter.gamedetail.dialog.InviteCodeDialog diff --git a/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt b/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt index 12112cc19c..22e0aa15db 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/TaskAdapter.kt @@ -6,13 +6,16 @@ import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* +import com.gh.common.util.DialogUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.DailyTaskItemBinding import com.gh.gamecenter.databinding.NoviceTasksItemBinding import com.gh.gamecenter.databinding.TaskBottomItemBinding @@ -136,6 +139,10 @@ class TaskAdapter(context: Context) : ListAdapter(context) { is DailyTaskViewHolder -> { val task = mEntityList[position].dailyTask ?: return holder.binding.run { + container.background = R.drawable.background_shape_white_radius_5.toDrawable(mContext) + taskName.setTextColor(R.color.text_title.toColor(mContext)) + progress.setTextColor(R.color.text_subtitle.toColor(mContext)) + taskBtn.setTextColor(R.color.text_white.toColor(mContext)) ImageUtils.display(taskIcon, task.icon) taskName.text = task.name progress.goneIf(task.isFixed) diff --git a/app/src/main/java/com/gh/gamecenter/energy/TaskFragment.kt b/app/src/main/java/com/gh/gamecenter/energy/TaskFragment.kt index f84aa14668..e657baacc7 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/TaskFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/TaskFragment.kt @@ -1,9 +1,9 @@ package com.gh.gamecenter.energy import android.os.Bundle -import com.gh.common.util.ClickUtils -import com.gh.common.util.safelyGetInRelease -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.core.utils.ClickUtils +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.eventbus.EBTask diff --git a/app/src/main/java/com/gh/gamecenter/entity/CommentEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/CommentEntity.kt index 70693a2c2c..470985fb90 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/CommentEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/CommentEntity.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.entity import android.os.Parcelable -import com.gh.common.annotation.SyncPage -import com.gh.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.annotation.SyncPage +import com.gh.gamecenter.common.syncpage.SyncFieldConstants import com.google.gson.annotations.SerializedName import kotlinx.parcelize.Parcelize @@ -34,7 +34,9 @@ data class CommentEntity( var floor: Int = 0, var isExpand: Boolean = false, @SerializedName("attached") // 楼中楼 - var subCommentList: ArrayList? = null + var subCommentList: ArrayList? = null, + var isHighlight: Boolean = false, // 是否高亮处理 + var isForceExpand: Boolean = false // 是否强制展开,即显示时就是展开状态 ) : Parcelable { fun clone(): CommentEntity { diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt index aed63a3647..9238164299 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.entity import android.os.Parcelable import android.text.TextUtils import com.gh.common.constant.Config -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.filter.RegionSettingHelper import com.gh.gamecenter.R diff --git a/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt index dfeada2d99..85b459cedf 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.entity import android.os.Parcelable -import com.gh.common.annotation.SyncPage -import com.gh.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.annotation.SyncPage +import com.gh.gamecenter.common.syncpage.SyncFieldConstants import com.gh.gamecenter.qa.entity.ArticleDraftEntity import com.gh.gamecenter.qa.entity.QuestionDraftEntity import com.google.gson.annotations.SerializedName diff --git a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt index d1f03036fb..6bb952e6c4 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt @@ -177,6 +177,9 @@ class MessageEntity { var topId: String? = null var content: String? = null + + @SerializedName("parent_content") + var parentContent: String? = null } class Video { @@ -203,6 +206,11 @@ class MessageEntity { @SerializedName("comment_id") var commentId: String? = null + + var comment: String? = null + + @SerializedName("parent_content") + var parentContent: String? = null } class Activity { diff --git a/app/src/main/java/com/gh/gamecenter/entity/MessageUnreadEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MessageUnreadEntity.kt index b4c7e4b094..fd8b4c51a0 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MessageUnreadEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MessageUnreadEntity.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.entity -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.google.gson.annotations.SerializedName import java.util.* diff --git a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt index 9b1b345eb8..c05e01b1c8 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt @@ -2,11 +2,11 @@ package com.gh.gamecenter.entity import android.os.Parcel import android.os.Parcelable -import com.gh.common.annotation.SyncPage -import com.gh.common.constant.Constants -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.util.SPUtils -import com.gh.common.util.TimeUtils +import com.gh.gamecenter.common.annotation.SyncPage +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.TimeUtils import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.entity.AnswerEntity import com.gh.gamecenter.qa.entity.CommunityVideoEntity diff --git a/app/src/main/java/com/gh/gamecenter/entity/RatingComment.kt b/app/src/main/java/com/gh/gamecenter/entity/RatingComment.kt index f092c04d1f..6aa421f247 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/RatingComment.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/RatingComment.kt @@ -1,7 +1,7 @@ package com.gh.gamecenter.entity import android.os.Parcelable -import com.gh.common.annotation.Synchronize +import com.gh.gamecenter.common.annotation.Synchronize import com.google.gson.annotations.SerializedName import kotlinx.parcelize.Parcelize diff --git a/app/src/main/java/com/gh/gamecenter/entity/RatingReplyEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/RatingReplyEntity.kt index b87d99ffb9..6c64c840fb 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/RatingReplyEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/RatingReplyEntity.kt @@ -5,15 +5,18 @@ import com.google.gson.annotations.SerializedName import kotlinx.parcelize.Parcelize @Parcelize -class RatingReplyEntity(@SerializedName("_id") - val id: String = "", - val content: String = "", - val time: Long = 0, - val me: MeEntity = MeEntity(), - val user: UserEntity = UserEntity(), - var vote: Int = 0, - val weight: Int = 0, - val parent: Parent? = null) : Parcelable { +class RatingReplyEntity( + @SerializedName("_id") + val id: String = "", + val content: String = "", + val time: Long = 0, + val me: MeEntity = MeEntity(), + val user: UserEntity = UserEntity(), + var vote: Int = 0, + val weight: Int = 0, + val parent: Parent? = null, + var isHighlight: Boolean = false, +) : Parcelable { @Parcelize class Parent(val user: UserEntity) : Parcelable } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt index cca3a8ae6e..0195e44f3f 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt @@ -29,8 +29,6 @@ data class SettingsEntity( private var articleEntrance: String = "", @SerializedName("video_advertisement") var videoAdvertisement: VideoAds? = null, //新增字段video_advertisement,可能为空,代表广告关闭 - @SerializedName("game_dome_switch") - var gameDomeSwitch: String = "",//试玩显示开关,on打开 @SerializedName("permission_popup_switch") var permissionPopupSwitch: String = "off",//权限引导弹窗开关,on/off @SerializedName("permission_popup_applied_versions") diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt index 3748eb4524..81d58cc664 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt @@ -6,15 +6,15 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseActivity -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.common.util.NewLogUtils -import com.gh.common.util.goneIf import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.forum.home.ForumArticleAskItemViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListFragment.kt index 0671bdd89d..3ca7155de2 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListFragment.kt @@ -6,12 +6,16 @@ import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.common.view.divider.HorizontalDividerItemDecoration +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.divider.HorizontalDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.databinding.FragmentListBaseSkeletonBinding import com.gh.gamecenter.eventbus.EBDeleteDetail import com.gh.gamecenter.eventbus.EBTypeChange @@ -57,8 +61,8 @@ class ForumArticleAskListFragment : LazyListFragment { - return Pair(intent.getStringExtra(EntranceUtils.KEY_BBS_ID) ?: "", "") + return Pair(intent.getStringExtra(EntranceConsts.KEY_BBS_ID) ?: "", "") } override fun preventRecreateFragmentByFragmentManager(): Boolean = true @@ -40,8 +40,8 @@ class ForumDetailActivity : BaseActivity() { @JvmStatic fun getIntent(context: Context, bbsId: String, entrance: String): Intent { val intent = Intent(context, ForumDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_BBS_ID, bbsId) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance) + intent.putExtra(EntranceConsts.KEY_BBS_ID, bbsId) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt index 4568599c08..32fdf548d8 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailFragment.kt @@ -26,15 +26,21 @@ import com.facebook.drawee.drawable.ScalingUtils import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder import com.facebook.drawee.generic.RoundingParams import com.facebook.drawee.view.SimpleDraweeView -import com.gh.base.fragment.BaseLazyTabFragment -import com.gh.common.constant.Constants -import com.gh.common.dialog.TrackableDialog -import com.gh.common.runOnUiThread +import com.gh.gamecenter.common.base.fragment.BaseLazyTabFragment +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.base.TrackableDialog +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* -import com.gh.common.view.SegmentedFilterView +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.SegmentedFilterView +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentForumDetailBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBForumFollowChange @@ -79,26 +85,26 @@ class ForumDetailFragment : BaseLazyTabFragment() { override fun initFragmentList(fragments: MutableList) { mAllForumArticleAskListFragment = ForumArticleAskListFragment().with( bundleOf( - EntranceUtils.KEY_ENTRANCE to "论坛详情", - EntranceUtils.KEY_PATH to "全部", EntranceUtils.KEY_BBS_ID to bbsId + EntranceConsts.KEY_ENTRANCE to "论坛详情", + EntranceConsts.KEY_PATH to "全部", EntranceConsts.KEY_BBS_ID to bbsId ) ) as ForumArticleAskListFragment? mEssenceForumArticleAskListFragment = ForumArticleAskListFragment().with( bundleOf( - EntranceUtils.KEY_ENTRANCE to "论坛详情", - EntranceUtils.KEY_PATH to "精华", EntranceUtils.KEY_BBS_ID to bbsId + EntranceConsts.KEY_ENTRANCE to "论坛详情", + EntranceConsts.KEY_PATH to "精华", EntranceConsts.KEY_BBS_ID to bbsId ) ) as ForumArticleAskListFragment? mAskForumArticleAskListFragment = ForumArticleAskListFragment().with( bundleOf( - EntranceUtils.KEY_ENTRANCE to "论坛详情", - EntranceUtils.KEY_PATH to "问答", EntranceUtils.KEY_BBS_ID to bbsId + EntranceConsts.KEY_ENTRANCE to "论坛详情", + EntranceConsts.KEY_PATH to "问答", EntranceConsts.KEY_BBS_ID to bbsId ) ) as ForumArticleAskListFragment? mVideoForumArticleAskListFragment = ForumArticleAskListFragment().with( bundleOf( - EntranceUtils.KEY_ENTRANCE to "论坛详情", - EntranceUtils.KEY_PATH to "视频", EntranceUtils.KEY_BBS_ID to bbsId + EntranceConsts.KEY_ENTRANCE to "论坛详情", + EntranceConsts.KEY_PATH to "视频", EntranceConsts.KEY_BBS_ID to bbsId ) ) as ForumArticleAskListFragment? fragments.add(mAllForumArticleAskListFragment!!) @@ -108,7 +114,7 @@ class ForumDetailFragment : BaseLazyTabFragment() { } override fun restoreFragment(fragment: Fragment) { - when (fragment.arguments?.getString(EntranceUtils.KEY_PATH)) { + when (fragment.arguments?.getString(EntranceConsts.KEY_PATH)) { "全部" -> { mAllForumArticleAskListFragment = fragment as ForumArticleAskListFragment } @@ -138,7 +144,7 @@ class ForumDetailFragment : BaseLazyTabFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - bbsId = arguments?.getString(EntranceUtils.KEY_BBS_ID, "") ?: "" + bbsId = arguments?.getString(EntranceConsts.KEY_BBS_ID, "") ?: "" val factory = ForumDetailViewModel.Factory(bbsId) mViewModel = viewModelProvider(factory) mViewModel?.forumDetail?.observe(this, Observer { @@ -760,7 +766,7 @@ class ForumDetailFragment : BaseLazyTabFragment() { if (mBinding.forumThumbSmall.visibility == View.GONE) { DisplayUtils.setStatusBarColor(requireActivity(), R.color.transparent) } else { - DisplayUtils.setStatusBarColor(requireActivity(), if (mNightMode) R.color.black else R.color.white) + requireActivity().updateStatusBarColor(R.color.black, R.color.white) } mBinding.allOrderSfv.run { setContainerBackground(R.drawable.button_round_f5f5f5.toDrawable(requireContext())) diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailViewModel.kt index f24c4109cc..bf3ac16ae3 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumDetailViewModel.kt @@ -3,7 +3,10 @@ package com.gh.gamecenter.forum.detail import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.* -import com.gh.common.util.* +import com.gh.gamecenter.common.utils.clearHtmlFormatCompletely +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.removeVideoContent +import com.gh.gamecenter.common.utils.singleToMain import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.ForumDetailEntity import com.gh.gamecenter.entity.ForumVideoEntity @@ -11,9 +14,9 @@ import com.gh.gamecenter.entity.UserEntity import com.gh.gamecenter.eventbus.EBForumRecordChange import com.gh.gamecenter.mvvm.Resource import com.gh.gamecenter.qa.entity.* -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.EmptyResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.EmptyResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.AppDatabase import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumTopLinkAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumTopLinkAdapter.kt index 0b87c08b4d..b5c714561a 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/detail/ForumTopLinkAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/detail/ForumTopLinkAdapter.kt @@ -6,7 +6,10 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.* -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.view.DrawableView +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.ForumTopLinkItemBinding import com.gh.gamecenter.entity.ForumDetailEntity import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt index ebb7938525..76d8a84e33 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt @@ -11,8 +11,9 @@ import android.widget.SeekBar import android.widget.TextView import androidx.core.content.ContextCompat import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.video.detail.CustomManager import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeFragment.kt index 3926a2491f..ae0d1d8cef 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeFragment.kt @@ -17,12 +17,16 @@ import androidx.core.graphics.ColorUtils import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.viewpager.widget.ViewPager -import com.gh.base.adapter.FragmentAdapter -import com.gh.base.fragment.BaseFragment_TabLayout -import com.gh.base.fragment.LazyFragment -import com.gh.common.dialog.TrackableDialog import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.TrackableDialog +import com.gh.gamecenter.common.base.adapter.FragmentAdapter +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.FragmentCommunityHomeBinding import com.gh.gamecenter.databinding.TabItemCommunityBinding import com.gh.gamecenter.entity.ForumVideoEntity @@ -126,22 +130,22 @@ class CommunityHomeFragment : LazyFragment() { private fun initViewPager() { val defaultSelectedPosition = if (mDefaultSelectedTab != -1) mDefaultSelectedTab - else arguments?.getInt(EntranceUtils.KEY_SUB_POSITION) ?: 0 + else arguments?.getInt(EntranceConsts.KEY_SUB_POSITION) ?: 0 mBinding?.run { mTabList.clear() mFragmentList.clear() val tag = "android:switcher:${viewPager.id}:" val forumArticleListFragment = childFragmentManager.findFragmentByTag("${tag}0") - ?: ForumArticleListFragment().with(bundleOf(EntranceUtils.KEY_ENTRANCE to "社区", EntranceUtils.KEY_PATH to "推荐")) + ?: ForumArticleListFragment().with(bundleOf(EntranceConsts.KEY_ENTRANCE to "社区", EntranceConsts.KEY_PATH to "推荐")) mFragmentList.add(forumArticleListFragment) val forumFragment = childFragmentManager.findFragmentByTag("${tag}1") - ?: ForumFragment().with(bundleOf(EntranceUtils.KEY_ENTRANCE to "社区")) + ?: ForumFragment().with(bundleOf(EntranceConsts.KEY_ENTRANCE to "社区")) mFragmentList.add(forumFragment) val activityFragment = childFragmentManager.findFragmentByTag("${tag}2") - ?: ForumActivityFragment().with(bundleOf(EntranceUtils.KEY_ENTRANCE to "活动")) + ?: ForumActivityFragment().with(bundleOf(EntranceConsts.KEY_ENTRANCE to "活动")) mFragmentList.add(activityFragment) viewPager.run { @@ -497,7 +501,7 @@ class CommunityHomeFragment : LazyFragment() { override fun onNightModeChange() { super.onNightModeChange() - DisplayUtils.setLightStatusBar(requireActivity(), !mNightMode) + if (isSupportVisible) DisplayUtils.setLightStatusBar(requireActivity(), !mNightMode) mBinding?.tabLayout?.run { for (i in 0 until tabCount) { val tab: TabLayout.Tab? = getTabAt(i) diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeViewModel.kt index a0ebc46aca..4fa40e2284 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeViewModel.kt @@ -2,13 +2,16 @@ package com.gh.gamecenter.forum.home import android.app.Application import androidx.lifecycle.* -import com.gh.common.util.* +import com.gh.gamecenter.common.utils.clearHtmlFormatCompletely +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.removeInsertedContent +import com.gh.gamecenter.common.utils.removeVideoContent import com.gh.gamecenter.entity.* import com.gh.gamecenter.qa.entity.ArticleDetailEntity import com.gh.gamecenter.qa.entity.ArticleEntity import com.gh.gamecenter.qa.entity.QuestionsDetailEntity import com.gh.gamecenter.qa.entity.TimeEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager class CommunityHomeViewModel(application: Application) : AndroidViewModel(application) { diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityAdapter.kt index 48517a1ccd..c4faac3812 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityAdapter.kt @@ -4,13 +4,16 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.time.TimeUtil import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ForumActivityItemBinding import com.gh.gamecenter.entity.ForumActivityEntity diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityFragment.kt index d9ade0cec2..3415f2f75f 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityFragment.kt @@ -5,14 +5,15 @@ import android.view.ViewGroup import android.widget.CheckedTextView import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.NewLogUtils -import com.gh.common.util.dip2px -import com.gh.common.util.observeNonNull -import com.gh.common.util.viewModelProvider -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.viewModelProvider + import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.gamecenter.databinding.FragmentForumActivityBinding import com.gh.gamecenter.databinding.LayoutForumActivityCategoryItemBinding import com.gh.gamecenter.entity.ForumActivityCategoryEntity diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityViewModel.kt index 5990577d1e..8c1bf97640 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityViewModel.kt @@ -3,12 +3,11 @@ package com.gh.gamecenter.forum.home import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.MutableLiveData -import com.gh.common.util.UrlFilterUtils -import com.gh.common.util.singleToMain +import com.gh.gamecenter.common.utils.singleToMain import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.ForumActivityCategoryEntity import com.gh.gamecenter.entity.ForumActivityEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Single diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt index cfcc521bc7..203100175c 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt @@ -6,9 +6,15 @@ import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.text.SpannableStringBuilder import android.view.View -import com.gh.base.BaseActivity +import com.gh.gamecenter.common.base.BaseActivity import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.ForumVideoEntity @@ -115,8 +121,8 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B if (entity.getPassVideos().isNotEmpty()) { val videoSpan = SpanBuilder(" ").image(1, " ".length, R.drawable.ic_article_video_label).build() binding.title.text = SpannableStringBuilder() - .append(entity.questions.title) - .append(videoSpan) + .append(entity.questions.title) + .append(videoSpan) } else { binding.title.text = entity.questions.title } @@ -143,11 +149,13 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B if (entrance == "论坛详情") { NewLogUtils.logForumDetailFeedBadgeClick(user.badge?.name ?: "", bbsId, bbsType) } - DialogUtils.showViewBadgeDialog(binding.root.context, user.badge) { - MtaHelper.onEvent("进入徽章墙_用户记录", path, user.name + "(" + user.id + ")") - MtaHelper.onEvent("徽章中心", "进入徽章中心", path) - DirectUtils.directToBadgeWall(binding.root.context, user.id, user.name, user.icon) - } + DialogUtils.showViewBadgeDialog(binding.root.context, user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("进入徽章墙_用户记录", path, user.name + "(" + user.id + ")") + MtaHelper.onEvent("徽章中心", "进入徽章中心", path) + DirectUtils.directToBadgeWall(binding.root.context, user.id, user.name, user.icon) + } + }) } binding.userIcon.setOnClickListener { @@ -157,7 +165,11 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B if (entrance == "论坛详情") { NewLogUtils.logForumDetailFeedUserClick("click_forum_detail_profile_photo", userId, contentType, "${path}tab", bbsId, bbsType) } - MtaHelper.onEvent(getEventId(BaseActivity.mergeEntranceAndPath(entrance, path)), getKey(BaseActivity.mergeEntranceAndPath(entrance, path)), "用户头像") + MtaHelper.onEvent( + getEventId(BaseActivity.mergeEntranceAndPath(entrance, path)), + getKey(BaseActivity.mergeEntranceAndPath(entrance, path)), + "用户头像" + ) DirectUtils.directToHomeActivity(binding.root.context, entity.user.id, 1, entrance, path) } binding.userName.setOnClickListener { @@ -167,7 +179,11 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B if (entrance == "论坛详情") { NewLogUtils.logForumDetailFeedUserClick("click_forum_detail_nickname", userId, contentType, "${path}tab", bbsId, bbsType) } - MtaHelper.onEvent(getEventId(BaseActivity.mergeEntranceAndPath(entrance, path)), getKey(BaseActivity.mergeEntranceAndPath(entrance, path)), "用户名字") + MtaHelper.onEvent( + getEventId(BaseActivity.mergeEntranceAndPath(entrance, path)), + getKey(BaseActivity.mergeEntranceAndPath(entrance, path)), + "用户名字" + ) DirectUtils.directToHomeActivity(binding.root.context, entity.user.id, 1, entrance, path) } binding.concernBtn.setOnClickListener { @@ -220,23 +236,23 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B val orientationUtils = OrientationUtils(itemView.context as Activity, visibleView) orientationUtils.isEnable = false GSYVideoOptionBuilder() - .setIsTouchWiget(false) - .setUrl(entity.url) - .setRotateViewAuto(false) - .setCacheWithPlay(true) - .setRotateWithSystem(false) - .setReleaseWhenLossAudio(true) - .setLooping(false) - .setShowFullAnimation(false) - .setEnlargeImageRes(R.drawable.ic_game_detail_enter_full_screen) - .setShrinkImageRes(R.drawable.ic_game_detail_exit_full_screen) - .setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onQuitFullscreen(url: String?, vararg objects: Any) { - orientationUtils.backToProtVideo() - visibleView.uploadVideoStreamingPlaying("退出全屏") - } - }) - .build(visibleView) + .setIsTouchWiget(false) + .setUrl(entity.url) + .setRotateViewAuto(false) + .setCacheWithPlay(true) + .setRotateWithSystem(false) + .setReleaseWhenLossAudio(true) + .setLooping(false) + .setShowFullAnimation(false) + .setEnlargeImageRes(R.drawable.ic_game_detail_enter_full_screen) + .setShrinkImageRes(R.drawable.ic_game_detail_exit_full_screen) + .setVideoAllCallBack(object : GSYSampleCallBack() { + override fun onQuitFullscreen(url: String?, vararg objects: Any) { + orientationUtils.backToProtVideo() + visibleView.uploadVideoStreamingPlaying("退出全屏") + } + }) + .build(visibleView) visibleView.run { updateVideoData(entity) updateThumb(entity.poster) @@ -331,23 +347,39 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B "video" -> "视频帖评论" else -> "提问帖评论" } - NewLogUtils.logForumDetailFeedContentClick("click_forum_detail_comment", userId, contentId, contentType, sequence, bbsId, bbsType, tabInfo, commentType) + NewLogUtils.logForumDetailFeedContentClick( + "click_forum_detail_comment", + userId, + contentId, + contentType, + sequence, + bbsId, + bbsType, + tabInfo, + commentType + ) } } when (entity.type) { "community_article" -> { val communityId = if (entity.bbs.id.isNotEmpty()) entity.bbs.id else UserManager.getInstance().community.id - val intent = ArticleDetailActivity.getCommentIntent(itemView.context, - CommunityEntity(communityId, entity.communityName ?: ""), - entity.id ?: "", - entrance, "") + val intent = ArticleDetailActivity.getCommentIntent( + itemView.context, + CommunityEntity(communityId, entity.communityName ?: ""), + entity.id ?: "", + entrance, "" + ) itemView.context.startActivity(intent) MtaHelper.onEvent(getEventId(entrance), getKey(entrance), "评论图标") } "video" -> { val communityId = if (entity.bbs.id.isNotEmpty()) entity.bbs.id else UserManager.getInstance().community.id - itemView.context.startActivity(ForumVideoDetailActivity.getIntent(itemView.context, entity.id - ?: "",communityId, true)) + itemView.context.startActivity( + ForumVideoDetailActivity.getIntent( + itemView.context, entity.id + ?: "", communityId, true + ) + ) } "question" -> { if (entity.questions.answerCount == 0) { @@ -356,7 +388,15 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B itemView.context.startActivity(NewQuestionDetailActivity.getCommentIntent(it.context, entity.questions.id, entrance, "")) } "answer" -> { - itemView.context.startActivity(NewQuestionDetailActivity.getCommentIntent(it.context, entity.questions.id, entity.id ?: "", entrance, "")) + itemView.context.startActivity( + NewQuestionDetailActivity.getCommentIntent( + it.context, + entity.questions.id, + entity.id ?: "", + entrance, + "" + ) + ) } } } @@ -380,7 +420,16 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B val bbsId = entity.bbs.id val bbsType = if (entity.bbs.type == "official_bbs") "综合论坛" else "游戏论坛" val tabInfo = "${path}tab" - NewLogUtils.logForumDetailFeedContentClick("click_forum_detail_like", userId, contentId, contentType, sequence, bbsId, bbsType, tabInfo) + NewLogUtils.logForumDetailFeedContentClick( + "click_forum_detail_like", + userId, + contentId, + contentType, + sequence, + bbsId, + bbsType, + tabInfo + ) } } @@ -388,6 +437,21 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B MtaHelper.onEvent(getEventId(entrance), getKey(entrance), "点赞图标") if (!voteIcon.isChecked) voteAnswer(entity) else cancelAnswerVote(entity) + } else { + MtaHelper.onEvent(getEventId(entrance), getKey(entrance), "邀请回答") + val questionsDetailEntity = QuestionsDetailEntity( + id = entity.id, + title = entity.questions.title, + images = entity.images, + description = entity.questions.description + ) + it.context.startActivity( + QuestionsInviteActivity.getIntent( + it.context, + questionsDetailEntity, + entrance + ) + ) } } } diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListAdapter.kt index dc8f870c5c..ced9640898 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListAdapter.kt @@ -4,16 +4,19 @@ import android.content.Context import android.graphics.Color import android.view.View import android.view.ViewGroup -import android.widget.LinearLayout import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseActivity -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler -import com.gh.common.util.* +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListFragment.kt index 07885a43f8..63fd987022 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListFragment.kt @@ -6,12 +6,18 @@ import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants -import com.gh.common.iinterface.IScrollable +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.iinterface.IScrollable import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.databinding.FragmentForumListBinding import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.eventbus.EBDeleteDetail @@ -48,7 +54,7 @@ class ForumArticleListFragment : LazyListFragment 6) list.subList(0, 6) else list officialForumRv.adapter = OfficialForumAdapter(requireContext(), "社区-论坛-热门论坛", newList) @@ -356,6 +369,14 @@ class ForumFragment: LazyFragment(), SwipeRefreshLayout.OnRefreshListener { otherWelfareContainer.visibility = View.VISIBLE otherWelfareRv.layoutManager = GridLayoutManager(requireContext(), 2) otherWelfareRv.adapter = WelfaresAdapter(requireContext(), welfareLists) + otherWelfareRv.addItemDecoration( + GridSpacingItemColorDecoration( + requireContext(), + 0, + 16, + R.color.transparent + ) + ) otherWelfareRv.addItemDecoration(GridSpacingItemColorDecoration(requireContext(), 8, 8, R.color.transparent)) } } diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumHomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumHomeViewModel.kt index 81f3f871bf..a92a8c5d36 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumHomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumHomeViewModel.kt @@ -1,21 +1,19 @@ package com.gh.gamecenter.forum.home -import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MediatorLiveData -import com.gh.common.util.observableToMain -import com.gh.common.util.toRequestBody +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.toRequestBody import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.entity.LinkEntity import com.gh.gamecenter.manager.PackagesManager import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.functions.BiFunction -import io.reactivex.functions.Function import io.reactivex.schedulers.Schedulers import retrofit2.HttpException diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordDao.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordDao.kt index 35ec1e0875..ca8b932df1 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordDao.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordDao.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.forum.home -import com.gh.common.util.SPUtils +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.entity.ForumEntity class ForumRecordDao { diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordsAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordsAdapter.kt index 85177e7d17..76fffefdea 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordsAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordsAdapter.kt @@ -2,8 +2,11 @@ package com.gh.gamecenter.forum.home import android.content.Context import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.* +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.databinding.ForumRecordItemBinding import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.forum.detail.ForumDetailActivity diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt index aa42e22c10..b5a41fb79a 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumScrollCalculatorHelper.kt @@ -6,11 +6,11 @@ import android.os.Looper import android.text.TextUtils import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.Constants -import com.gh.common.util.MD5Utils -import com.gh.common.util.NetworkUtils -import com.gh.common.util.SPUtils -import com.gh.common.util.safelyGetInRelease +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.common.utils.NetworkUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.safelyGetInRelease import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.setting.VideoSettingFragment import com.gh.gamecenter.video.detail.CustomManager diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumViewModel.kt index d1cb474723..02eef20134 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumViewModel.kt @@ -4,14 +4,14 @@ import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.* import com.gh.common.util.CheckLoginUtils -import com.gh.common.util.createRequestBodyAny -import com.gh.common.util.singleToMain +import com.gh.gamecenter.common.utils.createRequestBodyAny +import com.gh.gamecenter.common.utils.singleToMain import com.gh.gamecenter.entity.ForumBannerEntity import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.entity.ForumUnreadEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumVisitDao.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumVisitDao.kt index 5bbc52040b..203ec66c3e 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumVisitDao.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumVisitDao.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.forum.home -import com.gh.common.util.SPUtils +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.entity.ForumEntity class ForumVisitDao { diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/HorizontalForumsAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/HorizontalForumsAdapter.kt index d581d12ea0..17dc0acdbe 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/HorizontalForumsAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/HorizontalForumsAdapter.kt @@ -2,9 +2,13 @@ package com.gh.gamecenter.forum.home import android.content.Context import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.databinding.HorizontalForumItemBinding import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.eventbus.EBForumFollowChange @@ -42,7 +46,7 @@ class HorizontalForumsAdapter( val forumEntity = list[position] gameNameTv.text = forumEntity.name - hotTv.text = if (forumEntity.hot > 10000) "10000+" else forumEntity.hot.toString() + hotTv.text = NumberUtils.transSimpleCount(forumEntity.hot) unreadHint.goneIf(!forumEntity.unread || mEntrance.contains("热门论坛")) followTv.goneIf(!mEntrance.contains("热门论坛")) diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt index e63d2eedec..90a920c03a 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt @@ -2,9 +2,10 @@ package com.gh.gamecenter.forum.home import android.content.Context import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.NewLogUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.core.utils.NumberUtils import com.gh.gamecenter.databinding.OfficialForumItemBinding import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.forum.detail.ForumDetailActivity @@ -28,7 +29,7 @@ class OfficialForumAdapter( val forumEntity = mList[position] forumName.text = forumEntity.name forumIv.displayGameIcon(forumEntity.icon, null) - hotTv.text = if (forumEntity.hot > 10000) "10000+" else forumEntity.hot.toString() + hotTv.text = NumberUtils.transSimpleCount(forumEntity.hot) root.setOnClickListener { val bbsType = if (forumEntity.type == "official_bbs") "综合论坛" else "游戏论坛" diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/WelfaresAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/WelfaresAdapter.kt index 2a1c1063c0..dd58a4b21e 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/WelfaresAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/WelfaresAdapter.kt @@ -2,11 +2,11 @@ package com.gh.gamecenter.forum.home import android.content.Context import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.CheckLoginUtils import com.gh.common.util.DirectUtils import com.gh.common.util.NewLogUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.InfoActivity import com.gh.gamecenter.databinding.ForumWelfareItemBinding import com.gh.gamecenter.toolbox.ToolBoxBlockActivity diff --git a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListActivity.kt b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListActivity.kt index 8b1adda0b2..69a472a554 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListActivity.kt @@ -3,13 +3,12 @@ package com.gh.gamecenter.forum.list import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class ForumListActivity : NormalActivity() { +class ForumListActivity : ToolBarActivity() { override fun isAutoResetViewBackgroundEnabled(): Boolean = true @@ -25,7 +24,7 @@ class ForumListActivity : NormalActivity() { fun getIntent(context: Context, type: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_TYPE, type) + bundle.putString(EntranceConsts.KEY_TYPE, type) return getTargetIntent(context, ForumListActivity::class.java, ForumListFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListAdapter.kt index 696eb18b44..41cf5fdaa3 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListAdapter.kt @@ -4,12 +4,16 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.debounceActionWithInterval +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.ForumMyFollowBinding import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.eventbus.EBForumFollowChange diff --git a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListFragment.kt index da72296a71..3d725d1cb2 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListFragment.kt @@ -2,8 +2,11 @@ package com.gh.gamecenter.forum.list import android.os.Bundle import com.gh.common.util.* -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.entity.ForumEntity class ForumListFragment: ListFragment() { @@ -20,7 +23,7 @@ class ForumListFragment: ListFragment() { override fun getItemDecoration()= SpacingItemDecoration(onlyDecorateTheFirstItem = true, top = 8F.dip2px()) override fun onCreate(savedInstanceState: Bundle?) { - val type = arguments?.getString(EntranceUtils.KEY_TYPE) ?: "" + val type = arguments?.getString(EntranceConsts.KEY_TYPE) ?: "" mViewModel = provideListViewModel() mViewModel?.type = type when (type) { diff --git a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListVIewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListVIewModel.kt index 8addc80180..55b47d8fca 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/list/ForumListVIewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/list/ForumListVIewModel.kt @@ -5,7 +5,7 @@ import android.app.Application import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorActivity.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorActivity.kt index 0986f49abb..2f90567f03 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorActivity.kt @@ -5,18 +5,18 @@ import android.content.Intent import android.os.Build import android.os.Bundle import android.view.View -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.entity.ApplyModeratorStatusEntity -class ApplyModeratorActivity : NormalActivity() { +class ApplyModeratorActivity : ToolBarActivity() { companion object { fun getIntent(context: Context, bbsId: String, status: ApplyModeratorStatusEntity): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_BBS_ID, bbsId) + bundle.putString(EntranceConsts.KEY_BBS_ID, bbsId) bundle.putParcelable("status", status) return getTargetIntent( context, diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorFragment.kt index 31c0c920a0..1fb0761a1a 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorFragment.kt @@ -8,23 +8,27 @@ import android.widget.LinearLayout import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.common.avoidcallback.AvoidOnResultManager -import com.gh.common.avoidcallback.Callback +import com.gh.gamecenter.common.avoidcallback.AvoidOnResultManager +import com.gh.gamecenter.common.avoidcallback.Callback import com.gh.common.dialog.ApplyModeratorDialogFragment import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.ShellActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.ClickUtils +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.FragmentApplyModeratorBinding import com.gh.gamecenter.entity.ApplyModeratorStatusEntity import com.gh.gamecenter.entity.ApplyModeratorTaskEntity import com.gh.gamecenter.forum.detail.ForumDetailActivity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.lightgame.utils.AppManager import com.lightgame.utils.Utils -class ApplyModeratorFragment : NormalFragment() { +class ApplyModeratorFragment : ToolbarFragment() { private var mBinding: FragmentApplyModeratorBinding? = null private var mViewModel: ApplyModeratorViewModel? = null @@ -40,7 +44,7 @@ class ApplyModeratorFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mBbsId = arguments?.getString(EntranceUtils.KEY_BBS_ID) ?: "" + mBbsId = arguments?.getString(EntranceConsts.KEY_BBS_ID) ?: "" mStatus = arguments?.getParcelable("status") ?: ApplyModeratorStatusEntity() val factory = ApplyModeratorViewModel.Factory(mBbsId) mDataList = getModeratorTaskList() diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorViewModel.kt index 1ee994a1c1..9d5ad22fb8 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorViewModel.kt @@ -6,7 +6,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.entity.ApplyModeratorStatusEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListActivity.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListActivity.kt index 820dd22d9f..91d70c4b98 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListActivity.kt @@ -3,22 +3,21 @@ package com.gh.gamecenter.forum.moderator import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class ModeratorListActivity : NormalActivity() { +class ModeratorListActivity : ToolBarActivity() { companion object { fun getIntent(context: Context, bbsId: String, bbsName: String, bbsType: String, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) - bundle.putString(EntranceUtils.KEY_PATH, path) - bundle.putString(EntranceUtils.KEY_BBS_ID, bbsId) - bundle.putString(EntranceUtils.KEY_NAME, bbsName) - bundle.putString(EntranceUtils.KEY_TYPE, bbsType) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_PATH, path) + bundle.putString(EntranceConsts.KEY_BBS_ID, bbsId) + bundle.putString(EntranceConsts.KEY_NAME, bbsName) + bundle.putString(EntranceConsts.KEY_TYPE, bbsType) return getTargetIntent(context, ModeratorListActivity::class.java, ModeratorListFragment::class.java, bundle) } } @@ -26,6 +25,7 @@ class ModeratorListActivity : NormalActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) hideToolbar(true) + updateStatusBarColor(R.color.black, R.color.white) } override fun isAutoResetViewBackgroundEnabled(): Boolean = true diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListAdapter.kt index b9d8762bb4..2076b7c78b 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListAdapter.kt @@ -3,15 +3,16 @@ package com.gh.gamecenter.forum.moderator import android.content.Context import android.view.View import android.view.ViewGroup -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.ModeratorListItemBinding import com.gh.gamecenter.entity.PersonalEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.personalhome.UserHomeActivity import com.lightgame.adapter.BaseRecyclerAdapter class ModeratorListAdapter(context: Context, val mViewModel: ModeratorListViewModel?) : BaseRecyclerAdapter(context) { diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListFragment.kt index be40f63cc6..3a940390ef 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListFragment.kt @@ -4,18 +4,24 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentModeratorListBinding import com.gh.gamecenter.entity.ApplyModeratorStatusEntity import com.gh.gamecenter.eventbus.EBUserFollow -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -class ModeratorListFragment : NormalFragment() { +class ModeratorListFragment : ToolbarFragment() { private lateinit var mBinding: FragmentModeratorListBinding private var mViewModel: ModeratorListViewModel? = null private var mAdapter: ModeratorListAdapter? = null @@ -28,9 +34,9 @@ class ModeratorListFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBinding = FragmentModeratorListBinding.bind(mCachedView) - mBbsId = arguments?.getString(EntranceUtils.KEY_BBS_ID) ?: "" - mBbsType = arguments?.getString(EntranceUtils.KEY_TYPE) ?: "" - val bbsName = arguments?.getString(EntranceUtils.KEY_NAME) ?: "" + mBbsId = arguments?.getString(EntranceConsts.KEY_BBS_ID) ?: "" + mBbsType = arguments?.getString(EntranceConsts.KEY_TYPE) ?: "" + val bbsName = arguments?.getString(EntranceConsts.KEY_NAME) ?: "" val factory = ModeratorListViewModel.Factory(mBbsId) mViewModel = viewModelProvider(factory) diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListViewModel.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListViewModel.kt index 925e0167fe..07819763b8 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListViewModel.kt @@ -10,8 +10,8 @@ import com.gh.gamecenter.R import com.gh.gamecenter.entity.ApplyModeratorStatusEntity import com.gh.gamecenter.entity.PersonalEntity import com.gh.gamecenter.eventbus.EBUserFollow -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.google.gson.JsonObject import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorTaskAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorTaskAdapter.kt index fd9d03e950..e15bbc5a22 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorTaskAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorTaskAdapter.kt @@ -5,9 +5,9 @@ import android.text.TextUtils import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemModeratorTaskBinding import com.gh.gamecenter.entity.ApplyModeratorTaskEntity diff --git a/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListAdapter.kt index e301a0d805..1918c6d3a1 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListAdapter.kt @@ -10,15 +10,17 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseActivity -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler import com.gh.common.util.* -import com.gh.common.view.CenterImageSpan +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.databinding.ForumSearchContentListBinding import com.gh.gamecenter.entity.CommunityEntity @@ -86,7 +88,11 @@ class ForumContentSearchListAdapter(context: Context, val mListViewModel: ForumC answerViewHolder.binding.content.visibility = View.GONE val title = answer.questions.title ?: "" val spannableStringBuilder = SpannableStringBuilder(" ") - spannableStringBuilder.setSpan(CenterImageSpan(mContext, R.drawable.ic_ask_label), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) + spannableStringBuilder.setSpan( + CenterImageSpan( + mContext, + R.drawable.ic_ask_label + ), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) spannableStringBuilder.append(title.fromHtml()) answerViewHolder.binding.title.text = spannableStringBuilder } else { @@ -216,7 +222,11 @@ class ForumContentSearchListAdapter(context: Context, val mListViewModel: ForumC forumSearchHolder.binding.contentTv.visibility = View.GONE val title = answer.questions.title ?: "" val spannableStringBuilder = SpannableStringBuilder(" ") - spannableStringBuilder.setSpan(CenterImageSpan(mContext, R.drawable.ic_ask_label), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) + spannableStringBuilder.setSpan( + CenterImageSpan( + mContext, + R.drawable.ic_ask_label + ), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) spannableStringBuilder.append(title.fromHtml()) forumSearchHolder.binding.titleTv.text = spannableStringBuilder } else { diff --git a/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt index 28ab079ade..236e30b13b 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt @@ -6,10 +6,10 @@ import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.viewModelProvider -import com.gh.common.view.divider.HorizontalDividerItemDecoration +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.divider.HorizontalDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment @@ -39,7 +39,7 @@ class ForumContentSearchListFragment : ListFragment HomeFragment().with(Bundle()) "top_game_comment" -> AmwayFragment().with(Bundle()) "block" -> GameFragment().with(Bundle().apply { - putParcelable(EntranceUtils.KEY_BLOCK_DATA, tab) + putParcelable(EntranceConsts.KEY_BLOCK_DATA, tab) }) "server" -> GameServersPublishFragment().with(Bundle()) "game_list" -> GameCollectionSquareFragment().with(Bundle().apply { - putString(EntranceUtils.KEY_ENTRANCE, "顶部tab") - putInt(EntranceUtils.KEY_TAB_INDEX, index) - putString(EntranceUtils.KEY_NAME, tab.name) + putString(EntranceConsts.KEY_ENTRANCE, "顶部tab") + putInt(EntranceConsts.KEY_TAB_INDEX, index) + putString(EntranceConsts.KEY_NAME, tab.name) }) "column_test" -> GameServersTestFragment().with(Bundle().apply { putString(GameServersTestFragment.TEST_COLUMN_ID, tab.link) }) "category" -> CategoryDirectoryFragment().with(Bundle().apply { - putString(EntranceUtils.KEY_CATEGORY_ID, tab.link) - putString(EntranceUtils.KEY_CATEGORY_TITLE, tab.text) + putString(EntranceConsts.KEY_CATEGORY_ID, tab.link) + putString(EntranceConsts.KEY_CATEGORY_TITLE, tab.text) }) "catalog" -> CatalogFragment().with(Bundle().apply { - putString(EntranceUtils.KEY_CATALOG_ID, tab.link) - putString(EntranceUtils.KEY_CATALOG_TITLE, tab.text) + putString(EntranceConsts.KEY_CATALOG_ID, tab.link) + putString(EntranceConsts.KEY_CATALOG_TITLE, tab.text) }) "category_v2" -> CategoryV2Fragment().with(Bundle().apply { - putString(EntranceUtils.KEY_CATEGORY_ID, tab.link) - putString(EntranceUtils.KEY_CATEGORY_TITLE, tab.text) + putString(EntranceConsts.KEY_CATEGORY_ID, tab.link) + putString(EntranceConsts.KEY_CATEGORY_TITLE, tab.text) }) "ranking", "column_collection" -> ColumnCollectionDetailFragment().with(Bundle().apply { - putString(EntranceUtils.KEY_ENTRANCE, "首页") - putString(EntranceUtils.KEY_COLLECTION_ID, tab.link) - putInt(EntranceUtils.KEY_POSITION, 0) - putString(EntranceUtils.KEY_COLUMNNAME, tab.text) - putBoolean(EntranceUtils.KEY_IS_COLUMN_COLLECTION, true) + putString(EntranceConsts.KEY_ENTRANCE, "首页") + putString(EntranceConsts.KEY_COLLECTION_ID, tab.link) + putInt(EntranceConsts.KEY_POSITION, 0) + putString(EntranceConsts.KEY_COLUMNNAME, tab.text) + putBoolean(EntranceConsts.KEY_IS_COLUMN_COLLECTION, true) }) "column" -> SubjectFragment().with(Bundle().apply { - putString(EntranceUtils.KEY_ENTRANCE, "首页") + putString(EntranceConsts.KEY_ENTRANCE, "首页") putParcelable( - EntranceUtils.KEY_SUBJECT_DATA, + EntranceConsts.KEY_SUBJECT_DATA, SubjectData(tab.link, tab.text, false) ) }) "web" -> WebFragment().with(Bundle().apply { - putString(EntranceUtils.KEY_URL, tab.link) + putString(EntranceConsts.KEY_URL, tab.link) putBoolean(WebFragment.KEY_OPEN_NATIVE_PAGE, false) putBoolean(WebFragment.KEY_ENABLE_HORIZONTAL_SCROLL_DISPATCH, true) if (tab.link?.contains("leave_web_page_handle_back_pressed=true") == true) { @@ -442,17 +448,17 @@ class HomeSearchToolWrapperFragment : SearchToolWrapperFragment() { } }) "common_collection" -> CommonCollectionDetailFragment().with(Bundle().apply { - putString(EntranceUtils.KEY_ENTRANCE, "首页顶部Tab栏") - putString(EntranceUtils.KEY_COLLECTION_ID, tab.link) - putString(EntranceUtils.KEY_COLUMNNAME, tab.text) + putString(EntranceConsts.KEY_ENTRANCE, "首页顶部Tab栏") + putString(EntranceConsts.KEY_COLLECTION_ID, tab.link) + putString(EntranceConsts.KEY_COLUMNNAME, tab.text) }) "bbs" -> Fragment() else -> Fragment() } - fragment.arguments?.putInt(EntranceUtils.KEY_TAB_COUNT, tabList.size) - fragment.arguments?.putBoolean(EntranceUtils.KEY_IS_HOME, true) + fragment.arguments?.putInt(EntranceConsts.KEY_TAB_COUNT, tabList.size) + fragment.arguments?.putBoolean(EntranceConsts.KEY_IS_HOME, true) fragment.arguments?.putParcelable( - EntranceUtils.KEY_EXPOSURE_SOURCE, + EntranceConsts.KEY_EXPOSURE_SOURCE, ExposureSource("首页顶部Tab栏", tab.name ?: "") ) fragmentList.add(fragment) diff --git a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt index 47237ffe3a..93c5a61b13 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperViewModel.kt @@ -4,11 +4,11 @@ import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.util.toColor +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R import com.gh.gamecenter.entity.SubjectRecommendEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java index 79a169bf21..c8e314bef4 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java @@ -29,34 +29,33 @@ import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; -import com.gh.base.fragment.WaitingDialogFragment; -import com.gh.common.constant.Constants; import com.gh.common.util.CheckLoginUtils; -import com.gh.common.util.ClickUtils; import com.gh.common.util.DialogUtils; import com.gh.common.util.EnergyTaskHelper; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.PackageFlavorHelper; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.LogUtils; import com.gh.common.util.LoginHelper; import com.gh.common.util.LoginUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.PatternUtils; -import com.gh.common.util.PermissionHelper; import com.gh.common.util.QuickLoginHelper; -import com.gh.common.util.SPUtils; -import com.gh.gamecenter.LoginActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.WebActivity; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.PackageFlavorHelper; +import com.gh.gamecenter.common.utils.PermissionHelper; +import com.gh.gamecenter.core.utils.ClickUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.PatternUtils; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.databinding.FragmentLoginBinding; import com.gh.gamecenter.entity.LoginTokenEntity; import com.gh.gamecenter.entity.UserInfoEntity; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.normal.NormalFragment; import com.gh.gamecenter.security.BindPhoneActivity; -import com.gh.gamecenter.user.ApiResponse; +import com.gh.gamecenter.common.retrofit.ApiResponse; import com.gh.gamecenter.user.LoginTag; import com.gh.gamecenter.user.UserViewModel; import com.halo.assistant.HaloApp; @@ -77,7 +76,7 @@ import kotlin.collections.CollectionsKt; */ public class LoginFragment - extends NormalFragment + extends ToolbarFragment implements LoginUtils.onCaptchaCallBackListener, LoginHelper.LoginCallback, View.OnClickListener, @@ -91,7 +90,7 @@ public class LoginFragment private String mServiceId; private Animation mShakeAnim; - private int mStatus = LoginActivity.STATUS_DEFAULT; + private int mStatus = QuickLoginHelper.STATUS_DEFAULT; @Override protected void handleMessage(Message msg) { @@ -138,9 +137,9 @@ public class LoginFragment super.onCreate(savedInstanceState); if (getArguments() != null) { - mStatus = getArguments().getInt(EntranceUtils.KEY_SHOW_QUICK_LOGIN, LoginActivity.STATUS_DEFAULT); + mStatus = getArguments().getInt(EntranceConsts.KEY_SHOW_QUICK_LOGIN, QuickLoginHelper.STATUS_DEFAULT); } else { - mStatus = LoginActivity.STATUS_DEFAULT; + mStatus = QuickLoginHelper.STATUS_DEFAULT; } final UserViewModel.Factory factory = new UserViewModel.Factory(HaloApp.getInstance().getApplication()); @@ -189,7 +188,7 @@ public class LoginFragment params.topMargin = screenHeight * 80 / 640; mBinding.loginPhoneContainer.setLayoutParams(params); - if (mStatus == LoginActivity.STATUS_DEFAULT) { + if (mStatus == QuickLoginHelper.STATUS_DEFAULT) { mBinding.quickLoginTv.setVisibility(View.GONE); } else { mBinding.quickLoginTv.setVisibility(View.VISIBLE); @@ -240,9 +239,9 @@ public class LoginFragment super.onClick(v); int id = v.getId(); if (id == R.id.quickLoginTv) { - if (mStatus == LoginActivity.STATUS_FROM_QUICK_LOGIN_PAGE) { + if (mStatus == QuickLoginHelper.STATUS_FROM_QUICK_LOGIN_PAGE) { requireActivity().finish(); - } else if (mStatus == LoginActivity.STATUS_FROM_QUICK_LOGIN_PERMISSION) { + } else if (mStatus == QuickLoginHelper.STATUS_FROM_QUICK_LOGIN_PERMISSION) { showPermissionDialog(); } } else if (id == R.id.checkIv || id == R.id.checkClickView1 || id == R.id.checkClickView2) { @@ -429,7 +428,7 @@ public class LoginFragment if (getActivity() != null && CheckLoginUtils.isLogin()) { getActivity().finish(); // 如果是从一键登录页跳转过来的,登录成功后也要finish一键登录页 - if (mStatus == LoginActivity.STATUS_FROM_QUICK_LOGIN_PAGE) { + if (mStatus == QuickLoginHelper.STATUS_FROM_QUICK_LOGIN_PAGE) { QuickLoginHelper.finishAuthActivity(); } } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java index 02b7b5efbe..fad1421102 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java @@ -1,5 +1,7 @@ package com.gh.gamecenter.fragment; +import static com.gh.gamecenter.MainActivity.EB_SKIP_MAIN; + import android.graphics.Bitmap; import android.graphics.PorterDuff; import android.graphics.drawable.Animatable; @@ -24,31 +26,30 @@ import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.fresco.animation.drawable.AnimatedDrawable2; import com.facebook.fresco.animation.drawable.BaseAnimationListener; import com.facebook.imagepipeline.image.ImageInfo; -import com.gh.base.OnDoubleTapListener; -import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; import com.gh.common.dialog.PrivacyPolicyDialogFragment; -import com.gh.common.syncpage.SyncPageRepository; -import com.gh.common.tracker.TrackerLogger; -import com.gh.common.util.BiCallback; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; +import com.gh.common.dialog.ReserveDialog; +import com.gh.common.exposure.ExposureSource; +import com.gh.common.util.NewLogUtils; +import com.gh.gamecenter.common.tracker.TrackerLogger; import com.gh.common.util.FloatingBackViewManager; import com.gh.common.util.HomeBottomBarHelper; -import com.gh.common.util.ImageUtils; import com.gh.common.util.IntegralLogHelper; import com.gh.common.util.LogUtils; -import com.gh.common.util.NightModeUtils; -import com.gh.common.util.SPUtils; -import com.gh.common.view.ReserveDialog; import com.gh.gamecenter.R; +import com.gh.gamecenter.category2.CategoryV2Fragment; +import com.gh.gamecenter.common.base.fragment.BaseFragment_ViewPager_Checkable; +import com.gh.gamecenter.common.callback.BiCallback; +import com.gh.gamecenter.common.callback.OnDoubleTapListener; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.syncpage.SyncPageRepository; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NightModeUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.databinding.FragmentMainBinding; -import com.gh.gamecenter.entity.PrivacyPolicyEntity; import com.gh.gamecenter.entity.SettingsEntity; +import com.gh.gamecenter.entity.SubjectData; import com.gh.gamecenter.entity.SubjectRecommendEntity; import com.gh.gamecenter.entity.WelcomeDialogEntity; import com.gh.gamecenter.eventbus.EBReuse; @@ -56,11 +57,18 @@ import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.forum.home.CommunityHomeFragment; import com.gh.gamecenter.game.GameFragment; +import com.gh.gamecenter.game.columncollection.detail.ColumnCollectionDetailFragment; +import com.gh.gamecenter.game.commoncollection.detail.CommonCollectionDetailFragment; +import com.gh.gamecenter.gamecollection.square.GameCollectionSquareFragment; import com.gh.gamecenter.message.MessageUnreadRepository; import com.gh.gamecenter.message.MessageUnreadViewModel; import com.gh.gamecenter.personal.PersonalFragment; +import com.gh.gamecenter.servers.GameServersPublishFragment; +import com.gh.gamecenter.servers.GameServersTestFragment; +import com.gh.gamecenter.subject.SubjectFragment; import com.gh.gamecenter.video.detail.HomeVideoFragment; import com.halo.assistant.HaloApp; +import com.halo.assistant.fragment.WebFragment; import com.lightgame.listeners.OnBackPressedListener; import com.lightgame.view.CheckableLinearLayout; import com.lightgame.view.NoScrollableViewPager; @@ -72,8 +80,6 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; import java.util.List; -import static com.gh.gamecenter.MainActivity.EB_SKIP_MAIN; - public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implements OnBackPressedListener { public static final int INDEX_HOME = 0; @@ -120,16 +126,12 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem mHomeFragment = new HomeSearchToolWrapperFragment(); fragments.add(mHomeFragment); - mGameWrapperFragment = new SearchToolWrapperFragment(); - Bundle homeArgs = new Bundle(); - homeArgs.putBoolean(EntranceUtils.KEY_IS_HOME, true); - homeArgs.putString(SearchToolWrapperFragment.WRAPPER_FRAGMENT_NAME, GameFragment.class.getName()); - mGameWrapperFragment.setArguments(homeArgs); + initGameWrapperFragment(); fragments.add(mGameWrapperFragment); mHomeVideoFragment = new HomeVideoFragment(); Bundle videoArgs = new Bundle(); - videoArgs.putBoolean(EntranceUtils.KEY_IS_HOME_VIDEO, true); + videoArgs.putBoolean(EntranceConsts.KEY_IS_HOME_VIDEO, true); mHomeVideoFragment.setArguments(videoArgs); mCommunityHomeFragment = new CommunityHomeFragment(); @@ -143,6 +145,80 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem fragments.add(new PersonalFragment()); } + private void initGameWrapperFragment() { + mGameWrapperFragment = new SearchToolWrapperFragment(); + Bundle homeArgs = new Bundle(); + String className = GameFragment.class.getName(); + SubjectRecommendEntity entity = mViewModel.getNavBar().getValue(); + if (entity == null) { + entity = HomeBottomBarHelper.getDefaultGameBarData(); + } + if (entity.getType() != null) { + switch (entity.getType()) { + case "block": + className = GameFragment.class.getName(); + break; + case "column": + className = SubjectFragment.class.getName(); + homeArgs.putString(EntranceConsts.KEY_ENTRANCE, "游戏库"); + homeArgs.putParcelable( + EntranceConsts.KEY_SUBJECT_DATA, + new SubjectData(entity.getLink(), entity.getText(), false, "", "", "", "", true, false) + ); + break; + case "column_collection": + className = ColumnCollectionDetailFragment.class.getName(); + homeArgs.putString(EntranceConsts.KEY_ENTRANCE, "游戏库"); + homeArgs.putString(EntranceConsts.KEY_COLLECTION_ID, entity.getLink()); + homeArgs.putInt(EntranceConsts.KEY_POSITION, 0); + homeArgs.putString(EntranceConsts.KEY_COLUMNNAME, entity.getText()); + homeArgs.putBoolean(EntranceConsts.KEY_IS_COLUMN_COLLECTION, true); + break; + case "server": + className = GameServersPublishFragment.class.getName(); + break; + case "column_test": + className = GameServersTestFragment.class.getName(); + homeArgs.putString(GameServersTestFragment.TEST_COLUMN_ID, entity.getLink()); + break; + case "category_v2": + className = CategoryV2Fragment.class.getName(); + homeArgs.putString(EntranceConsts.KEY_CATEGORY_ID, entity.getLink()); + homeArgs.putString(EntranceConsts.KEY_CATEGORY_TITLE, entity.getText()); + break; + case "common_collection": + className = CommonCollectionDetailFragment.class.getName(); + homeArgs.putString(EntranceConsts.KEY_ENTRANCE, "游戏库"); + homeArgs.putString(EntranceConsts.KEY_COLLECTION_ID, entity.getLink()); + homeArgs.putString(EntranceConsts.KEY_COLUMNNAME, entity.getText()); + break; + case "game_list_square": + className = GameCollectionSquareFragment.class.getName(); + homeArgs.putString(EntranceConsts.KEY_ENTRANCE, "游戏库"); + homeArgs.putInt(EntranceConsts.KEY_TAB_INDEX, 0); + homeArgs.putString(EntranceConsts.KEY_NAME, entity.getName()); + break; + case "web": + className = WebFragment.class.getName(); + homeArgs.putString(EntranceConsts.KEY_URL, entity.getLink()); + homeArgs.putBoolean(WebFragment.KEY_OPEN_NATIVE_PAGE, false); + homeArgs.putBoolean(WebFragment.KEY_ENABLE_HORIZONTAL_SCROLL_DISPATCH, true); + if (entity.getLink() != null && entity.getLink().contains("leave_web_page_handle_back_pressed=true")) { + homeArgs.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED, true); + } + break; + } + } + + homeArgs.putString(SearchToolWrapperFragment.WRAPPER_FRAGMENT_NAME, className); + homeArgs.putBoolean(EntranceConsts.KEY_IS_HOME, true); + homeArgs.putParcelable( + EntranceConsts.KEY_EXPOSURE_SOURCE, + new ExposureSource("游戏库", "") + ); + mGameWrapperFragment.setArguments(homeArgs); + } + @Override public ArrayList restoreFragments() { ArrayList restoreFragments = super.restoreFragments(); @@ -162,7 +238,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem @Override public void onCreate(Bundle savedInstanceState) { - mViewModel = ViewModelProviders.of(this).get(MainWrapperViewModel.class); + mViewModel = ViewModelProviders.of(this, new MainWrapperViewModel.Factory(HaloApp.getInstance())).get(MainWrapperViewModel.class); super.onCreate(savedInstanceState); @@ -197,7 +273,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem .get(MessageUnreadViewModel.class) .getUnreadMessageTotalLiveData().observe(this, isShow -> ExtensionsKt.goneIf(mBinding.mainIvMessageHint, !isShow)); } - + public void getDialog() { mViewModel.requestOpeningData(); mViewModel.getPrivacyPolicyDialog().observe(this, it -> { @@ -211,7 +287,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem } }); } - + private void showWelcomeDialogIfNeeded(WelcomeDialogEntity welcomeDialogEntity) { // 判断启动本次应用是否已经弹窗,不是的话弹启动弹窗 if (welcomeDialogEntity != null && HaloApp.get(MainWrapperViewModel.SHOULD_SHOW_OPENING_DIALOG, false) == null) { @@ -221,7 +297,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem public void onFirst(Bitmap bitmap) { // 网络速度追不上用户操作的时候可能会出现要弹启动弹窗但用户已经不停留在 MainActivity 的情况 if (!isAdded()) return; - + WelcomeDialogFragment welcomeDialog = WelcomeDialogFragment.getInstance(welcomeDialogEntity); welcomeDialog.setOnDismissListener(() -> { mViewModel.requestReserveDialog(); @@ -229,7 +305,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem }); welcomeDialog.show(getChildFragmentManager(), "openingDialog"); } - + @Override public void onSecond(Boolean aBoolean) { mViewModel.requestReserveDialog(); @@ -246,7 +322,7 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem mBinding.mainTabGameName.setText(navBarEntity.getName()); ImageUtils.getPicasso() .load(Uri.parse(navBarEntity.getIconUnselect())) - .placeholder(R.drawable.ic_game_unselect) + //.placeholder(R.drawable.ic_game_unselect) .into(mBinding.mainTabGameIcon); if (navBarEntity.getDefault()) setCurrentItem(INDEX_GAME); } else { @@ -277,23 +353,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem @Override public void onDoubleTap() { EventBus.getDefault().post(new EBUISwitch(EB_MAIN_SCROLL_TOP, finalI)); - switch (finalI) { - case INDEX_HOME: - DataUtils.onMtaEvent(getContext(), "顶级页面", "BottomBar_双击", "首页"); - break; - case INDEX_GAME: - DataUtils.onMtaEvent(getContext(), "顶级页面", "BottomBar_双击", "游戏库"); - break; - case INDEX_VIDEO: - DataUtils.onMtaEvent(getContext(), "顶级页面", "BottomBar_双击", "视频"); - break; - case INDEX_BBS: - DataUtils.onMtaEvent(getContext(), "顶级页面", "BottomBar_双击", "问答"); - break; - case INDEX_PERSONAL: - DataUtils.onMtaEvent(getContext(), "顶级页面", "BottomBar_双击", "我的光环"); - break; - } } }); } @@ -468,25 +527,34 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem switch (index) { case INDEX_HOME: tabText = "首页"; + NewLogUtils.logBottomNavigationClick("首页", "", "", ""); break; case INDEX_GAME: tabText = "游戏库"; + SubjectRecommendEntity entity = mViewModel.getNavBar().getValue(); + if (entity == null) { + entity = HomeBottomBarHelper.getDefaultGameBarData(); + } + NewLogUtils.logBottomNavigationClick("游戏库", entity.getType() != null ? entity.getType() : "", + entity.getText() != null ? entity.getText() : "", entity.getLink() != null ? entity.getLink() : ""); break; case INDEX_BBS: tabText = "论坛"; LogUtils.uploadAccessBbsTab(); + NewLogUtils.logBottomNavigationClick("社区", "", "", ""); break; case INDEX_VIDEO: tabText = "视频"; DisplayUtils.setLightStatusBar(requireActivity(), false); + NewLogUtils.logBottomNavigationClick("视频", "", "", ""); break; case INDEX_PERSONAL: tabText = "我的光环"; IntegralLogHelper.INSTANCE.log("view_me", "我的光环"); + NewLogUtils.logBottomNavigationClick("我的光环", "", "", ""); break; } - DataUtils.onMtaEvent(getContext(), "顶级页面", "BottomBar", tabText); TrackerLogger.logHomeTabSelected(index, tabText); if (index != INDEX_BBS) { @@ -499,12 +567,12 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem if (index == INDEX_GAME) { ImageUtils.getPicasso() .load(Uri.parse(navBarEntity.getIconSelect())) - .placeholder(R.drawable.ic_game_select) + //.placeholder(R.drawable.ic_game_select) .into(mBinding.mainTabGameIcon); } else { ImageUtils.getPicasso() .load(Uri.parse(navBarEntity.getIconUnselect())) - .placeholder(R.drawable.ic_game_unselect) + //.placeholder(R.drawable.ic_game_unselect) .into(mBinding.mainTabGameIcon); } } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperRepository.kt b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperRepository.kt new file mode 100644 index 0000000000..a25ddaecec --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperRepository.kt @@ -0,0 +1,48 @@ +package com.gh.gamecenter.fragment + +import android.annotation.SuppressLint +import androidx.lifecycle.MutableLiveData +import com.gh.common.util.HomeBottomBarHelper +import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.core.utils.SingletonHolder +import com.gh.gamecenter.entity.SubjectRecommendEntity +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.retrofit.RetrofitManager +import com.halo.assistant.HaloApp +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers +import retrofit2.HttpException + +class MainWrapperRepository { + + private val mSensitiveApi = RetrofitManager.getInstance().api + + private val mNavBar = MutableLiveData() + + fun getNavBarLiveData() = mNavBar + + @SuppressLint("CheckResult") + fun getHomeNavBar() { + mSensitiveApi.getHomeNavBarV2(HaloApp.getInstance().channel, BuildConfig.VERSION_NAME) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : BiResponse() { + override fun onSuccess(data: SubjectRecommendEntity) { + HomeBottomBarHelper.updateDefaultGameBarData(data) + mNavBar.postValue(data) + } + + override fun onFailure(exception: Exception) { + if (exception is HttpException && exception.code() == 404) { + mNavBar.postValue(null) + HomeBottomBarHelper.updateDefaultGameBarData(SubjectRecommendEntity()) + } else { + mNavBar.postValue(HomeBottomBarHelper.getDefaultGameBarData()) + } + } + }) + } + + + companion object : SingletonHolder({ MainWrapperRepository() }) +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperViewModel.kt b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperViewModel.kt index 81209c4200..07921862c6 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperViewModel.kt @@ -5,61 +5,34 @@ import android.app.Application import android.preference.PreferenceManager import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.constant.Constants +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider import com.gh.common.util.CheckLoginUtils -import com.gh.common.util.HomeBottomBarHelper import com.gh.common.util.PackageUtils -import com.gh.common.util.SPUtils -import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.entity.DialogEntity import com.gh.gamecenter.entity.SimpleGameEntity import com.gh.gamecenter.entity.SubjectRecommendEntity import com.gh.gamecenter.entity.WelcomeDialogEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers -import retrofit2.HttpException -class MainWrapperViewModel(application: Application) : AndroidViewModel(application) { +class MainWrapperViewModel(application: Application, repository: MainWrapperRepository) : AndroidViewModel(application) { private val mApi = RetrofitManager.getInstance().api private val mSensitiveApi = RetrofitManager.getInstance().api - val navBar = MutableLiveData() + val navBar: MutableLiveData = repository.getNavBarLiveData() // 弹窗优先级: 隐私政策弹窗->启动弹窗->预约弹窗->消息弹窗 val openingDialog = MutableLiveData() val reserveDialog = MutableLiveData?>() val privacyPolicyDialog = MutableLiveData() - init { - getHomeNavBar() - } - - @SuppressLint("CheckResult") - private fun getHomeNavBar() { - mSensitiveApi.getHomeNavBar(HaloApp.getInstance().channel, BuildConfig.VERSION_NAME) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : BiResponse() { - override fun onSuccess(data: SubjectRecommendEntity) { - HomeBottomBarHelper.updateDefaultGameBarData(data) - navBar.postValue(data) - } - - override fun onFailure(exception: Exception) { - if (exception is HttpException && exception.code() == 404) { - navBar.postValue(null) - HomeBottomBarHelper.updateDefaultGameBarData(SubjectRecommendEntity()) - } else { - navBar.postValue(HomeBottomBarHelper.getDefaultGameBarData()) - } - } - }) - } - /** * 获取弹窗 */ @@ -149,6 +122,14 @@ class MainWrapperViewModel(application: Application) : AndroidViewModel(applicat return if (channelInInteger == null) false else channelInInteger in 1001..1050 } + class Factory( + private val mApplication: Application, + ) : ViewModelProvider.NewInstanceFactory() { + override fun create(modelClass: Class): T { + return MainWrapperViewModel(mApplication, MainWrapperRepository.getInstance()) as T + } + } + companion object { const val SHOULD_SHOW_OPENING_DIALOG = "show_opening_dialog" } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java index 2092eef1c3..3d2b23891c 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolWrapperFragment.java @@ -6,10 +6,10 @@ import android.view.View; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import com.gh.base.fragment.LazyFragment; +import com.gh.gamecenter.common.base.fragment.LazyFragment; import com.gh.common.constant.Config; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.game.GameFragment; @@ -48,9 +48,11 @@ public class SearchToolWrapperFragment extends LazyFragment { Bundle bundle = new Bundle(); if (GameFragment.class.getName().equals(className)) { - bundle.putString(EntranceUtils.KEY_LOCATION, "游戏库"); + bundle.putString(EntranceConsts.KEY_LOCATION, "游戏库"); } mSearchToolbarFragment.setArguments(bundle); + Bundle mContentBundle = (Bundle) requireArguments().clone(); + mContentFragment.setArguments(mContentBundle); } } catch (Exception e) { e.printStackTrace(); diff --git a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java index 9b17291db5..9fb7c8ac78 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java @@ -20,21 +20,21 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProviders; -import com.gh.base.SearchBarHint; -import com.gh.base.fragment.BaseLazyFragment; +import com.gh.gamecenter.core.iinterface.SearchBarHint; +import com.gh.gamecenter.common.base.fragment.BaseLazyFragment; import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.databind.BindingAdapters; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.PackageFlavorHelper; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.PackageFlavorHelper; import com.gh.common.util.IntegralLogHelper; import com.gh.common.util.LogUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.SPUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.download.DownloadManager; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.MessageActivity; @@ -198,12 +198,12 @@ public class SearchToolbarFragment extends BaseLazyFragment implements View.OnCl @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments() != null && getArguments().getString(EntranceUtils.KEY_LOCATION) != null) { - mLocation = getArguments().getString(EntranceUtils.KEY_LOCATION); + if (getArguments() != null && getArguments().getString(EntranceConsts.KEY_LOCATION) != null) { + mLocation = getArguments().getString(EntranceConsts.KEY_LOCATION); } mHintIndex = 0; if (savedInstanceState != null) { - mHintList = savedInstanceState.getStringArrayList(EntranceUtils.KEY_HINT); + mHintList = savedInstanceState.getStringArrayList(EntranceConsts.KEY_HINT); } mPackageViewModel = ViewModelProviders.of(this, new PackageViewModel.Factory()).get(PackageViewModel.class); mPackageViewModel.getFilterSameUpdateLiveData().observe(this, this::setDownloadHint); @@ -225,7 +225,7 @@ public class SearchToolbarFragment extends BaseLazyFragment implements View.OnCl public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); if (mHintList != null && !mHintList.isEmpty()) { - outState.putStringArrayList(EntranceUtils.KEY_HINT, mHintList); + outState.putStringArrayList(EntranceConsts.KEY_HINT, mHintList); } } @@ -287,7 +287,6 @@ public class SearchToolbarFragment extends BaseLazyFragment implements View.OnCl intent = SearchActivity.getIntent(requireContext(), true, mSearchHintTv.getHint().toString(), "(工具栏)"); startActivity(intent); } else if (id == R.id.actionbar_search_input || id == R.id.actionbar_search_rl || id == R.id.actionbar_search_right) { - DataUtils.onEvent(getActivity(), "主页", "搜索框"); MtaHelper.onEvent("首页_点击", "顶栏", "搜索"); DataCollectionUtils.uploadClick(getActivity(), "搜索框", "主页"); if ("首页".equals(mLocation) || "游戏库".equals(mLocation)) { @@ -297,7 +296,6 @@ public class SearchToolbarFragment extends BaseLazyFragment implements View.OnCl intent = SearchActivity.getIntent(requireContext(), false, mSearchHintTv.getHint().toString(), "(工具栏)"); startActivity(intent); } else if (id == R.id.actionbar_notification) { - DataUtils.onEvent(getActivity(), "主页", "消息图标"); MtaHelper.onEvent("首页_点击", "顶栏", "消息中心"); DataCollectionUtils.uploadClick(getActivity(), "消息图标", "主页"); diff --git a/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt index 9a47f660b1..d710f8099b 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt @@ -5,13 +5,16 @@ import android.preference.PreferenceManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.TimeElapsedHelper -import com.gh.common.constant.Constants -import com.gh.common.constant.Constants.SP_LAST_OPENING_ID -import com.gh.common.constant.Constants.SP_LAST_OPENING_TIME -import com.gh.common.util.* -import com.gh.common.view.WrapContentDraweeView +import com.gh.common.util.DirectUtils +import com.gh.common.util.LogUtils +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.view.WrapContentDraweeView +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.TimeElapsedHelper + import com.gh.gamecenter.databinding.DialogWelcomeBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.WelcomeDialogEntity @@ -43,33 +46,33 @@ class WelcomeDialogFragment : BaseDialogFragment() { LogUtils.uploadWelcomeDialog("click", mWelcomeEntity?.id, mWelcomeEntity?.text) when (mWelcomeEntity?.type) { - EntranceUtils.HOST_ARTICLE -> { - DirectUtils.directToArticle(requireContext(), mWelcomeEntity?.link!!, EntranceUtils.ENTRANCE_WELCOME) + EntranceConsts.HOST_ARTICLE -> { + DirectUtils.directToArticle(requireContext(), mWelcomeEntity?.link!!, EntranceConsts.ENTRANCE_WELCOME) } - EntranceUtils.HOST_GAME -> { - DirectUtils.directToGameDetail(requireContext(), mWelcomeEntity?.link!!, EntranceUtils.ENTRANCE_WELCOME) + EntranceConsts.HOST_GAME -> { + DirectUtils.directToGameDetail(requireContext(), mWelcomeEntity?.link!!, EntranceConsts.ENTRANCE_WELCOME) } - EntranceUtils.HOST_COLUMN -> { - DirectUtils.directToSubject(requireContext(), mWelcomeEntity?.link!!, null, EntranceUtils.ENTRANCE_WELCOME) + EntranceConsts.HOST_COLUMN -> { + DirectUtils.directToSubject(requireContext(), mWelcomeEntity?.link!!, null, EntranceConsts.ENTRANCE_WELCOME) } - EntranceUtils.HOST_QUESTION -> { - DirectUtils.directToQuestionDetail(requireContext(), mWelcomeEntity?.link!!, EntranceUtils.ENTRANCE_WELCOME) + EntranceConsts.HOST_QUESTION -> { + DirectUtils.directToQuestionDetail(requireContext(), mWelcomeEntity?.link!!, EntranceConsts.ENTRANCE_WELCOME) } - EntranceUtils.HOST_ANSWER -> { - DirectUtils.directToAnswerDetail(requireContext(), mWelcomeEntity?.link!!, EntranceUtils.ENTRANCE_WELCOME) + EntranceConsts.HOST_ANSWER -> { + DirectUtils.directToAnswerDetail(requireContext(), mWelcomeEntity?.link!!, EntranceConsts.ENTRANCE_WELCOME) } - EntranceUtils.HOST_WEB -> { - DirectUtils.directToWebView(requireContext(), mWelcomeEntity?.link!!, EntranceUtils.ENTRANCE_WELCOME) + EntranceConsts.HOST_WEB -> { + DirectUtils.directToWebView(requireContext(), mWelcomeEntity?.link!!, EntranceConsts.ENTRANCE_WELCOME) } - EntranceUtils.HOST_QQ -> { + EntranceConsts.HOST_QQ -> { DirectUtils.directToQqConversation(requireContext(), mWelcomeEntity?.link!!) } - EntranceUtils.HOST_COMMUNITY -> { + EntranceConsts.HOST_COMMUNITY -> { DirectUtils.directToCommunity(requireContext(), CommunityEntity(mWelcomeEntity?.link!!, mWelcomeEntity?.text!!)) } // else -> DialogUtils.showLowVersionDialog(context) else -> DirectUtils.directToLinkPage(requireContext(), mWelcomeEntity - ?: WelcomeDialogEntity(), EntranceUtils.ENTRANCE_WELCOME, "") + ?: WelcomeDialogEntity(), EntranceConsts.ENTRANCE_WELCOME, "") } mDismissByClickImage = true @@ -126,9 +129,9 @@ class WelcomeDialogFragment : BaseDialogFragment() { MtaHelper.onEventWithTime("启动弹窗", mTimeHelper?.elapsedTime!!, type, "No parameter.") - PreferenceManager.getDefaultSharedPreferences(context?.applicationContext).edit { - putString(SP_LAST_OPENING_ID, mWelcomeEntity?.id) - putLong(SP_LAST_OPENING_TIME, mWelcomeEntity?.time!!) + PreferenceManager.getDefaultSharedPreferences(context?.applicationContext).edit().apply { + putString(Constants.SP_LAST_OPENING_ID, mWelcomeEntity?.id) + putLong(Constants.SP_LAST_OPENING_TIME, mWelcomeEntity?.time!!) } mDismissListener?.invoke() diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt index 19e67142a8..488be43ddd 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragment.kt @@ -10,17 +10,22 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton import com.ethanhua.skeleton.ViewSkeletonScreen -import com.gh.base.fragment.LazyFragment -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.exposure.ExposureSource import com.gh.common.util.* -import com.gh.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.view.FixLinearLayoutManager import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.visibleIf import com.gh.gamecenter.databinding.FragmentGameBinding import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.eventbus.EBPackage @@ -58,7 +63,7 @@ class GameFragment : LazyFragment() { override fun getRealLayoutId() = R.layout.fragment_game override fun onFragmentFirstVisible() { - val factory = GameViewModel.Factory(HaloApp.getInstance().application, arguments?.getParcelable(EntranceUtils.KEY_BLOCK_DATA)) + val factory = GameViewModel.Factory(HaloApp.getInstance().application, arguments?.getParcelable(EntranceConsts.KEY_BLOCK_DATA)) mViewModel = ViewModelProviders.of(this, factory).get(GameViewModel::class.java) mViewModel.entrance = mEntrance @@ -100,7 +105,7 @@ class GameFragment : LazyFragment() { mBinding.gameRefresh.setColorSchemeColors(ContextCompat.getColor(requireContext(), R.color.theme)) mLayoutManager = FixLinearLayoutManager(context) val exposureSourceList = arrayListOf().apply { - arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE)?.let { + arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE)?.let { add(it) } add(ExposureSource("板块", if (mViewModel.blockData?.text.isNullOrEmpty()) "" else mViewModel.blockData?.text!!)) diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt index 4c693771ea..9fecaa1372 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt @@ -10,15 +10,15 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.OnViewClickListener import com.gh.common.constant.Config -import com.gh.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters -import com.gh.common.exposure.* -import com.gh.common.runOnIoThread +import com.gh.common.exposure.ExposureEvent +import com.gh.common.exposure.ExposureSource +import com.gh.common.exposure.ExposureType +import com.gh.common.exposure.IExposable import com.gh.common.util.* -import com.gh.common.view.FixGridLayoutManager -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.BlockActivity import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.MainActivity @@ -27,6 +27,18 @@ import com.gh.gamecenter.adapter.ImagePagerAdapter import com.gh.gamecenter.adapter.viewholder.* import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.category.CategoryDirectoryActivity +import com.gh.gamecenter.common.callback.OnViewClickListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.entity.ExposureEntity +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.FixGridLayoutManager +import com.gh.gamecenter.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.PageSwitchDataHelper +import com.gh.gamecenter.core.utils.StringUtils import com.gh.gamecenter.databinding.* import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBDownloadStatus @@ -66,6 +78,8 @@ class GameFragmentAdapter( var isAutoScroll: Boolean = true + private var mTopViewExposureEventList: ArrayList? = null + fun setItemDataList(itemDataList: MutableList) { val currentSize = mItemDataList.size mItemDataList = itemDataList.toMutableList() @@ -229,16 +243,21 @@ class GameFragmentAdapter( val itemData = mItemDataList[position] itemData.exposureEventList = arrayListOf() - holder.bindView(itemData.gallery!!, mBasicExposureSource) { + val gallery = itemData.gallery + holder.bindView(gallery!!, mBasicExposureSource) { itemData.exposureEventList?.add(it) } holder.binding.root.setOnClickListener { - MtaHelper.onEvent("游戏专题", "全部", itemData.gallery?.name) + MtaHelper.onEvent("游戏专题", "全部", gallery.name) setPageSwitchData() DirectUtils.directToSubject( - holder.binding.root.context, itemData.gallery?.id - ?: "", itemData.gallery?.name, "(游戏-专题)" + holder.binding.root.context, gallery.id + ?: "", gallery.name, "(游戏-专题)" + ) + NewLogUtils.logColumnPictureClick( + "显示图集", gallery.name ?: "", gallery.id ?: "", "column", + gallery.name ?: "", "板块", mViewModel.blockData?.name ?: "" ) } } @@ -268,6 +287,11 @@ class GameFragmentAdapter( setPageSwitchData() DirectUtils.directToLinkPage(mContext, LinkEntity(link = gameEntity.link, type = gameEntity.type), "(首页游戏)", "游戏-专题") } + NewLogUtils.logColumnCategoryHomeContentClick( + gameEntity.name ?: "", gameEntity.link ?: "", + columnCollection.name ?: "", columnCollection.id ?: "", "板块", + mViewModel.blockData?.name ?: "" + ) } holder.bindColumnCollection(columnCollection, clickClosure) @@ -322,6 +346,16 @@ class GameFragmentAdapter( linkEntity.text ?: "", sequence + 1 ) + NewLogUtils.logCommonCategoryHomeContentClick( + contentEntity.title, + linkEntity.type ?: "", + linkEntity.link ?: "", + linkEntity.text ?: "", + commonLinkCollection.name ?: "", + commonLinkCollection.id ?: "", + "板块", + blockData?.name ?: "" + ) } holder.bindCommonLinkCollection( @@ -467,6 +501,10 @@ class GameFragmentAdapter( ) ) DirectUtils.directToLinkPage(mContext, linkEntity, "(游戏-专题:" + entity?.name + "-大图)", "首页游戏", entity?.exposureEvent) + NewLogUtils.logColumnPictureClick( + "大图", entity?.name ?: "", entity?.id ?: "", "游戏专题", + entity?.name ?: "", "板块", mViewModel.blockData?.name ?: "" + ) } holder.bindImageSlide(entity!!, imageClickListener, "游戏-专题", mViewModel) @@ -567,6 +605,10 @@ class GameFragmentAdapter( mContext, linkEntity, "(游戏-专题:$name-大图)", mViewModel.blockData?.name ?: "", mItemDataList[position].exposureEvent ) + NewLogUtils.logColumnPictureClick( + "大图", entity.name ?: "", entity.id, "游戏专题", + entity.name ?: "", "板块", mViewModel.blockData?.name ?: "" + ) } } @@ -608,7 +650,12 @@ class GameFragmentAdapter( ) when { - entity.type == "column_collection" -> DirectUtils.directToColumnCollection(mContext, entity.link!!, -1, "(推荐入口)") + entity.type == "column_collection" -> DirectUtils.directToColumnCollection( + mContext, + entity.link!!, + -1, + "(推荐入口)" + ) entity.type == "block" -> mContext.startActivity(BlockActivity.getIntent(mContext, entity, "(推荐入口)")) entity.type == "category" -> mContext.startActivity( CategoryDirectoryActivity.getIntent( @@ -627,7 +674,7 @@ class GameFragmentAdapter( ) } entity.type == "game" -> GameDetailActivity.startGameDetailActivity(mContext, entity.link ?: "", "(推荐入口)") - entity.type == EntranceUtils.HOST_COMMUNITY -> DirectUtils.directToCommunity( + entity.type == EntranceConsts.HOST_COMMUNITY -> DirectUtils.directToCommunity( mContext, CommunityEntity(entity.link!!, entity.text!!) ) @@ -655,7 +702,7 @@ class GameFragmentAdapter( blockData?.name ?: "" ) } - entity.type == "game_list" -> { + entity.type == "game_list_square" -> { DirectUtils.directToGameCollectionSquare( mContext, "版块推荐入口", @@ -680,8 +727,52 @@ class GameFragmentAdapter( mViewModel.getTopData(false) } } - binding.run { + if (mTopViewExposureEventList == null) { + mTopViewExposureEventList = arrayListOf() + + subjectDigestList?.forEachIndexed { index, entity -> + val event = ExposureEvent.createEventWithSourceConcat( + gameEntity = GameEntity( + containerId = blockData?.link ?: "", + containerType = ExposureEntity.BLOCK_ID + ).also { + it.sequence = index + it.outerSequence = position + }, + basicSource = mBasicExposureSource, + source = listOf() + ) + event.payload.controlType = "推荐入口" + event.payload.controlName = if (Config.isShowPlugin()) entity.name else entity.nameNormal + event.payload.controlLinkType = entity.type + event.payload.controlLinkName = entity.text + mTopViewExposureEventList?.add(event) + } + val slideList = mItemDataList[position].slideList + slideList?.forEachIndexed { index, entity -> + val event = ExposureEvent.createEventWithSourceConcat( + gameEntity = GameEntity( + containerId = blockData?.link ?: "", + containerType = ExposureEntity.BLOCK_ID + ).also { + it.sequence = index + it.outerSequence = position + }, + basicSource = mBasicExposureSource, + source = listOf() + ) + event.payload.controlType = "轮播图" + event.payload.controlName = entity.name + event.payload.controlLinkType = entity.type + event.payload.controlLinkName = entity.text + mTopViewExposureEventList?.add(event) + } + mItemDataList[position].exposureEventList = mTopViewExposureEventList + } else { + mItemDataList[position].exposureEventList = mTopViewExposureEventList + } + viewpagerTvFailure.goneIf(subjectDigestList != null) viewpagerTvFailure.setOnClickListener { clickListener.onClick(it, null) @@ -803,7 +894,7 @@ class GameFragmentAdapter( addItemDecoration(GridSpacingItemDecoration(4, 8f.dip2px(), false, 16f.dip2px())) } if (navigationAdapter == null) { - navigationAdapter = GameNavigationAdapter(mContext,blockData?.link ?: "",blockData?.text ?: "") + navigationAdapter = GameNavigationAdapter(mContext, blockData?.link ?: "", blockData?.text ?: "") } val exposureEventList = arrayListOf() @@ -894,7 +985,11 @@ class GameFragmentAdapter( holder.bindHead(column!!) holder.binding.headMore.setOnClickListener { - it as TextView + val buttonType = when (column.home) { + "change" -> "换一批" + "more" -> "更多" + else -> "全部" + } when (column.home) { "change" -> { MtaHelper.onEvent("游戏专题", "换一批", column.name) @@ -913,6 +1008,9 @@ class GameFragmentAdapter( "column_collection" -> { MtaHelper.onEvent("游戏专题合集", "全部", column.name) DirectUtils.directToColumnCollection(mContext, column.id!!, -1, "(推荐入口)") + NewLogUtils.logColumnCategoryHomeButtonClick( + buttonType, column.name ?: "", column.id ?: "", "板块", "" + ) } "common_collection" -> { val blockData = mViewModel.blockData @@ -932,6 +1030,7 @@ class GameFragmentAdapter( blockData?.link ?: "", blockData?.name ?: "" ) + NewLogUtils.logCommonCategoryHomeButtonClick(buttonType, column.name ?: "", column.id ?: "", "板块", blockData?.name ?: "") } "game_list_collection" -> { DirectUtils.directToGameCollectionSquare( @@ -961,11 +1060,15 @@ class GameFragmentAdapter( ) } MtaHelper.onEvent("游戏专题", "全部", column.name) + val moreLink = column.moreLink + NewLogUtils.logColumnListClickButton( + buttonType, column.name ?: "", column.id ?: "", moreLink?.type ?: "", + moreLink?.name ?: "", "版块", mViewModel.blockData?.name ?: "" + ) } } } } - NewLogUtils.logSubjectTopTabClick(it.text.toString(), column.name, column.moreLink) } } @@ -1121,6 +1224,9 @@ class GameFragmentAdapter( } override fun getEventListByPosition(pos: Int): List? { + if (mViewModel.blockData?.display?.slide == true || mViewModel.blockData?.display?.recommend == true) { + return if (pos == 0) mTopViewExposureEventList else mItemDataList[pos].exposureEventList + } return mItemDataList[pos].exposureEventList } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/GameItemViewHolder.kt index 89992c8d70..da83d6280d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameItemViewHolder.kt @@ -2,12 +2,12 @@ package com.gh.gamecenter.game import android.view.View import android.widget.TextView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.databind.BindingAdapters -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/GameNavigationAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/GameNavigationAdapter.kt index 0fb1ed5d94..00199e2fe9 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameNavigationAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameNavigationAdapter.kt @@ -4,11 +4,19 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.Constants + import com.gh.common.exposure.* import com.gh.common.util.* import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.entity.ExposureEntity +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.core.utils.PageSwitchDataHelper +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.databinding.ItemGameNavigationBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.GameNavigationEntity @@ -36,7 +44,7 @@ class GameNavigationAdapter(val mContext: Context, val blockId: String, val bloc && oldItem?.time?.update == newItem?.time?.update } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GameNavigationViewHolder { return GameNavigationViewHolder(parent.toBinding()) } diff --git a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt index b5aad8e2c3..a74ac8df51 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameViewModel.kt @@ -5,20 +5,27 @@ import android.app.Application import android.text.TextUtils import androidx.collection.ArrayMap import androidx.lifecycle.* -import com.gh.common.exposure.ExposureEntity +import com.gh.gamecenter.common.entity.ExposureEntity import com.gh.common.filter.RegionSettingHelper -import com.gh.common.iinterface.IOffsetable +import com.gh.gamecenter.core.iinterface.IOffsetable import com.gh.common.util.* import com.gh.download.DownloadManager import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.RandomUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.countOccurrences +import com.gh.gamecenter.common.utils.debugOnly +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.* import com.gh.gamecenter.game.data.GameItemData import com.gh.gamecenter.game.data.GameSubjectData import com.gh.gamecenter.game.rank.RankCollectionAdapter import com.gh.gamecenter.gamecollection.square.GameCollectionListItemData import com.gh.gamecenter.home.BlankDividerViewHolder -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.fragment.SettingsFragment import com.lightgame.utils.Utils @@ -208,7 +215,7 @@ class GameViewModel(application: Application, var blockData: SubjectRecommendEnt ApkActiveUtils.filterHideApk(game) // 当页面是由启动弹窗过来的第一或第二个页面的时候添加启动弹窗信息 - if (entrance.contains(EntranceUtils.ENTRANCE_WELCOME) + if (entrance.contains(EntranceConsts.ENTRANCE_WELCOME) && entrance.countOccurrences("+") <= 1 ) { game.setWelcomeDialogInfoIfAvailable() @@ -279,7 +286,7 @@ class GameViewModel(application: Application, var blockData: SubjectRecommendEnt ApkActiveUtils.filterHideApk(game) // 当页面是由启动弹窗过来的第一或第二个页面的时候添加启动弹窗信息 - if (entrance.contains(EntranceUtils.ENTRANCE_WELCOME) + if (entrance.contains(EntranceConsts.ENTRANCE_WELCOME) && entrance.countOccurrences("+") <= 1 ) { game.setWelcomeDialogInfoIfAvailable() diff --git a/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionAdapter.kt index a6294b8ced..3cf3ed0f77 100644 --- a/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionAdapter.kt @@ -2,8 +2,8 @@ package com.gh.gamecenter.game.columncollection import android.content.Context import android.view.ViewGroup -import com.gh.common.util.ImageUtils -import com.gh.common.view.WrapContentDraweeView +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.view.WrapContentDraweeView import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.GameColumnCollectionItemViewHolder import com.gh.gamecenter.databinding.GameColumnCollectionItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionViewHolder.kt index d8c089ba75..6b21bcd14b 100644 --- a/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/columncollection/GameColumnCollectionViewHolder.kt @@ -3,10 +3,10 @@ package com.gh.gamecenter.game.columncollection import android.view.View import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.ImageUtils -import com.gh.common.util.dip2px -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.gamecenter.databinding.GameColumnCollectionListBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt index 6ae0253e39..3fd8cb05e0 100644 --- a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt @@ -3,17 +3,16 @@ package com.gh.gamecenter.game.columncollection.detail import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R import com.gh.gamecenter.catalog.CatalogActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class ColumnCollectionDetailActivity : NormalActivity() { +class ColumnCollectionDetailActivity : ToolBarActivity() { override fun provideNormalIntent(): Intent { - return NormalActivity.getTargetIntent(this, ColumnCollectionDetailActivity::class.java, ColumnCollectionDetailFragment::class.java) + return getTargetIntent(this, ColumnCollectionDetailActivity::class.java, ColumnCollectionDetailFragment::class.java) } override fun isAutoResetViewBackgroundEnabled(): Boolean = true @@ -30,11 +29,11 @@ class ColumnCollectionDetailActivity : NormalActivity() { */ fun getIntent(context: Context, collectionId: String, position: Int = -1, entrance: String = "", columnName: String = ""): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) - bundle.putString(EntranceUtils.KEY_COLLECTION_ID, collectionId) - bundle.putInt(EntranceUtils.KEY_POSITION, position) - bundle.putString(EntranceUtils.KEY_COLUMNNAME, columnName) - return NormalActivity.getTargetIntent(context, CatalogActivity::class.java, ColumnCollectionDetailFragment::class.java, bundle) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_COLLECTION_ID, collectionId) + bundle.putInt(EntranceConsts.KEY_POSITION, position) + bundle.putString(EntranceConsts.KEY_COLUMNNAME, columnName) + return getTargetIntent(context, CatalogActivity::class.java, ColumnCollectionDetailFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailAdapter.kt index 5998d7dd73..54bd008f7c 100644 --- a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailAdapter.kt @@ -5,11 +5,12 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.DirectUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.PageSwitchDataHelper +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameColumnCollectionItemViewHolder @@ -17,9 +18,11 @@ import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.databinding.GameColumnCollectionItemBinding import com.gh.gamecenter.entity.LinkEntity -class ColumnCollectionDetailAdapter(context: Context, - private val mViewModel: ColumnCollectionDetailViewModel, - private val mEntrance: String) : ListAdapter(context) { +class ColumnCollectionDetailAdapter( + context: Context, + private val mViewModel: ColumnCollectionDetailViewModel, + private val mEntrance: String, +) : ListAdapter(context) { override fun areItemsTheSame(oldItem: LinkEntity?, newItem: LinkEntity?): Boolean { return oldItem == newItem @@ -64,6 +67,10 @@ class ColumnCollectionDetailAdapter(context: Context, ) ) DirectUtils.directToLinkPage(mContext, data, mEntrance, "专题合集") + NewLogUtils.logColumnCategoryDetailContentClick( + data.name ?: "", data?.link ?: "", + mViewModel.columnCollection.value?.name ?: "", mViewModel.collectionId + ) } } else if (holder is FooterViewHolder) { holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver) diff --git a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt index d929d83df8..7c4aede84d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailFragment.kt @@ -4,12 +4,12 @@ import android.view.View import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px -import com.gh.common.util.observeNonNull -import com.gh.common.util.toColor -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.view.GridSpacingItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.databinding.FragmentColumnCollectionDetailBinding @@ -95,8 +95,8 @@ class ColumnCollectionDetailFragment : LazyListFragment(context) { var gameName = "" + var gameId = "" var entrance = "" var exposureEventList: ArrayList? = null @@ -85,6 +86,7 @@ class GameHorizontalAdapter( traceEvent = exposureEventList!![position] ) } + NewLogUtils.logGameDetailPopularClick(gameName, gameId, "game", gameEntity.name ?: "") } } diff --git a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalItemViewHolder.kt index fc048df43e..5404765cda 100644 --- a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalItemViewHolder.kt @@ -2,10 +2,10 @@ package com.gh.gamecenter.game.horizontal import android.graphics.Color import android.view.View -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.goneIf -import com.gh.common.util.setRoundedColorBackground -import com.gh.common.util.toDrawable +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.setRoundedColorBackground +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameHorizontalItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalListViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalListViewHolder.kt index 5a4c1ce092..ddcf3077a1 100644 --- a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalListViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalListViewHolder.kt @@ -2,8 +2,8 @@ package com.gh.gamecenter.game.horizontal import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.GridLayoutManager -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.databinding.GameHorizontalListBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSimpleItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSimpleItemViewHolder.kt index 1462f37b57..b97499ca66 100644 --- a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSimpleItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSimpleItemViewHolder.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.game.horizontal import android.text.TextUtils import android.view.ViewTreeObserver import android.widget.TextView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.GameHorizontalSimpleItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideAdapter.kt index 2e5e6d2a31..7e8c39cbf4 100644 --- a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideAdapter.kt @@ -3,9 +3,13 @@ package com.gh.gamecenter.game.horizontal import android.content.Context import android.view.ViewGroup import com.gh.common.exposure.ExposureEvent -import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.GameHorizontalItemBinding import com.gh.gamecenter.entity.SubjectEntity import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt index 997e459533..0f78c192cd 100644 --- a/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/horizontal/GameHorizontalSlideListViewHolder.kt @@ -6,12 +6,12 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.iinterface.IOffsetable -import com.gh.common.util.TimeUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.util.tryCatchInRelease +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.core.iinterface.IOffsetable +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameHorizontalListBinding import com.gh.gamecenter.entity.GameEntity @@ -24,7 +24,8 @@ class GameHorizontalSlideListViewHolder(val binding: GameHorizontalListBinding) private var mLastScrolledPosition = 0 // 上次记录的最后滚动位置 fun bindHorizontalSlideList(subjectEntity: SubjectEntity, - offsetable: IOffsetable): GameHorizontalSlideAdapter { + offsetable: IOffsetable + ): GameHorizontalSlideAdapter { val context = binding.root.context var subjectAdapter = binding.horizontalRv.adapter binding.fakeRemarkLine.setBackgroundColor(R.color.background.toColor(context)) diff --git a/app/src/main/java/com/gh/gamecenter/game/imageslide/GameImageSlideViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/imageslide/GameImageSlideViewHolder.kt index d55b5bb905..67a8eed230 100644 --- a/app/src/main/java/com/gh/gamecenter/game/imageslide/GameImageSlideViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/imageslide/GameImageSlideViewHolder.kt @@ -6,12 +6,12 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.iinterface.IOffsetable -import com.gh.common.util.ImageUtils -import com.gh.common.util.dip2px -import com.gh.common.util.px2dip -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.core.iinterface.IOffsetable +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.px2dip +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.databinding.GameImageSlideItemBinding import com.gh.gamecenter.entity.GameEntity @@ -23,7 +23,8 @@ class GameImageSlideViewHolder(val binding: GameImageSlideItemBinding) : BaseRec fun bindImageSlide(entity: GameEntity, imageClickListener: View.OnClickListener, entrance: String, - offsetable: IOffsetable) { + offsetable: IOffsetable + ) { val context = binding.root.context ImageUtils.display(binding.columnIcon, entity.image) diff --git a/app/src/main/java/com/gh/gamecenter/game/imageslide/ImageSlideAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/imageslide/ImageSlideAdapter.kt index d4d15021cb..e75a2a72c1 100644 --- a/app/src/main/java/com/gh/gamecenter/game/imageslide/ImageSlideAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/imageslide/ImageSlideAdapter.kt @@ -4,10 +4,10 @@ import android.content.Context import android.graphics.Color import android.view.View import android.view.ViewGroup -import com.gh.common.util.StringUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toBinding -import com.gh.common.util.toColor +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameHorizontalSimpleItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/game/rank/RankAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/rank/RankAdapter.kt index 2a15b60d22..44ef8c4627 100644 --- a/app/src/main/java/com/gh/gamecenter/game/rank/RankAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/rank/RankAdapter.kt @@ -9,11 +9,16 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.core.view.setPadding import androidx.recyclerview.widget.RecyclerView -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.exposure.ExposureEvent import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.throwExceptionInDebug +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.RankGameItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.TagStyleEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionAdapter.kt index b248f0f252..0d93da41bb 100644 --- a/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionAdapter.kt @@ -5,13 +5,17 @@ import android.util.SparseArray import android.view.View import android.view.ViewGroup import androidx.core.util.forEach -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.exposure.ExposureEvent -import com.gh.common.runOnIoThread -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* import com.gh.common.view.AsyncCell import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.RankCollectionItemBinding import com.gh.gamecenter.entity.SubjectEntity import com.gh.gamecenter.eventbus.EBDownloadStatus diff --git a/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionViewHolder.kt index bc86d0420a..fbb661c28b 100644 --- a/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionViewHolder.kt @@ -1,7 +1,7 @@ package com.gh.gamecenter.game.rank import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.RankCollectionListBinding import com.gh.gamecenter.entity.SubjectEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/rank/RankGameItem.kt b/app/src/main/java/com/gh/gamecenter/game/rank/RankGameItem.kt index 14028b8476..c66591c6ba 100644 --- a/app/src/main/java/com/gh/gamecenter/game/rank/RankGameItem.kt +++ b/app/src/main/java/com/gh/gamecenter/game/rank/RankGameItem.kt @@ -8,11 +8,16 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView import androidx.core.view.setPadding -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.exposure.ExposureEvent import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.throwExceptionInDebug +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.TagStyleEntity diff --git a/app/src/main/java/com/gh/gamecenter/game/upload/GameResourcePolicyDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/game/upload/GameResourcePolicyDialogFragment.kt index 98a8191fdb..6b653507d0 100644 --- a/app/src/main/java/com/gh/gamecenter/game/upload/GameResourcePolicyDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/game/upload/GameResourcePolicyDialogFragment.kt @@ -9,11 +9,14 @@ import android.webkit.WebSettings import android.webkit.WebView import android.webkit.WebViewClient import android.widget.TextView -import com.gh.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import com.gh.common.DefaultJsApi -import com.gh.common.util.* -import com.gh.common.view.dsbridge.DWebView +import com.gh.gamecenter.common.view.dsbridge.DWebView import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.PackageFlavorHelper +import com.gh.gamecenter.core.utils.MtaHelper /** * 光环助手资源协议 diff --git a/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt b/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt index de028b992f..d394a5d5df 100644 --- a/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt @@ -3,24 +3,21 @@ package com.gh.gamecenter.game.upload import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.AboutActivity -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R -import com.halo.assistant.fragment.AboutFragment +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor /** * 游戏投稿 */ -class GameSubmissionActivity : NormalActivity() { +class GameSubmissionActivity : ToolBarActivity() { companion object { @JvmStatic fun getIntent(context: Context, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) return getTargetIntent(context, GameSubmissionActivity::class.java, GameUploadFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadFragment.kt b/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadFragment.kt index a52dd16c4b..00f8e833cd 100644 --- a/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadFragment.kt @@ -17,15 +17,22 @@ import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.OnListClickListener +import com.gh.gamecenter.common.callback.OnListClickListener import com.gh.common.constant.Config import com.gh.common.util.* import com.gh.gamecenter.CleanApkActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.countDownTimer +import com.gh.gamecenter.common.utils.fromHtml +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentGameUploadBinding import com.gh.gamecenter.entity.InstallGameEntity -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.suggest.SuggestPicAdapter import com.gh.gamecenter.suggest.SuggestSelectGameAdapter import com.halo.assistant.HaloApp @@ -42,7 +49,7 @@ import kotlin.collections.component1 import kotlin.collections.component2 import kotlin.collections.set -class GameUploadFragment : NormalFragment() { +class GameUploadFragment : ToolbarFragment() { private var mAdapter: SuggestPicAdapter? = null private var mIconAdapter: SuggestPicAdapter? = null @@ -491,8 +498,8 @@ class GameUploadFragment : NormalFragment() { ToastUtils.showToast(e.message ?: "") } } else if (requestCode == CHOOSE_LOCAL_APK) { - val packageName = data.getStringExtra(EntranceUtils.KEY_PACKAGENAME) ?: "" - val gamePath = data.getStringExtra(EntranceUtils.KEY_PATH) ?: "" + val packageName = data.getStringExtra(EntranceConsts.KEY_PACKAGENAME) ?: "" + val gamePath = data.getStringExtra(EntranceConsts.KEY_PATH) ?: "" val version = PackageUtils.getVersionNameByPackageName(packageName) val length = File(gamePath).length() if (length > 5 * 1024 * 1024 * 1024) { diff --git a/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt b/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt index de9c039121..badf0f9cb9 100644 --- a/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/game/upload/GameUploadViewModel.kt @@ -7,10 +7,10 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.google.gson.JsonObject import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/game/upload/UploadScheduleDialog.kt b/app/src/main/java/com/gh/gamecenter/game/upload/UploadScheduleDialog.kt index 3b3bcf195b..74cfb94e11 100644 --- a/app/src/main/java/com/gh/gamecenter/game/upload/UploadScheduleDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/game/upload/UploadScheduleDialog.kt @@ -5,8 +5,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.R import com.gh.gamecenter.databinding.DialogUploadScheduleBinding diff --git a/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt b/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt index 32ba75ab63..536872abb7 100644 --- a/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt +++ b/app/src/main/java/com/gh/gamecenter/game/vertical/GameItemUi.kt @@ -16,8 +16,8 @@ import androidx.constraintlayout.widget.Group import androidx.core.content.ContextCompat import com.facebook.drawee.view.SimpleDraweeView import com.gh.common.view.GameIconView -import com.gh.common.view.GameTagContainerView import com.gh.gamecenter.R +import com.gh.gamecenter.common.view.GameTagContainerView import splitties.dimensions.dip import splitties.views.* import splitties.views.dsl.constraintlayout.* @@ -240,12 +240,15 @@ class GameItemUi(override val ctx: Context) : Ui { bottomOfParent() startOfParent() }) - add(recommendTv, lParams(wrapContent, wrapContent) { + add(recommendTv, lParams(0, wrapContent) { bottomOfParent() endOfParent() topOfParent() startToEndOf(recommendIv) + horizontalBias = 0F + matchConstraintDefaultWidth = 1 + startMargin = dip(2) goneStartMargin = dip(4) }) @@ -257,6 +260,8 @@ class GameItemUi(override val ctx: Context) : Ui { includeFontPadding = false typeface = Typeface.DEFAULT_BOLD gravity = Gravity.START.and(Gravity.CENTER) + ellipsize = TextUtils.TruncateAt.END + setTextColor(ContextCompat.getColor(context, R.color.text_FF7C1F)) } diff --git a/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalAdapter.kt index 7781dfd835..cf0729c74d 100644 --- a/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalAdapter.kt @@ -6,9 +6,9 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.databind.BindingAdapters import com.gh.common.util.DownloadItemUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.common.view.AsyncUi import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.GameViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalSlideViewHolder.kt b/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalSlideViewHolder.kt index b3230d10e9..a92aa43599 100644 --- a/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalSlideViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalSlideViewHolder.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.game.vertical import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.GameVerticalSlideItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesActivity.kt index 6a6e8645ac..cbb2c3f6e6 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesActivity.kt @@ -3,12 +3,11 @@ package com.gh.gamecenter.gamecollection.choose import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor -class AddGamesActivity : NormalActivity() { +class AddGamesActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesFragment.kt index b994ba2dfa..caf6f3524d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddGamesFragment.kt @@ -2,13 +2,13 @@ package com.gh.gamecenter.gamecollection.choose import androidx.core.os.bundleOf import androidx.fragment.app.Fragment -import com.gh.base.fragment.BaseLazyTabFragment -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.fragment.BaseLazyTabFragment +import com.gh.gamecenter.common.constant.EntranceConsts class AddGamesFragment : BaseLazyTabFragment() { override fun initFragmentList(fragments: MutableList) { - fragments.add(AddSearchGameFragment().apply { bundleOf(EntranceUtils.KEY_NAVIGATION_TITLE to "添加游戏") }) + fragments.add(AddSearchGameFragment().apply { bundleOf(EntranceConsts.KEY_NAVIGATION_TITLE to "添加游戏") }) fragments.add(AddUserPlayedGameFragment()) } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchAndPlayedGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchAndPlayedGameAdapter.kt index 42b081e038..4d2e8b824e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchAndPlayedGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchAndPlayedGameAdapter.kt @@ -4,10 +4,10 @@ import android.content.Context import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.util.DisplayUtils -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.databinding.GameItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchGameFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchGameFragment.kt index 463bf09d4f..b1059c44e7 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchGameFragment.kt @@ -5,12 +5,12 @@ import android.view.View import androidx.core.widget.doOnTextChanged import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.Config -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.databinding.FragmentSearchGameBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.qa.editor.GameAdapter diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddUserPlayedGameFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddUserPlayedGameFragment.kt index 755f111a2d..2a4b2e913b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddUserPlayedGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddUserPlayedGameFragment.kt @@ -3,10 +3,13 @@ package com.gh.gamecenter.gamecollection.choose import android.os.Bundle import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.* +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.setRootBackgroundColor import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mygame.PlayedGameViewModel @@ -48,7 +51,7 @@ class AddUserPlayedGameFragment : ListFragment( } override fun provideListViewModel(): PlayedGameViewModel { - val userId = arguments?.getString(EntranceUtils.KEY_USER_ID) + val userId = arguments?.getString(EntranceConsts.KEY_USER_ID) ?: UserManager.getInstance().userId mViewModel = viewModelProvider(AddUserPlayedGameViewModel.Factory(userId, true)) return mViewModel diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesActivity.kt index 7f0cc3ed99..fa4b5fe015 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesActivity.kt @@ -3,12 +3,11 @@ package com.gh.gamecenter.gamecollection.choose import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor -class ChooseGamesActivity : NormalActivity() { +class ChooseGamesActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setNavigationTitle("选择游戏") diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesAdapter.kt index 26a130b788..bf24fdb4b2 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesAdapter.kt @@ -6,13 +6,13 @@ import android.view.MotionEvent import android.view.ViewGroup import androidx.core.widget.doOnTextChanged import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.core.utils.PatternUtils import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.ItemChooseGamesBinding import com.gh.gamecenter.entity.GameEntity -import com.lightgame.adapter.BaseRecyclerAdapter class ChooseGamesAdapter(context: Context, val dragListener: ItemDragListener) : ListAdapter(context) { diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesFragment.kt index 029b7fb08d..d4e01ff6d0 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesFragment.kt @@ -6,18 +6,18 @@ import android.view.View import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.DialogHelper -import com.gh.common.util.goneIf -import com.gh.common.util.toColor -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentChooseGamesBinding import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.toColor import java.lang.ref.WeakReference import java.util.* -class ChooseGamesFragment : NormalFragment(), ChooseGamesAdapter.ItemDragListener { +class ChooseGamesFragment : ToolbarFragment(), ChooseGamesAdapter.ItemDragListener { private lateinit var mBinding: FragmentChooseGamesBinding private lateinit var mViewModel: ChooseGamesViewModel diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesRepository.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesRepository.kt index fe394d38d7..2e2d848eab 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesRepository.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesRepository.kt @@ -1,7 +1,7 @@ package com.gh.gamecenter.gamecollection.choose import androidx.lifecycle.MutableLiveData -import com.gh.common.util.SingletonHolder +import com.gh.gamecenter.core.utils.SingletonHolder import com.gh.gamecenter.entity.GameEntity class ChooseGamesRepository private constructor() { diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt index f6ff9e6876..620ae3235e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt @@ -3,14 +3,14 @@ package com.gh.gamecenter.gamecollection.detail import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.common.util.GameCollectionSquareBrowseTaskHelper -import com.gh.gamecenter.NormalActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.gamecollection.square.GameCollectionSquareActivity -class GameCollectionDetailActivity : NormalActivity() { +class GameCollectionDetailActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -19,26 +19,65 @@ class GameCollectionDetailActivity : NormalActivity() { } override fun provideNormalIntent(): Intent { - return getTargetIntent(this, GameCollectionDetailActivity::class.java, GameCollectionDetailFragment::class.java) + return getTargetIntent( + this, + GameCollectionDetailActivity::class.java, + GameCollectionDetailFragment::class.java + ) } companion object { @JvmStatic - fun getIntent(context: Context, gameCollectionId: String, isFromSquare: Boolean = false): Intent { - return getIntent(context, gameCollectionId, isFromSquare, false) + fun getIntent( + context: Context, + gameCollectionId: String, + isFromSquare: Boolean = false + ): Intent { + return getIntent(context, gameCollectionId, "", isFromSquare, false) } @JvmStatic - fun getIntent(context: Context, gameCollectionId: String, isFromSquare: Boolean = false, isScrollToCommentArea: Boolean = false): Intent { + fun getSpecifiedCommentIntent( + context: Context, + gameCollectionId: String, + topCommentId: String + ): Intent { + return getIntent( + context, gameCollectionId, topCommentId, + isFromSquare = false, + isScrollToCommentArea = true + ) + } + + @JvmStatic + fun getIntent( + context: Context, + gameCollectionId: String, + topCommentId: String = "", + isFromSquare: Boolean = false, + isScrollToCommentArea: Boolean = false + ): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_GAME_COLLECTION_ID, gameCollectionId) - bundle.putBoolean(EntranceUtils.KEY_IS_FROM_SQUARE, isFromSquare) - bundle.putBoolean(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, isScrollToCommentArea) + bundle.putString(EntranceConsts.KEY_GAME_COLLECTION_ID, gameCollectionId) + bundle.putString(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId) + bundle.putBoolean(EntranceConsts.KEY_IS_FROM_SQUARE, isFromSquare) + bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, isScrollToCommentArea) if (context is GameCollectionSquareActivity) { - val isFromBrowseTask = context.intent.getBooleanExtra(GameCollectionSquareBrowseTaskHelper.KEY_IS_FORM_BROWSE_TASK, false) - bundle.putBoolean(GameCollectionSquareBrowseTaskHelper.KEY_IS_FORM_BROWSE_TASK, isFromBrowseTask) + val isFromBrowseTask = context.intent.getBooleanExtra( + GameCollectionSquareBrowseTaskHelper.KEY_IS_FORM_BROWSE_TASK, + false + ) + bundle.putBoolean( + GameCollectionSquareBrowseTaskHelper.KEY_IS_FORM_BROWSE_TASK, + isFromBrowseTask + ) } - return getTargetIntent(context, GameCollectionDetailActivity::class.java, GameCollectionDetailFragment::class.java, bundle) + return getTargetIntent( + context, + GameCollectionDetailActivity::class.java, + GameCollectionDetailFragment::class.java, + bundle + ) } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailAdapter.kt index 6aff8db045..98e1404b10 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailAdapter.kt @@ -16,15 +16,19 @@ import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureType import com.gh.common.exposure.IExposable -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* -import com.gh.common.view.DrawableView -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.view.DrawableView +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.GameViewHolder +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.GameCollectionDetailNoneGameItemBinding import com.gh.gamecenter.databinding.GameCollectionGameItemBinding import com.gh.gamecenter.databinding.ItemArticleDetailCommentBinding @@ -191,6 +195,18 @@ open class GameCollectionDetailAdapter( // 游戏单详情页面用的样式 updateSubComment(this, comment) + if (comment.isHighlight) { + comment.isHighlight = false + binding.highlightBg.run { + visibility = View.VISIBLE + postDelayed({ + tryWithDefaultCatch { + visibility = View.GONE + } + }, 3000) + } + } + floorHintTv.visibility = View.INVISIBLE bottomDivider.visibility = View.GONE @@ -393,14 +409,16 @@ open class GameCollectionDetailAdapter( } badgeTv.setOnClickListener { - DialogUtils.showViewBadgeDialog(mContext, comment.user.badge) { - DirectUtils.directToBadgeWall( - mContext, - comment.user.id, - comment.user.name, - comment.user.icon - ) - } + DialogUtils.showViewBadgeDialog(mContext, comment.user.badge, object : ConfirmListener { + override fun onConfirm() { + DirectUtils.directToBadgeWall( + mContext, + comment.user.id, + comment.user.name, + comment.user.icon + ) + } + }) } badgeIv.setOnClickListener { badgeTv.performClick() } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt index 8de719225a..17de04b538 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailFragment.kt @@ -14,27 +14,34 @@ import androidx.core.view.ViewCompat import androidx.lifecycle.Lifecycle import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.history.HistoryHelper -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository -import com.gh.common.util.* -import com.gh.common.view.SegmentedFilterView +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository +import com.gh.common.util.DialogUtils +import com.gh.common.util.DirectUtils +import com.gh.common.util.NewLogUtils import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.view.SegmentedFilterView import com.gh.gamecenter.databinding.FragmentGameCollectionDetailBinding import com.gh.gamecenter.databinding.LayoutGameCollectionTagBinding import com.gh.gamecenter.entity.GamesCollectionDetailEntity -import com.gh.gamecenter.entity.NormalShareEntity +import com.gh.gamecenter.common.entity.NormalShareEntity import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.eventbus.EBPackage -import com.gh.gamecenter.eventbus.EBShare +import com.gh.gamecenter.common.eventbus.EBShare +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.gamedetail.GameDetailFragment import com.gh.gamecenter.home.video.ScrollCalculatorHelper @@ -90,7 +97,12 @@ class GameCollectionDetailFragment : FragmentGameCollectionDetailBinding.inflate(layoutInflater).apply { mBinding = this }.root override fun provideListViewModel() = - viewModelProvider(GameCollectionDetailViewModel.Factory(mGameCollectionId)) + viewModelProvider( + GameCollectionDetailViewModel.Factory( + mGameCollectionId, + arguments?.getString(EntranceConsts.KEY_TOP_COMMENT_ID) ?: "" + ) + ) override fun provideListAdapter() = mAdapter ?: GameCollectionDetailAdapter( @@ -107,9 +119,9 @@ class GameCollectionDetailFragment : override fun provideSyncAdapter() = mAdapter override fun onCreate(savedInstanceState: Bundle?) { - mGameCollectionId = arguments?.getString(EntranceUtils.KEY_GAME_COLLECTION_ID) ?: "" - mFromSquare = arguments?.getBoolean(EntranceUtils.KEY_IS_FROM_SQUARE, false) ?: false - mScrollToCommentArea = arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, false) ?: false + mGameCollectionId = arguments?.getString(EntranceConsts.KEY_GAME_COLLECTION_ID) ?: "" + mFromSquare = arguments?.getBoolean(EntranceConsts.KEY_IS_FROM_SQUARE, false) ?: false + mScrollToCommentArea = arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, false) ?: false mUserViewModel = viewModelProvider(UserViewModel.Factory(HaloApp.getInstance().application)) super.onCreate(savedInstanceState) } @@ -1016,7 +1028,7 @@ class GameCollectionDetailFragment : } fun logEvent(event: String, shareType: String = "") { - NewLogUtils.logViewOrClickGameCollectionDetail( + com.gh.gamecenter.common.utils.NewLogUtils.logViewOrClickGameCollectionDetail( event, mGameCollectionTitle, mGameCollectionId, diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailViewModel.kt index da05af0817..c8e0628b65 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailViewModel.kt @@ -8,22 +8,26 @@ import android.text.TextUtils import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.constant.Constants -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toNewSimpleCount +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.entity.GamesCollectionDetailEntity import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.article.detail.CommentItemData import com.gh.gamecenter.qa.comment.base.BaseCommentViewModel -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.EmptyResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.EmptyResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils @@ -36,9 +40,12 @@ import org.json.JSONObject import retrofit2.HttpException import tv.danmaku.ijk.media.exo2.ExoSourceManager -open class GameCollectionDetailViewModel(application: Application, - var gameCollectionId: String) : - BaseCommentViewModel(application, "", "", "", "") { +open class GameCollectionDetailViewModel( + application: Application, + var gameCollectionId: String, + topCommentId: String = "" +) : + BaseCommentViewModel(application, "", "", "", "", topCommentId) { var firstItemInitOverLiveData = MutableLiveData() var followLiveData = MutableLiveData() @@ -103,7 +110,8 @@ open class GameCollectionDetailViewModel(application: Application, } else { val gameLastIndex = games!!.size - 1 if (mResultLiveData.value?.get(0)?.game != null - && mResultLiveData.value?.get(gameLastIndex)?.game != null) { + && mResultLiveData.value?.get(gameLastIndex)?.game != null + ) { for (i in 0..gameLastIndex) { add(mResultLiveData.value!![i]) } @@ -122,8 +130,9 @@ open class GameCollectionDetailViewModel(application: Application, } else if (list.isNullOrEmpty() && mLoadStatusLiveData.value == LoadStatus.INIT_FAILED) { add(CommentItemData(errorConnection = true)) } else { - list?.forEach { - add(CommentItemData(commentNormal = it)) + list?.forEachIndexed { index, entity -> + handleTopComment(index, entity) + add(CommentItemData(commentNormal = entity)) } add(CommentItemData(footer = true)) } @@ -133,6 +142,14 @@ open class GameCollectionDetailViewModel(application: Application, } } + override fun handleTopComment(index: Int, entity: CommentEntity) { + if (!isHandleTopComment && gameCollectionDetail != null && topCommentId.isNotBlank() && index == 0) { + isHandleTopComment = true + entity.isHighlight = true + entity.isForceExpand = true + } + } + fun followingCommand(userId: String, isFollow: Boolean) { val observable = if (isFollow) { RetrofitManager.getInstance().api.postFollowing(userId) @@ -280,7 +297,7 @@ open class GameCollectionDetailViewModel(application: Application, ) } } - }) + }) } @@ -375,7 +392,7 @@ open class GameCollectionDetailViewModel(application: Application, fun getStarText(): String { val favoriteCount = gameCollectionDetail?.count?.favorite ?: 0 - return when { + return when { favoriteCount == 0 -> "收藏" favoriteCount > 10000 -> "10000+" else -> favoriteCount.toString() @@ -384,7 +401,7 @@ open class GameCollectionDetailViewModel(application: Application, fun getShareText(): String { val shareCount = gameCollectionDetail?.count?.share ?: 0 - return when { + return when { shareCount == 0 -> "分享" shareCount > 10000 -> "10000+" else -> shareCount.toString() @@ -421,10 +438,18 @@ open class GameCollectionDetailViewModel(application: Application, } } - class Factory(private val gameCollectionId: String) : ViewModelProvider.NewInstanceFactory() { + class Factory( + private val gameCollectionId: String, + private val topCommentId: String + ) : + ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { - return GameCollectionDetailViewModel(HaloApp.getInstance().application, gameCollectionId) as T + return GameCollectionDetailViewModel( + HaloApp.getInstance().application, + gameCollectionId, + topCommentId + ) as T } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterActivity.kt index 491c030e9c..1f71bad2ab 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterActivity.kt @@ -3,13 +3,13 @@ package com.gh.gamecenter.gamecollection.detail import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.entity.GamesCollectionDetailEntity -class GameCollectionPosterActivity : NormalActivity() { +class GameCollectionPosterActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -21,7 +21,7 @@ class GameCollectionPosterActivity : NormalActivity() { @JvmStatic fun getIntent(context: Context, entity: GamesCollectionDetailEntity): Intent { val bundle = Bundle() - bundle.putParcelable(EntranceUtils.KEY_DATA, entity) + bundle.putParcelable(EntranceConsts.KEY_DATA, entity) return getTargetIntent(context, GameCollectionPosterActivity::class.java, GameCollectionPosterFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterFragment.kt index 8f90900c44..86f2f2cabc 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterFragment.kt @@ -5,16 +5,21 @@ import android.os.Build import android.os.Bundle import android.view.View import androidx.annotation.RequiresApi -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.BitmapUtils import com.gh.gamecenter.databinding.FragmentGameCollectionPosterBinding import com.gh.gamecenter.databinding.LayoutGameCollectionTagBinding import com.gh.gamecenter.entity.GamesCollectionDetailEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment -class GameCollectionPosterFragment : NormalFragment() { +class GameCollectionPosterFragment : ToolbarFragment() { private val mBinding by lazy { FragmentGameCollectionPosterBinding.inflate(layoutInflater) } private var mViewModel: GameCollectionPosterViewModel? = null @@ -28,7 +33,7 @@ class GameCollectionPosterFragment : NormalFragment() { super.onCreate(savedInstanceState) mViewModel = viewModelProvider() - mEntity = arguments?.getParcelable(EntranceUtils.KEY_DATA) ?: GamesCollectionDetailEntity() + mEntity = arguments?.getParcelable(EntranceConsts.KEY_DATA) ?: GamesCollectionDetailEntity() } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterViewModel.kt index e5c93a1b28..48c00474c4 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterViewModel.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import com.gh.gamecenter.R import com.gh.gamecenter.eventbus.EBUserFollow -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionShareDialog.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionShareDialog.kt index 144738a98a..65d7698247 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionShareDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionShareDialog.kt @@ -5,12 +5,15 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import com.gh.common.dialog.BaseDraggableDialogFragment -import com.gh.common.util.* +import com.gh.gamecenter.common.base.fragment.BaseDraggableDialogFragment import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.ShareUtils +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.databinding.DialogGameCollectionShareBinding -import com.gh.gamecenter.entity.NormalShareEntity -import com.gh.gamecenter.eventbus.EBShare +import com.gh.gamecenter.common.entity.NormalShareEntity +import com.gh.gamecenter.common.eventbus.EBShare +import com.gh.gamecenter.common.utils.NewLogUtils import org.greenrobot.eventbus.EventBus class GameCollectionShareDialog : BaseDraggableDialogFragment() { diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionVideoView.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionVideoView.kt index 4f00d3d706..b9e99a13fb 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionVideoView.kt @@ -13,11 +13,16 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager -import com.gh.common.observer.MuteCallback -import com.gh.common.observer.VolumeObserver -import com.gh.common.runOnIoThread +import com.gh.gamecenter.common.observer.MuteCallback +import com.gh.gamecenter.common.observer.VolumeObserver +import com.gh.gamecenter.core.runOnIoThread import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.debounceActionWithInterval +import com.gh.gamecenter.common.utils.rxTimer +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.NetworkUtils +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.entity.GamesCollectionDetailEntity import com.gh.gamecenter.home.video.ScrollCalculatorHelper import com.gh.gamecenter.video.detail.CustomManager @@ -92,8 +97,8 @@ class GameCollectionVideoView @JvmOverloads constructor(context: Context, attrs: debounceActionWithInterval(errorBtn.id, 1000) { if (!com.shuyu.gsyvideoplayer.utils.NetworkUtils.isAvailable(mContext)) { Utils.toast(context, "网络异常,请检查手机网络状态") - setViewShowState(mStartButton, View.INVISIBLE) - errorContainer.visibility = View.VISIBLE + setViewShowState(mStartButton, INVISIBLE) + errorContainer.visibility = VISIBLE return@debounceActionWithInterval } startPlayLogic(false) diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationAdapter.kt index 86155840d4..79b290c1e7 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationAdapter.kt @@ -6,7 +6,9 @@ import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px +import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.ItemArticleDetailCommentBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.gamecollection.detail.GameCollectionDetailAdapter @@ -40,6 +42,11 @@ class GameCollectionCommentConversationAdapter( holder.bindView(mEntityList[position].commentTop!!) } + is CommentFooterViewHolder -> { + holder.itemView.setBackgroundColor(R.color.background_white.toColor(mContext)) + holder.bindView(mIsLoading, mIsNetworkError, mIsOver) + } + else -> super.onBindViewHolder(holder, position) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationFragment.kt index b3ffb1710a..9bdde9ead9 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/conversation/GameCollectionCommentConversationFragment.kt @@ -8,14 +8,15 @@ import android.view.LayoutInflater import android.view.View import androidx.core.content.ContextCompat import com.ethanhua.skeleton.Skeleton -import com.gh.common.AppExecutor -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository -import com.gh.common.util.* +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.FragmentArticleDetailCommentBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.manager.UserManager @@ -37,7 +38,7 @@ class GameCollectionCommentConversationFragment : BaseCommentFragment> { - return mApi.getGameCollectionCommentReply(gameCollectionId, commentId, page) + val map = hashMapOf() + if (topCommentId.isNotEmpty()) { + map["top_comment_id"] = topCommentId + } + return mApi.getGameCollectionCommentReply(gameCollectionId, commentId, page, map) } @SuppressLint("CheckResult") diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionActivity.kt index b30673eef3..8300e15d80 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionActivity.kt @@ -3,12 +3,11 @@ package com.gh.gamecenter.gamecollection.mine import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor -class MyGameCollectionActivity : NormalActivity() { +class MyGameCollectionActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionAdapter.kt index 8177d987e0..6165be8abe 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionAdapter.kt @@ -4,9 +4,9 @@ import android.content.Context import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.util.DisplayUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionFragment.kt index bf0bd53aaf..eb7a80b852 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionFragment.kt @@ -4,11 +4,15 @@ import android.os.Bundle import android.view.MenuItem import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.base.ToolBarActivity -import com.gh.common.constant.Constants -import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemColorDecoration -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.common.utils.setRootBackgroundColor +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.constant.Constants +import com.gh.common.util.DirectUtils +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.utils.showRegulationTestDialogIfNeeded +import com.gh.gamecenter.common.view.VerticalItemDecoration +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.baselist.ListAdapter @@ -18,7 +22,6 @@ import com.gh.gamecenter.databinding.FragmentMyGameCollectionListBinding import com.gh.gamecenter.entity.GamesCollectionEntity import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.gamecollection.publish.GameCollectionEditActivity -import com.gh.gamecenter.gamecollection.square.GameCollectionSquareActivity import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewHolder.kt index 35193fa70c..fac260f72d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewHolder.kt @@ -1,11 +1,11 @@ package com.gh.gamecenter.gamecollection.mine import android.view.LayoutInflater -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.DialogHelper -import com.gh.common.util.ImageUtils -import com.gh.common.util.TimeUtils -import com.gh.common.util.goneIf +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.databinding.ItemGameCollectionFlexTagBinding import com.gh.gamecenter.databinding.ItemMyGameCollectionBinding import com.gh.gamecenter.entity.GamesCollectionEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewModel.kt index e372c04567..fee5277cb5 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionViewModel.kt @@ -2,12 +2,12 @@ package com.gh.gamecenter.gamecollection.mine import android.app.Application import androidx.lifecycle.MutableLiveData -import com.gh.common.util.ToastUtils -import com.gh.common.util.observableToMain +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.observableToMain import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.GamesCollectionEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import okhttp3.ResponseBody diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionActivityDialog.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionActivityDialog.kt index 34aa89b7a2..8aa2d9de4c 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionActivityDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionActivityDialog.kt @@ -10,11 +10,11 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.core.os.bundleOf -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.util.EntranceUtils -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.databinding.DialogChooseActivityBinding import com.gh.gamecenter.entity.ActivityLabelEntity import com.halo.assistant.HaloApp @@ -41,7 +41,7 @@ class ChooseGameCollectionActivityDialog : BaseDialogFragment() { mBinding.confirmTv.setOnClickListener { val activityLabelEntity = fragment.getSelectedActivity() val intent = Intent().apply { - putExtra(EntranceUtils.KEY_DATA, activityLabelEntity) + putExtra(EntranceConsts.KEY_DATA, activityLabelEntity) } (requireActivity() as GameCollectionEditActivity).onActivityDialogResult(GameCollectionEditActivity.REQUEST_CHOOSE_ACTIVITY, Activity.RESULT_OK, intent) @@ -101,7 +101,7 @@ class ChooseGameCollectionActivityDialog : BaseDialogFragment() { ChooseGameCollectionActivityDialog().apply { arguments = bundleOf( TAG_ACTIVITY_ID to tagActivityId, - EntranceUtils.KEY_PARENT_TAG to parentTag + EntranceConsts.KEY_PARENT_TAG to parentTag ) }.show(activity.supportFragmentManager, ChooseGameCollectionActivityDialog::class.java.name) } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionCoverTypeDialog.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionCoverTypeDialog.kt index f563a99ef1..500a894aa0 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionCoverTypeDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionCoverTypeDialog.kt @@ -11,9 +11,15 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.core.os.bundleOf -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.util.* +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.utils.PermissionHelper import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.setRootBackgroundDrawable +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.databinding.DialogChooseGameCollectionCoverTypeBinding import com.gh.gamecenter.gamecollection.publish.GameCollectionEditActivity.Companion.REQUEST_CODE_IMAGE import com.gh.gamecenter.qa.editor.LocalMediaActivity @@ -114,7 +120,7 @@ class ChooseGameCollectionCoverTypeDialog : BaseDialogFragment() { fun show(activity: AppCompatActivity, parentTag: String) { ChooseGameCollectionCoverTypeDialog().apply { arguments = bundleOf( - EntranceUtils.KEY_PARENT_TAG to parentTag + EntranceConsts.KEY_PARENT_TAG to parentTag ) }.show(activity.supportFragmentManager, ChooseGameCollectionCoverTypeDialog::class.java.name) } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultAdapter.kt index d0a21188fb..d7d68f1519 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultAdapter.kt @@ -2,10 +2,10 @@ package com.gh.gamecenter.gamecollection.publish import android.content.Context import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.ImageUtils +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.common.util.NewLogUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.databinding.ItemGameCollectionDefaultCoverBinding import com.gh.gamecenter.entity.GameCollectionCoverEntity import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverDialog.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverDialog.kt index a135d16925..2947859bfb 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverDialog.kt @@ -13,11 +13,15 @@ import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.os.bundleOf import androidx.recyclerview.widget.GridLayoutManager +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.BaseDialogFragment import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.DialogChooseGameCollectionDefaultCoverBinding import com.halo.assistant.HaloApp import kotlin.math.ceil @@ -46,9 +50,9 @@ class ChooseGameCollectionDefaultCoverDialog : BaseDialogFragment() { layoutParams = params if (mAdapter == null) { mAdapter = ChooseGameCollectionDefaultAdapter(requireContext()) { - val tag = requireArguments().getString(EntranceUtils.KEY_PARENT_TAG) + val tag = requireArguments().getString(EntranceConsts.KEY_PARENT_TAG) val intent = Intent().apply { - putExtra(EntranceUtils.KEY_DATA, it) + putExtra(EntranceConsts.KEY_DATA, it) } requireActivity().supportFragmentManager.findFragmentByTag(tag) ?.onActivityResult(REQUEST_CODE_DEFAULT_IMAGE, Activity.RESULT_OK, intent) @@ -122,7 +126,7 @@ class ChooseGameCollectionDefaultCoverDialog : BaseDialogFragment() { fun show(activity: AppCompatActivity, parentTag: String) { ChooseGameCollectionDefaultCoverDialog().apply { arguments = bundleOf( - EntranceUtils.KEY_PARENT_TAG to parentTag + EntranceConsts.KEY_PARENT_TAG to parentTag ) }.show(activity.supportFragmentManager, ChooseGameCollectionDefaultCoverDialog::class.java.name) } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverViewModel.kt index 179aae86d6..e36e0ea0d2 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverViewModel.kt @@ -5,10 +5,10 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.util.ToastUtils -import com.gh.common.util.observableToMain +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.observableToMain import com.gh.gamecenter.entity.GameCollectionCoverEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import retrofit2.HttpException diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelFragment.kt index 0f5edbba29..7f27833828 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelFragment.kt @@ -5,17 +5,17 @@ import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.common.util.dip2px -import com.gh.common.util.viewModelProvider -import com.gh.common.view.divider.HorizontalDividerItemDecoration import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.divider.HorizontalDividerItemDecoration import com.gh.gamecenter.databinding.FragmentListBaseBinding import com.gh.gamecenter.entity.ActivityLabelEntity -import com.gh.gamecenter.normal.NormalFragment import com.gh.gamecenter.video.label.VideoLabelActivity import com.gh.gamecenter.video.label.VideoLabelAdapter -class GameCollectionActivityLabelFragment : NormalFragment() { +class GameCollectionActivityLabelFragment : ToolbarFragment() { private lateinit var mBinding: FragmentListBaseBinding private var mAdapter: VideoLabelAdapter? = null private lateinit var mViewModel: GameCollectionActivityLabelViewModel diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelViewModel.kt index 79c65f6f3f..6c0b86956c 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionActivityLabelViewModel.kt @@ -5,7 +5,7 @@ import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import com.gh.gamecenter.entity.ActivityLabelEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt index 168797a22b..77fd9b7083 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt @@ -9,13 +9,17 @@ import android.view.MenuItem import android.view.View import android.widget.TextView import androidx.core.widget.doOnTextChanged -import com.gh.base.ToolBarActivity -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.constant.Constants -import com.gh.common.util.* +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.common.util.ErrorHelper +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.PatternUtils import com.gh.gamecenter.databinding.ActivityGameCollectionEditBinding import com.gh.gamecenter.databinding.ItemGameCollectionFlexTagBinding import com.gh.gamecenter.entity.* @@ -37,6 +41,9 @@ class GameCollectionEditActivity : ToolBarActivity() { private lateinit var mChooseGamesViewModel: ChooseGamesViewModel private var mProcessingDialog: WaitingDialogFragment? = null private var mPatchCommitCount = 0 + private var mActivityId = "" + private var mActivityName = "" + private var mGameEntity: GameEntity? = null override fun getLayoutId(): Int = R.layout.activity_game_collection_edit @@ -50,10 +57,34 @@ class GameCollectionEditActivity : ToolBarActivity() { mMenuPost = getMenuItem(R.id.menu_game_collection_post) setNavigationTitle("创建游戏单") mViewModel.gameCollectionPatch = intent.getParcelableExtra(GamesCollectionEntity::class.java.name) - val path = intent.getStringExtra(EntranceUtils.KEY_PATH) ?: "" + mBinding.chooseActivityContainer.goneIf(mViewModel.gameCollectionPatch != null) + val path = intent.getStringExtra(EntranceConsts.KEY_PATH) ?: "" if (path.isNotEmpty()) { NewLogUtils.logEnterGameCollectionEdit(path) } + mActivityId = intent.getStringExtra(EntranceConsts.KEY_ACTIVITY_ID) ?: "" + mActivityName = intent.getStringExtra(EntranceConsts.KEY_ACTIVITY_NAME) ?: "" + if (mActivityId.isNotEmpty() && mActivityName.isNotEmpty()) { + mViewModel.selectActivityTag = ActivityLabelEntity(id = mActivityId, name = mActivityName) + mBinding.activityTipTv.text = mActivityName + } + val gameId = intent.getStringExtra(EntranceConsts.KEY_GAMEID) ?: "" + if (gameId.isNotEmpty()) { + mViewModel.getGameDigest(gameId) { + if (it != null) { + val gamesList = ArrayList() + val simpleGames = mViewModel.gameCollectionPatch?.games?.map { game -> game.toGameEntity() } + if (!simpleGames.isNullOrEmpty()) { + simpleGames.map { gameEntity -> + if (gameEntity.id == gameId) return@getGameDigest + } + gamesList.addAll(simpleGames) + } + mGameEntity = it + mChooseGamesViewModel.chooseGamesLiveData.postValue(gamesList.apply { add(it) }) + } + } + } initData() observeData() @@ -143,8 +174,10 @@ class GameCollectionEditActivity : ToolBarActivity() { mViewModel.gameCollectionPatch?.run { if (!activityTags.isNullOrEmpty()) { - mViewModel.selectActivityTag = activityTags!![0] - mBinding.activityTipTv.text = activityTags!![0].name + if (mActivityId.isEmpty() && mActivityName.isEmpty()) { + mViewModel.selectActivityTag = activityTags!![0] + mBinding.activityTipTv.text = activityTags!![0].name + } } mViewModel.imageUrl = cover if (status != "draft" && !isLocalDraft) { @@ -219,11 +252,17 @@ class GameCollectionEditActivity : ToolBarActivity() { mViewModel.tags = tags ?: arrayListOf() initTagsUI(mViewModel.tags) val simpleGames = games?.map { game -> game.toGameEntity() } - mChooseGamesViewModel.chooseGamesLiveData.postValue(ArrayList(simpleGames)) + mChooseGamesViewModel.chooseGamesLiveData.postValue(ArrayList(simpleGames).apply { + if (mGameEntity != null) { + add(mGameEntity) + } + }) } if (!it.activityTags.isNullOrEmpty()) { - mViewModel.selectActivityTag = it.activityTags!![0] - mBinding.activityTipTv.text = it.activityTags!![0].name + if (mActivityId.isEmpty() && mActivityName.isEmpty()) { + mViewModel.selectActivityTag = it.activityTags!![0] + mBinding.activityTipTv.text = it.activityTags!![0].name + } } } } @@ -274,13 +313,13 @@ class GameCollectionEditActivity : ToolBarActivity() { startActivityForResult(intent, REQUEST_CODE_IMAGE_CROP) } } else if (requestCode == ChooseGameCollectionDefaultCoverDialog.REQUEST_CODE_DEFAULT_IMAGE) { - val entity = data.getParcelableExtra(EntranceUtils.KEY_DATA) + val entity = data.getParcelableExtra(EntranceConsts.KEY_DATA) if (entity != null) { mViewModel.imageUrl = entity.url mViewModel.uploadImageSuccessLiveData.postValue(entity.url) } } else if (requestCode == REQUEST_CHOOSE_ACTIVITY) { - val entity = data.getParcelableExtra(EntranceUtils.KEY_DATA) + val entity = data.getParcelableExtra(EntranceConsts.KEY_DATA) if (entity != null) { mViewModel.selectActivityTag = entity mBinding.activityTipTv.text = entity.name @@ -497,8 +536,8 @@ class GameCollectionEditActivity : ToolBarActivity() { @JvmStatic fun getIntent(context: Context, entrance: String = "", path: String = ""): Intent { val intent = Intent(context, GameCollectionEditActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } @@ -506,8 +545,19 @@ class GameCollectionEditActivity : ToolBarActivity() { fun getIntent(context: Context, entity: GamesCollectionEntity, entrance: String = "", path: String = ""): Intent { val intent = Intent(context, GameCollectionEditActivity::class.java) intent.putExtra(GamesCollectionEntity::class.java.name, entity) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_PATH, path) + return intent + } + + @JvmStatic + fun getIntent(context: Context, activityId: String = "", activityName: String = "", gameId: String = "", entrance: String = "", path: String = ""): Intent { + val intent = Intent(context, GameCollectionEditActivity::class.java) + intent.putExtra(EntranceConsts.KEY_ACTIVITY_ID, activityId) + intent.putExtra(EntranceConsts.KEY_ACTIVITY_NAME, activityName) + intent.putExtra(EntranceConsts.KEY_GAMEID, gameId) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditViewModel.kt index 21d5465725..17474018e1 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditViewModel.kt @@ -5,18 +5,21 @@ import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.runOnIoThread +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* -import com.gh.gamecenter.entity.ActivityLabelEntity -import com.gh.gamecenter.entity.GameCollectionDraft -import com.gh.gamecenter.entity.GamesCollectionEntity -import com.gh.gamecenter.entity.TagInfoEntity +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.entity.* import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.AppDatabase +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.schedulers.Schedulers import okhttp3.ResponseBody import org.json.JSONObject import retrofit2.HttpException @@ -35,6 +38,22 @@ class GameCollectionEditViewModel(application: Application) : AndroidViewModel(a private val mApi = RetrofitManager.getInstance().api private val mDraftDao = AppDatabase.getInstance().gameCollectionDraftDao() + fun getGameDigest(gameId: String, callback: (gameEntity: GameEntity?) -> Unit) { + mApi.getGameDigest(gameId) + .map(ApkActiveUtils.filterMapper) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: GameEntity?) { + response?.let { callback.invoke(it) } + } + + override fun onFailure(e: HttpException?) { + callback.invoke(null) + } + }) + } + fun uploadPoster() { if (imagePath.isEmpty()) return UploadImageUtils.uploadImage(UploadImageUtils.UploadType.poster, imagePath, object : UploadImageUtils.OnUploadImageListener { diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionAmwayAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionAmwayAdapter.kt index eb14309988..400dcf0561 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionAmwayAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionAmwayAdapter.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.gamecollection.square import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.TextHelper +import com.gh.gamecenter.common.utils.TextHelper import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameCollectionAmwayContentItemBinding import com.gh.gamecenter.entity.AmwayCommentEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionBannerAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionBannerAdapter.kt index 910ae8f9a9..91ad2ace3f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionBannerAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionBannerAdapter.kt @@ -3,12 +3,13 @@ package com.gh.gamecenter.gamecollection.square import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder import com.gh.common.exposure.* import com.gh.common.util.DirectUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.safelyGetInRelease -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.entity.ExposureEntity +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.databinding.GameCollectionBannerItemBinding import com.gh.gamecenter.entity.AmwayCommentEntity import com.gh.gamecenter.entity.CarouselEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareActivity.kt index 3b25e841ed..38e65b49bb 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareActivity.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.gamecollection.square import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.common.util.GameCollectionSquareBrowseTaskHelper import com.gh.gamecenter.R diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareAdapter.kt index 02e107b15d..a1fb780669 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareAdapter.kt @@ -16,17 +16,24 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 -import com.gh.base.BaseActivity -import com.gh.common.constant.ItemViewType -import com.gh.common.exposure.* +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.common.exposure.ExposureEvent +import com.gh.common.exposure.ExposureSource +import com.gh.common.exposure.IExposable import com.gh.common.util.* -import com.gh.common.util.ImageUtils.display -import com.gh.common.view.ScrollEventListener +import com.gh.gamecenter.common.utils.ImageUtils.display +import com.gh.common.exposure.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.entity.ExposureEntity +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.ScrollEventListener +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.GameCollectionSquareItemBinding import com.gh.gamecenter.databinding.ItemGameCollectionBannerBinding import com.gh.gamecenter.entity.AmwayCommentEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt index 722ce8c939..15c23363a8 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt @@ -21,16 +21,21 @@ import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants import com.gh.common.exposure.* +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.common.view.ScrollEventListener -import com.gh.common.view.SegmentedFilterView -import com.gh.common.view.VerticalItemDecoration +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.SegmentedFilterView +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.entity.ExposureEntity +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.ScrollEventListener +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentGameCollectionSquareAlBinding import com.gh.gamecenter.databinding.FragmentGameCollectionSquareBinding import com.gh.gamecenter.entity.GamesCollectionEntity @@ -72,16 +77,17 @@ class GameCollectionSquareFragment : LazyListFragment(R.id.fab)?.visibility = View.GONE } else { if (mExposureEventList.isNotEmpty()) ExposureManager.log(mExposureEventList) @@ -105,7 +111,7 @@ class GameCollectionSquareFragment : LazyListFragment(R.id.fab)?.visibility = View.VISIBLE } } @@ -144,7 +150,8 @@ class GameCollectionSquareFragment : LazyListFragment { if (mAdapter == null) { - val outerSequence = arguments?.getInt(EntranceUtils.KEY_TAB_INDEX) - val tabName = arguments?.getString(EntranceUtils.KEY_NAME) ?: "" + val outerSequence = arguments?.getInt(EntranceConsts.KEY_TAB_INDEX) + val tabName = arguments?.getString(EntranceConsts.KEY_NAME) ?: "" mBasicExposureSource = arrayListOf().apply { add(ExposureSource(if (mUseAlternativeLayout) "顶部tab" else "游戏单广场", if (mUseAlternativeLayout) tabName else "")) } - mAdapter = GameCollectionSquareAdapter(requireContext(), mUseAlternativeLayout, mViewModel, mBasicExposureSource, outerSequence?:(-1)) + mAdapter = + GameCollectionSquareAdapter(requireContext(), mUseAlternativeLayout, mViewModel, mBasicExposureSource, outerSequence ?: (-1)) } return mAdapter!! } + private fun initDefaultLayout() { // toolbar 消费 fitsSystemWindows 避免在 collapsingToolbar 下面出现多出来的 padding // [https://stackoverflow.com/questions/48137666/viewgroup-inside-collapsingtoolbarlayout-show-extra-bottom-padding-when-set-fits] @@ -219,9 +233,9 @@ class GameCollectionSquareFragment : LazyListFragment mViewModel.view = "recommend" 1 -> mViewModel.view = "hot" 2 -> mViewModel.view = "new" @@ -257,7 +271,7 @@ class GameCollectionSquareFragment : LazyListFragment { @@ -284,7 +298,10 @@ class GameCollectionSquareFragment : LazyListFragment = WeakReference(fragment) override fun handleMessage(msg: Message) { @@ -514,4 +551,5 @@ class GameCollectionSquareFragment : LazyListFragment= 0) mDestinationTab else args.getInt(EntranceUtils.KEY_TARGET, -1) - mIsOpenPlatformWindow = args.getBoolean(EntranceUtils.KEY_OPEN_PLATFORM_WINDOW) + mAutoDownload = args.getBoolean(EntranceConsts.KEY_AUTO_DOWNLOAD) + mTraceEvent = args.getParcelable(EntranceConsts.KEY_TRACE_EVENT) + mSkipGameComment = args.getBoolean(EntranceConsts.KEY_SKIP_GAME_COMMENT) + mDestinationTab = if (mDestinationTab >= 0) mDestinationTab else args.getInt(EntranceConsts.KEY_TARGET, -1) + mIsOpenPlatformWindow = args.getBoolean(EntranceConsts.KEY_OPEN_PLATFORM_WINDOW) mSkeleton = Skeleton.bind(mBinding.listSkeleton) .shimmer(true) @@ -283,7 +289,7 @@ class GameDetailFragment : NormalFragment() { val factory = GameDetailViewModel.Factory( HaloApp.getInstance().application, - args.getString(EntranceUtils.KEY_GAMEID), + args.getString(EntranceConsts.KEY_GAMEID), args.getParcelable(GameEntity.TAG) ) mViewModel = viewModelProviderFromParent(factory) @@ -421,7 +427,7 @@ class GameDetailFragment : NormalFragment() { mGameEntity = gameResource.data controlInstallHint() // 添加启动弹窗的相关信息 - if (mEntrance.contains(EntranceUtils.ENTRANCE_WELCOME) && mEntrance.countOccurrences("+") <= 1) { + if (mEntrance.contains(EntranceConsts.ENTRANCE_WELCOME) && mEntrance.countOccurrences("+") <= 1) { mGameEntity?.setWelcomeDialogInfoIfAvailable() } } else if (gameResource.status == Status.ERROR) { @@ -481,9 +487,6 @@ class GameDetailFragment : NormalFragment() { mViewModel.concernLiveData.observeNonNull(this) { response -> if (response.isConcern) { if (response.isSuccess) { - val kv = HashMap() - kv["状态"] = R.string.concern - DataUtils.onEvent(context, "游戏关注", mGameEntity!!.name, kv) MtaHelper.onEvent("游戏详情_新", "关注", mGameEntity!!.name) DataCollectionUtils.uploadConcern( context, @@ -499,10 +502,6 @@ class GameDetailFragment : NormalFragment() { } } else { if (response.isSuccess) { - val kv = HashMap() - kv["状态"] = "取消关注" - DataUtils.onEvent(context, "游戏关注", mGameEntity!!.name, kv) - DataCollectionUtils.uploadConcern( context, mGameEntity!!.name, @@ -524,7 +523,7 @@ class GameDetailFragment : NormalFragment() { mViewModel.bigEventLiveData.observeNonNull(this) { GameBigEventDialog.showGameBigEventDialog( - requireContext(), mGameEntity?.name ?: "", it, mEntrance + requireContext(), mGameEntity?.name ?: "",mGameEntity?.id ?: "", it, mEntrance ) } mViewModel.recommendPopupLiveData.observe(this, Observer { @@ -543,24 +542,24 @@ class GameDetailFragment : NormalFragment() { @SuppressLint("ClickableViewAccessibility") private fun initViewPage(data: NewGameDetailEntity) { - val scrollToLibao = arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_LIBAO) ?: false - val scrollToServer = arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_SERVER) ?: false + val scrollToLibao = arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_LIBAO) ?: false + val scrollToServer = arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_SERVER) ?: false if (scrollToLibao || scrollToServer) { mBodyBinding.gamedetailAppbar.setExpanded(false, true) } val bundle = Bundle() bundle.putParcelable(GameEntity.TAG, mGameEntity) - bundle.putString(EntranceUtils.KEY_ENTRANCE, mEntrance) - bundle.putBoolean(EntranceUtils.KEY_SCROLL_TO_LIBAO, scrollToLibao) - bundle.putBoolean(EntranceUtils.KEY_SCROLL_TO_SERVER, scrollToServer) + bundle.putString(EntranceConsts.KEY_ENTRANCE, mEntrance) + bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_LIBAO, scrollToLibao) + bundle.putBoolean(EntranceConsts.KEY_SCROLL_TO_SERVER, scrollToServer) bundle.putBoolean( - EntranceUtils.KEY_SCROLL_TO_LIBAO, - arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_LIBAO) ?: false + EntranceConsts.KEY_SCROLL_TO_LIBAO, + arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_LIBAO) ?: false ) bundle.putBoolean( - EntranceUtils.KEY_OPEN_VIDEO_STREAMING, - arguments?.getBoolean(EntranceUtils.KEY_OPEN_VIDEO_STREAMING) ?: false + EntranceConsts.KEY_OPEN_VIDEO_STREAMING, + arguments?.getBoolean(EntranceConsts.KEY_OPEN_VIDEO_STREAMING) ?: false ) mFragmentsList.clear() mTabTitleList.clear() @@ -575,7 +574,7 @@ class GameDetailFragment : NormalFragment() { if (it.style == "link") {//显示web页面 val webFragment = childFragmentManager.findFragmentByTag("${tag}${INDEX_TRENDES}") ?: WebFragment() val webBundle = Bundle() - webBundle.putString(EntranceUtils.KEY_URL, it.link) + webBundle.putString(EntranceConsts.KEY_URL, it.link) webBundle.putBoolean(WebFragment.KEY_OPEN_NATIVE_PAGE, true) webFragment.arguments = webBundle mFragmentsList.add(webFragment) @@ -589,8 +588,8 @@ class GameDetailFragment : NormalFragment() { if (data.showComment) { val ratingFragment = childFragmentManager.findFragmentByTag("${tag}${INDEX_RATING}") ?: RatingFragment() - bundle.putBoolean(EntranceUtils.KEY_SKIP_GAME_COMMENT, mSkipGameComment) - bundle.putBoolean(EntranceUtils.KEY_DIRECT_COMMENT, data.directComment) + bundle.putBoolean(EntranceConsts.KEY_SKIP_GAME_COMMENT, mSkipGameComment) + bundle.putBoolean(EntranceConsts.KEY_DIRECT_COMMENT, data.directComment) ratingFragment.arguments = bundle mFragmentsList.add(ratingFragment) mTabTitleList.add(getString(R.string.game_detail_comment)) @@ -605,7 +604,8 @@ class GameDetailFragment : NormalFragment() { mBodyBinding.toolbarGapView.goneIf(mTabTitleList.size == 1) mBodyBinding.run { - gamedetailVp.adapter = FragmentAdapter(childFragmentManager, mFragmentsList, mTabTitleList) + gamedetailVp.adapter = + FragmentAdapter(childFragmentManager, mFragmentsList, mTabTitleList) gamedetailVp.doOnPageSelected { logTabClick(it) } @@ -628,6 +628,7 @@ class GameDetailFragment : NormalFragment() { } BaseFragment_TabLayout.initTabStyle(mBodyBinding.tabLayout, gamedetailVp.currentItem) + updateToolbarStyle(gamedetailThumbSmall.visibility == View.VISIBLE) } } @@ -819,6 +820,7 @@ class GameDetailFragment : NormalFragment() { } mBodyBinding.gameBigEvent.setOnClickListener { MtaHelper.onEvent("游戏详情_新", "游戏大事件", mViewModel.game?.name ?: "") + NewLogUtils.logGameDetailMajorEventClick(mViewModel.game?.name ?: "", mViewModel.game?.id ?: "") mViewModel.getBigEvent() } } @@ -1183,9 +1185,20 @@ class GameDetailFragment : NormalFragment() { val entrance = if (mEntrance.contains("论坛详情")) "论坛" else "游戏" mGameEntity?.run { when (position) { - INDEX_TRENDES -> NewLogUtils.logGameDetailTabClick("view_game_detail_special_area_tab", entrance, id, gameType, bbsId) - - INDEX_RATING -> NewLogUtils.logGameDetailTabClick("view_game_detail_comment_tab", entrance, id, gameType, bbsId) + INDEX_DESC -> { + NewLogUtils.logGameDetailTabClick(name ?: "", id, "详情") + } + INDEX_TRENDES -> { + NewLogUtils.logGameDetailTabClick("view_game_detail_special_area_tab", entrance, id, gameType, bbsId) + NewLogUtils.logGameDetailTabClick(name ?: "", id, "专区") + } + INDEX_RATING -> { + NewLogUtils.logGameDetailTabClick("view_game_detail_comment_tab", entrance, id, gameType, bbsId) + NewLogUtils.logGameDetailTabClick(name ?: "", id, "评论") + } + INDEX_BBS -> { + NewLogUtils.logGameDetailTabClick(name ?: "", id, "论坛") + } } } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt index 9a6447205a..a86ba4a5fd 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt @@ -9,11 +9,16 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.filter.RegionSettingHelper import com.gh.common.history.HistoryHelper -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.* import com.gh.gamecenter.gamedetail.entity.BigEvent import com.gh.gamecenter.gamedetail.entity.CustomColumn @@ -21,8 +26,8 @@ import com.gh.gamecenter.gamedetail.entity.DetailEntity import com.gh.gamecenter.gamedetail.entity.NewGameDetailEntity import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers @@ -84,9 +89,6 @@ class GameDetailViewModel(application: Application, .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : Response() { override fun onResponse(response: GameEntity?) { - val name = if (response != null) response.name else "" - DataUtils.onMtaEvent(getApplication(), "详情页面", "游戏详情", name) - game = response gameLiveData.postValue(Resource.success(game)) getGameDetailNew() diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt index 7a1e6cae65..9e2f16731f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt @@ -18,20 +18,26 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.OnListClickListener +import com.gh.gamecenter.common.callback.OnListClickListener import com.gh.common.DefaultUrlHandler -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureManager import com.gh.common.exposure.ExposureSource import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemColorDecoration -import com.gh.common.view.divider.HorizontalDividerItemDecoration +import com.gh.common.util.DialogUtils +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.view.divider.HorizontalDividerItemDecoration import com.gh.gamecenter.GameNewsActivity import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity import com.gh.gamecenter.adapter.viewholder.FooterViewHolder +import com.gh.gamecenter.common.* +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.* import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.GameEntity @@ -241,6 +247,7 @@ class DescAdapter( galleryRv.layoutManager = GridLayoutManager(mContext, 4) subjectAdapter = GameHorizontalAdapter(mContext, subjectEntity) subjectAdapter.gameName = mGameName + subjectAdapter.gameId = mViewModel.gameId ?: "" subjectAdapter.entrance = mEntrance subjectAdapter.exposureEventList = exposureEventList (galleryRv.itemAnimator as DefaultItemAnimator).supportsChangeAnimations = false @@ -252,6 +259,9 @@ class DescAdapter( } titleTv.text = "大家都在玩" moreTv.visibility = View.GONE + mViewModel.game?.let { + NewLogUtils.logGameDetailPopularView(it.name ?: "", it.id) + } } } @@ -281,6 +291,9 @@ class DescAdapter( MtaHelper.onEvent(MTA_KEY_GAME_NEW, "玩家评论_点击全部", mGameName) MtaHelper.onEvent(MTA_KEY_GAME_NEW, "玩家评论_更多按钮", mGameName) } + mViewModel.game?.let { + NewLogUtils.logGameDetailCommentView(it.name ?: "", it.id) + } } commentsAdapter.comments = comments @@ -440,6 +453,7 @@ class DescAdapter( contentTv.setExpandCallback { mExpandableTextExpandStatusSparseBooleanArray.put(holder.bindingAdapterPosition, true) MtaHelper.onEvent(MTA_KEY_GAME_NEW, "展开更新内容", mGameName) + NewLogUtils.logGameDetailUpdatedClick(mViewModel.game?.name ?: "", mViewModel.game?.id ?: "", "全部") } historyVersionTv.setOnClickListener { MtaHelper.onEvent("历史版本", "进入", mGameName) @@ -451,12 +465,14 @@ class DescAdapter( "游戏详情[${mGameName}]:更新内容" ) mContext.startActivity(intent) + NewLogUtils.logGameDetailUpdatedClick(mViewModel.game?.name ?: "", mViewModel.game?.id ?: "", "历史版本") } historyVersionTv.visibility = if (updateContent.historyApkStatus == "on" && updateContent.historyApkCount >= 1) View.VISIBLE else View.GONE contentTv.setExpandCallback { MtaHelper.onEvent(MTA_KEY_GAME_NEW, "展开更新内容", mGameName) } + NewLogUtils.logGameDetailUpdatedView(mViewModel.game?.name ?: "", mViewModel.game?.id ?: "") } } @@ -496,6 +512,9 @@ class DescAdapter( mNewGameDetailEntity?.me ) mContext.startActivity(intent) + mViewModel.game?.let { + NewLogUtils.logGameDetailOpenListClick(it.name ?: "", it.id, "更多") + } } if (server.showDes && server.des.isNotEmpty()) { tipsIv.visibility = View.VISIBLE @@ -504,6 +523,9 @@ class DescAdapter( DialogUtils.showKaifuRemindDialog(mContext, server.des, mGameName) } } + mViewModel.game?.let { + NewLogUtils.logGameDetailOpenListView(it.name ?: "", it.id) + } } } @@ -568,7 +590,7 @@ class DescAdapter( galleryRv.apply { background = R.drawable.background_shape_white_radius_5.toDrawable(mContext) layoutManager = LinearLayoutManager(mContext) - adapter = adapter ?: GameLibaoAdapter(mContext, libao, mGameName, mListListener) + adapter = adapter ?: GameLibaoAdapter(mContext, libao, mGameName, mViewModel.game?.id ?: "", mListListener) if (itemDecorationCount == 0) { val itemDecoration = HorizontalDividerItemDecoration.Builder(mContext) .size(0.5F.dip2px()) @@ -580,6 +602,9 @@ class DescAdapter( } titleTv.text = "游戏礼包" moreTv.visibility = View.GONE + mViewModel.game?.let { + NewLogUtils.logGameDetailGiftView(it.name ?: "", it.id) + } } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescCommentsAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescCommentsAdapter.kt index 2ddc297133..9cf2eb776b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescCommentsAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescCommentsAdapter.kt @@ -10,12 +10,17 @@ import android.widget.PopupWindow import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseActivity -import com.gh.common.constant.Constants -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemGameDetailRatingCommentBinding import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.eventbus.EBReuse @@ -115,15 +120,18 @@ class DescCommentsAdapter( } sdvUserBadge.setOnClickListener { - DialogUtils.showViewBadgeDialog(mContext, commentData.user.badge) { - MtaHelper.onEvent("进入徽章墙_用户记录", "游戏详情-玩家评论", "${commentData.user.name}(${commentData.user.id})") - MtaHelper.onEvent("徽章中心", "进入徽章中心", "游戏详情-玩家评论") - DirectUtils.directToBadgeWall(mContext, commentData.user.id, commentData.user.name, commentData.user.icon) - } + DialogUtils.showViewBadgeDialog(mContext, commentData.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("进入徽章墙_用户记录", "游戏详情-玩家评论", "${commentData.user.name}(${commentData.user.id})") + MtaHelper.onEvent("徽章中心", "进入徽章中心", "游戏详情-玩家评论") + DirectUtils.directToBadgeWall(mContext, commentData.user.id, commentData.user.name, commentData.user.icon) + } + }) } userIcon.setOnClickListener { DirectUtils.directToHomeActivity(mContext, commentData.user.id, mEntrance, "游戏详情-玩家评论") MtaHelper.onEvent("游戏详情_新", "玩家评论_点击用户头像", mViewModel.game?.name) + NewLogUtils.logGameDetailCommentClick(mViewModel.game?.name ?: "", mViewModel.game?.id?:"","个人主页") } userName.setOnClickListener { userIcon.performClick() @@ -140,6 +148,7 @@ class DescCommentsAdapter( val intent = RatingReplyActivity.getIntent(mContext, mViewModel.game!!, commentData, mEntrance, path) SyncDataBetweenPageHelper.startActivityForResult(mContext, intent, RATING_REPLY_REQUEST, position) MtaHelper.onEvent("游戏详情_新", "玩家评论_点击评论", mViewModel.game?.name) + NewLogUtils.logGameDetailCommentClick(mViewModel.game?.name ?: "", mViewModel.game?.id?:"","评论内容") } content.setExpandCallback { MtaHelper.onEvent("游戏详情_新", "玩家评论_点击全文", mViewModel.game?.name) @@ -199,6 +208,7 @@ class DescCommentsAdapter( holder.itemView.setOnClickListener { EventBus.getDefault().post(EBReuse(GameDetailFragment.SKIP_RATING)) MtaHelper.onEvent("游戏详情_新", "玩家评论_查看全部评论", gameName) + NewLogUtils.logGameDetailCommentClick(mViewModel.game?.name ?: "", mViewModel.game?.id?:"","查看全部评论") } } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt index cb099734b1..18365c7db4 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt @@ -7,12 +7,18 @@ import android.view.View import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.BaseFragment -import com.gh.common.constant.Constants -import com.gh.common.iinterface.IScrollable +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.iinterface.IScrollable import com.gh.common.util.* import com.gh.gamecenter.LibaoDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.utils.viewModelProviderFromParent +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentDescBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.LibaoEntity @@ -85,11 +91,11 @@ class DescFragment : BaseFragment(), IScrollable { override fun onCreate(savedInstanceState: Bundle?) { mGameEntity = arguments?.getParcelable(GameEntity.TAG) - openVideoStreaming = arguments?.getBoolean(EntranceUtils.KEY_OPEN_VIDEO_STREAMING, false) + openVideoStreaming = arguments?.getBoolean(EntranceConsts.KEY_OPEN_VIDEO_STREAMING, false) ?: false - mScrollToLibao = arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_LIBAO, false) + mScrollToLibao = arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_LIBAO, false) ?: false - mScrollToServer = arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_SERVER, false) + mScrollToServer = arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_SERVER, false) ?: false val gameDetailFactory = GameDetailViewModel.Factory(HaloApp.getInstance().application, mGameEntity?.id, mGameEntity) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt index c929f7c77a..4381d820e7 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt @@ -9,18 +9,20 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.facebook.common.util.UriUtil -import com.gh.common.constant.Constants -import com.gh.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.common.repository.RemenkapaiRepository import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectEntity import com.gh.gamecenter.gamedetail.entity.CustomColumn import com.gh.gamecenter.gamedetail.entity.DetailEntity import com.gh.gamecenter.gamedetail.entity.GameInfo -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailCustomColumnAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailCustomColumnAdapter.kt index 9b28810d6a..067b875070 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailCustomColumnAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailCustomColumnAdapter.kt @@ -6,10 +6,13 @@ import android.net.Uri import android.text.Spanned import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.* -import com.gh.common.view.CenterImageSpan -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.GamedetailItemCustomColumnItemBinding import com.gh.gamecenter.entity.TagEntity import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt index 21182428f5..9ac3575560 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt @@ -10,6 +10,12 @@ import com.gh.common.DefaultUrlHandler import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.ShareUtils +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.copyTextAndToast +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.ItemGameInfoBinding import com.gh.gamecenter.gamedetail.dialog.GamePermissionDialogFragment import com.gh.gamecenter.gamedetail.entity.GameInfo diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt index 1c7400254c..47f63ed40e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameGalleryAdapter.kt @@ -4,11 +4,17 @@ import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.facebook.drawee.view.SimpleDraweeView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* -import com.gh.common.view.WrapContentDraweeView +import com.gh.gamecenter.common.view.WrapContentDraweeView import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.setDebouncedClickListener +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toPx +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.GalleryVideoItemBinding import com.gh.gamecenter.databinding.GamedetailScreenshotItemBinding import com.gh.gamecenter.entity.GameDetailEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt index 0de452c641..0779c73f77 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLatestServiceAdapter.kt @@ -7,9 +7,9 @@ import android.view.View.MeasureSpec import android.view.ViewGroup import android.view.ViewTreeObserver import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.TimeUtils -import com.gh.common.util.safelyGetInRelease -import com.gh.common.util.toBinding +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.databinding.ItemGameDetailLatestServiceBinding import com.gh.gamecenter.databinding.ItemGameDetailMoreBinding import com.gh.gamecenter.entity.ServerCalendarEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLibaoAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLibaoAdapter.kt index 2a85525971..8ea0d83c6b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLibaoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLibaoAdapter.kt @@ -5,15 +5,27 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.OnListClickListener +import com.gh.gamecenter.common.callback.OnListClickListener import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.utils.copyTextAndToast +import com.gh.gamecenter.common.utils.fromHtml +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.ItemGameDetailMoreBinding import com.gh.gamecenter.databinding.ItemGameLibaoBinding import com.gh.gamecenter.entity.LibaoEntity import com.gh.gamecenter.manager.UserManager -class GameLibaoAdapter(val context: Context, val libaos: ArrayList, val gameName: String, val listListener: OnListClickListener?) : RecyclerView.Adapter() { +class GameLibaoAdapter( + val context: Context, + val libaos: ArrayList, + val gameName: String, + val gameId: String, + val listListener: OnListClickListener? +) : + RecyclerView.Adapter() { var mIsExpand = false private val mShowItemCount: Int = 3//最多展示多少个礼包 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { @@ -120,7 +132,7 @@ class GameLibaoAdapter(val context: Context, val libaos: ArrayList, } // LibaoUtils.setLiBaoBtnStatusRound(holder.binding.receiveTv, libaoEntity,true, context) - LibaoUtils.initLibaoBtn(context, holder.binding.receiveTv, libaoEntity, false, null, true, "游戏详情"){ + LibaoUtils.initLibaoBtn(context, holder.binding.receiveTv, libaoEntity, false, null, true, "游戏详情") { notifyItemChanged(position) } if (!libaoEntity.packageName.isNullOrEmpty()) { @@ -130,6 +142,7 @@ class GameLibaoAdapter(val context: Context, val libaos: ArrayList, } holder.itemView.setOnClickListener { listListener?.onListClick(it, position, libaoEntity) + NewLogUtils.logGameDetailGiftClick(gameName, gameId, "礼包详情") } } is MoreViewHolder -> { @@ -138,7 +151,7 @@ class GameLibaoAdapter(val context: Context, val libaos: ArrayList, if (!mIsExpand) MtaHelper.onEvent("游戏详情_新", "游戏礼包_展开", gameName) mIsExpand = !mIsExpand notifyDataSetChanged() - + NewLogUtils.logGameDetailGiftClick(gameName, gameId, "更多") } } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRaidersAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRaidersAdapter.kt index 7bedf295d8..1dabfb6ede 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRaidersAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRaidersAdapter.kt @@ -6,8 +6,12 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.DefaultUrlHandler import com.gh.common.util.* +import com.gh.common.util.LogUtils import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.ItemGameRaidersBinding import com.gh.gamecenter.databinding.ItemGameRaidersFixedTopBinding import com.gh.gamecenter.entity.GameEntity @@ -74,7 +78,6 @@ class GameRaidersAdapter(val context: Context, val articles: ArrayList" + article.title) MtaHelper.onEvent("游戏详情_新", "新手攻略卡片", "${game?.name}+${article.title}") // 统计阅读量 diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRelatedVersionAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRelatedVersionAdapter.kt index f454086e5c..5fb6f878e3 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRelatedVersionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameRelatedVersionAdapter.kt @@ -9,6 +9,10 @@ import com.gh.common.exposure.ExposureEvent import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.ItemGameDetailRelatedVersionBinding import com.gh.gamecenter.entity.GameDetailEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt index 7bc1bd602f..12ea06f8bd 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventAdapter.kt @@ -11,8 +11,8 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.DirectUtils -import com.gh.common.util.TimeUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemGameDetailBigEventBinding import com.gh.gamecenter.gamedetail.entity.BigEvent diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt index b04ec2dcf8..ebb64d8af8 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameBigEventDialog.kt @@ -4,26 +4,35 @@ import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.view.LayoutInflater import android.view.Window import android.widget.TextView import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.dialog.TrackableDialog -import com.gh.common.util.DisplayUtils -import com.gh.common.view.VerticalItemDecoration +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.base.TrackableDialog +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.gamedetail.entity.BigEvent class GameBigEventDialog( context: Context, val gameName: String, + val gameId: String, val bigEvents: List, val mEntrance: String, mEvent: String, mKey: String, mValue: String ) : TrackableDialog(context, R.style.GhAlertDialog, mEvent, mKey, mValue) { + + private val mDelayLogRunnable = Runnable { + NewLogUtils.logGameDetailMajorEventView(gameName, gameId) + } + override fun onStart() { super.onStart() if (window != null) { @@ -50,11 +59,18 @@ class GameBigEventDialog( closeTv.setOnClickListener { dismiss() } + setOnCancelListener { + mHandler.removeCallbacks(mDelayLogRunnable) + } + + mHandler.postDelayed(mDelayLogRunnable, 3000) } companion object { - fun showGameBigEventDialog(context: Context, gameName: String, bigEvents: List, mEntrance: String) { - val dialog = GameBigEventDialog(context, gameName, bigEvents, mEntrance, "游戏大事件", "弹窗", gameName) + private val mHandler = Handler(Looper.getMainLooper()) + + fun showGameBigEventDialog(context: Context, gameName: String, gameId: String, bigEvents: List, mEntrance: String) { + val dialog = GameBigEventDialog(context, gameName, gameId, bigEvents, mEntrance, "游戏大事件", "弹窗", gameName) dialog.show() } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameDetailMoreDialog.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameDetailMoreDialog.kt index be75607b89..716e429e0b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameDetailMoreDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameDetailMoreDialog.kt @@ -5,11 +5,11 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import com.gh.common.dialog.BaseDraggableDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseDraggableDialogFragment import com.gh.common.util.EnergyTaskHelper.postEnergyTask -import com.gh.common.util.MtaHelper -import com.gh.common.util.ShareUtils -import com.gh.common.util.isPublishEnv +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.ShareUtils +import com.gh.gamecenter.common.utils.isPublishEnv import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity import com.gh.gamecenter.WebActivity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionAdapter.kt index da4641f0d4..a73a249ff0 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionAdapter.kt @@ -8,9 +8,9 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.dip2px -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GamePermissionItemBinding import com.gh.gamecenter.gamedetail.entity.Permission diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt index b5439c631f..c83bc32a51 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GamePermissionDialogFragment.kt @@ -6,13 +6,13 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import com.gh.common.DefaultUrlHandler -import com.gh.common.util.DialogUtils -import com.gh.common.util.dip2px -import com.gh.common.util.goneIf +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.callback.ConfirmListener import com.gh.gamecenter.databinding.GamePermissionDialogBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.gamedetail.entity.GameInfo @@ -23,7 +23,7 @@ class GamePermissionDialogFragment : BaseDialogFragment() { private var mGame: GameEntity? = null private var mGameInfo: GameInfo? = null - var callback: DialogUtils.ConfirmListener? = null + var callback: ConfirmListener? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -81,7 +81,7 @@ class GamePermissionDialogFragment : BaseDialogFragment() { fun show(activity: AppCompatActivity, game: GameEntity?, gameInfo: GameInfo?, - callBack: DialogUtils.ConfirmListener? = null) { + callBack: ConfirmListener? = null) { if (callBack == null || game?.permissionDialogStatus == "on") { GamePermissionDialogFragment().apply { arguments = Bundle().apply { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt index b3e238d378..d005541ef7 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameTagsDialog.kt @@ -10,20 +10,20 @@ import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import androidx.fragment.app.FragmentActivity import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.common.dialog.BaseTrackableDialogFragment -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.common.util.NewLogUtils -import com.gh.common.view.divider.HorizontalDividerItemDecoration +import com.gh.gamecenter.common.view.divider.HorizontalDividerItemDecoration import com.gh.download.dialog.DownloadDialog import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import com.gh.gamecenter.databinding.DialogGameTagsBinding import com.gh.gamecenter.entity.TagStyleEntity import com.gh.gamecenter.tag.TagsActivity import com.halo.assistant.HaloApp -class GameTagsDialog : BaseTrackableDialogFragment() { +class GameTagsDialog : BaseDialogFragment() { private lateinit var mTagStyles: ArrayList private lateinit var mGameId: String @@ -32,9 +32,9 @@ class GameTagsDialog : BaseTrackableDialogFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mGameId = requireArguments().getString(EntranceUtils.KEY_GAME_ID) ?: "" - mGameName = requireArguments().getString(EntranceUtils.KEY_GAME_NAME) ?: "" - mTagStyles = requireArguments().getParcelableArrayList(EntranceUtils.KEY_TAGTYPE) + mGameId = requireArguments().getString(EntranceConsts.KEY_GAME_ID) ?: "" + mGameName = requireArguments().getString(EntranceConsts.KEY_GAME_NAME) ?: "" + mTagStyles = requireArguments().getParcelableArrayList(EntranceConsts.KEY_TAGTYPE) ?: ArrayList() } @@ -79,18 +79,13 @@ class GameTagsDialog : BaseTrackableDialogFragment() { } } - override fun getEvent(): String = "游戏标签弹窗" - - override fun getKey(): String = "弹窗" - - override fun getValue(): String = mGameName - companion object { fun showGameTagsDialog(context: FragmentActivity, tagStyles: ArrayList, gameId: String, gameName: String) { val dialog = GameTagsDialog().apply { - arguments = bundleOf(EntranceUtils.KEY_GAME_ID to gameId, - EntranceUtils.KEY_GAME_NAME to gameName, - EntranceUtils.KEY_TAGTYPE to tagStyles + arguments = bundleOf( + EntranceConsts.KEY_GAME_ID to gameId, + EntranceConsts.KEY_GAME_NAME to gameName, + EntranceConsts.KEY_TAGTYPE to tagStyles ) } dialog.show(context.supportFragmentManager, DownloadDialog::class.java.name) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/InviteCodeDialog.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/InviteCodeDialog.kt index db3fdf7e36..e1804977af 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/InviteCodeDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/dialog/InviteCodeDialog.kt @@ -4,13 +4,13 @@ import android.annotation.SuppressLint import android.os.Bundle import android.view.* import androidx.appcompat.app.AppCompatActivity -import com.gh.common.dialog.BaseDraggableDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseDraggableDialogFragment import com.gh.common.util.EnergyTaskHelper -import com.gh.common.util.ToastUtils +import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.databinding.DialogInviteCodeBinding import com.gh.gamecenter.eventbus.EBTask import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.security.BindPhoneActivity import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiAdapter.kt index 20f398b5fe..010d4f0b19 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiAdapter.kt @@ -7,13 +7,21 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.* +import com.gh.common.util.DataCollectionUtils +import com.gh.common.util.DirectUtils +import com.gh.common.util.LogUtils import com.gh.gamecenter.GameNewsActivity import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameDetailNoticeViewHolder +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.setRootBackgroundColor +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.GameGalleryListBinding import com.gh.gamecenter.databinding.GamedetailItemAnswerBinding import com.gh.gamecenter.databinding.GamedetailItemNoticeBinding diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt index aaaec33b8a..44b3cdf686 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt @@ -8,10 +8,13 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton import com.ethanhua.skeleton.ViewSkeletonScreen -import com.gh.base.fragment.LazyFragment -import com.gh.common.iinterface.IScrollable +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.core.iinterface.IScrollable import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.FragmentFuliBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBReuse @@ -60,7 +63,7 @@ class FuLiFragment : LazyFragment(), IScrollable { override fun onFragmentFirstVisible() { val gameEntity = arguments?.getParcelable(GameEntity.TAG) as? GameEntity val gameDetailFactory = GameDetailViewModel.Factory(HaloApp.getInstance().application, gameEntity?.id, gameEntity) - shouldScroolToLibao = arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_LIBAO) ?: false + shouldScroolToLibao = arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_LIBAO) ?: false mGameDetailViewModel = viewModelProviderFromParent(gameDetailFactory) mFuLiViewModel = viewModelProvider() @@ -165,11 +168,6 @@ class FuLiFragment : LazyFragment(), IScrollable { EventBus.getDefault().post(EBReuse("showKaifuHint")) } }, 200) - } else if (GameDetailFragment.SCROLL_TO_KAIFU == reuse.type && layoutManager != null) { - DataUtils.onMtaEvent(context, "游戏详情开服表按钮", mFuLiViewModel?.game?.name) - DataUtils.onMtaEvent(context, "游戏详情_新", "开服表", mFuLiViewModel?.game?.name) -// val position = getServerPosition() -// if (position > 0) layoutManager?.smoothScrollToPosition(mRecyclerView, null, position) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt index 868fa9b5e8..01ada55019 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiViewModel.kt @@ -8,8 +8,6 @@ import com.gh.gamecenter.entity.UnifiedGameDetailEntity import com.gh.gamecenter.gamedetail.entity.ZoneContentEntity import com.gh.gamecenter.gamedetail.entity.ZoneEntity import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.RetrofitManager -import com.halo.assistant.HaloApp class FuLiViewModel : ViewModel() { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/GameNewsAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/GameNewsAdapter.kt index ff1cd345d4..1be9650c03 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/GameNewsAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/GameNewsAdapter.kt @@ -7,8 +7,8 @@ import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.DataCollectionUtils import com.gh.common.util.DataUtils import com.gh.common.util.NewsUtils -import com.gh.common.util.toBinding -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemGameDetailNewsBinding @@ -44,8 +44,6 @@ class GameNewsAdapter(val context: Context, val article: ArrayList, DataCollectionUtils.uploadClick(context, "新手攻略", "游戏详情", newsEntity.title) - DataUtils.onMtaEvent(context, "游戏详情_新", "新手攻略", "${mFuLiViewModel?.game?.name}+${newsEntity.title}") - // 统计阅读量 NewsUtils.statNewsViews(newsEntity.id) NewsDetailActivity.startNewsDetailActivity(context, newsEntity, diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerAdapter.kt index 77b44d3ffc..b7fe6826be 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerAdapter.kt @@ -3,12 +3,12 @@ package com.gh.gamecenter.gamedetail.fuli.answer import android.content.Context import android.view.ViewGroup import androidx.core.content.ContextCompat -import com.gh.common.constant.Constants -import com.gh.common.syncpage.ISyncAdapterHandler -import com.gh.common.util.DisplayUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.StringUtils -import com.gh.common.util.visibleIf +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.visibleIf import com.gh.gamecenter.R import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.entity.CommunityEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerViewHolder.kt index 869b281434..1dd75dba7e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/answer/GameDetailAnswerViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.gamedetail.fuli.answer -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.GamedetailItemAnswerBinding class GameDetailAnswerViewHolder(val binding: GamedetailItemAnswerBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt index 896036369a..d5b19545c2 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarActivity.kt @@ -14,10 +14,12 @@ import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.ToolBarActivity -import com.gh.common.util.* +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ActivityServersCalendarBinding import com.gh.gamecenter.databinding.DialogServersCalendearDetailItemBinding import com.gh.gamecenter.entity.* @@ -32,6 +34,10 @@ class ServersCalendarActivity : ToolBarActivity() { private lateinit var mBinding: ActivityServersCalendarBinding private lateinit var mViewModel: ServersCalendarViewModel + private val mDelayLogRunnable = Runnable { + NewLogUtils.logGameDetailOpenCalendarView(mViewModel.game.name ?: "", mViewModel.game.id) + } + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) val serverCalendars = mViewModel.serverCalendarLiveData.value ?: return @@ -105,8 +111,9 @@ class ServersCalendarActivity : ToolBarActivity() { }) mViewModel.serversDetailLiveData.observeNonNull(this, callback = { showServersDetailDialog(it) + NewLogUtils.logGameDetailOpenCalendarClick(mViewModel.game.name ?: "", mViewModel.game.id) }) - mViewModel.serverCalendarLiveData.observe(this, androidx.lifecycle.Observer { + mViewModel.serverCalendarLiveData.observe(this) { if (it != null) { mViewModel.initDate() initView() @@ -114,17 +121,25 @@ class ServersCalendarActivity : ToolBarActivity() { mBinding.includeLoading.root.visibility = View.GONE mBinding.includeNoConnection.root.visibility = View.VISIBLE } - }) + } + mBaseHandler.postDelayed(mDelayLogRunnable, 3000) + } + + override fun onPause() { + super.onPause() + mBaseHandler.removeCallbacks(mDelayLogRunnable) } override fun onMenuItemClick(item: MenuItem?): Boolean { if (item?.itemId == R.id.menu_post) { MtaHelper.onEvent("开服日历表", "反馈", mViewModel.game.name) - SuggestionActivity.startSuggestionActivity(this, - SuggestType.normal, - "service", - StringUtils.buildString(mViewModel.game.name, ",", "开服信息问题反馈:"), - SimpleGameEntity(id = mViewModel.game.id, name = mViewModel.game.name ?: "")) + SuggestionActivity.startSuggestionActivity( + this, + SuggestType.normal, + "service", + StringUtils.buildString(mViewModel.game.name, ",", "开服信息问题反馈:"), + SimpleGameEntity(id = mViewModel.game.id, name = mViewModel.game.name ?: "") + ) } return super.onMenuItemClick(item) } @@ -303,10 +318,14 @@ class ServersCalendarActivity : ToolBarActivity() { feedback.setOnClickListener { if (mViewModel.meEntity?.isPartTime == true) { - startActivityForResult(AddKaiFuActivity.getIntent(this, + startActivityForResult( + AddKaiFuActivity.getIntent( + this, mViewModel.serverCalendarLiveData.value!!.last(), mViewModel.serverCalendarLiveData.value as ArrayList, - mViewModel.game.id, calendarEntity.server.first().getTime() * 1000), GAME_DETAIL_ADD_KAIFU_REQUEST) + mViewModel.game.id, calendarEntity.server.first().getTime() * 1000 + ), GAME_DETAIL_ADD_KAIFU_REQUEST + ) } else { val feedbackTime = if (calendarEntity.server.isNotEmpty()) { calendarEntity.server[0].getFormatTime("yyyy年M月d日") @@ -314,8 +333,9 @@ class ServersCalendarActivity : ToolBarActivity() { throwExceptionInDebug("server data is null") "" } - SuggestionActivity.startSuggestionActivity(this, SuggestType.normal, "service" - , StringUtils.buildString(mViewModel.game.name, ",", feedbackTime, "开服信息有误:")) + SuggestionActivity.startSuggestionActivity( + this, SuggestType.normal, "service", StringUtils.buildString(mViewModel.game.name, ",", feedbackTime, "开服信息有误:") + ) } } @@ -345,12 +365,15 @@ class ServersCalendarActivity : ToolBarActivity() { holder.binding.add.visibility = View.GONE } holder.binding.add.setOnClickListener { - startActivityForResult(AddKaiFuActivity.getIntent(this@ServersCalendarActivity, + startActivityForResult( + AddKaiFuActivity.getIntent( + this@ServersCalendarActivity, data, mViewModel.serverCalendarLiveData.value as ArrayList, mViewModel.game.id, - mViewModel.getSelectTime(calendarEntity.day, calendarEntity.month, calendarEntity.year)) - , ServersCalendarActivity.GAME_DETAIL_ADD_KAIFU_REQUEST) + mViewModel.getSelectTime(calendarEntity.day, calendarEntity.month, calendarEntity.year) + ), ServersCalendarActivity.GAME_DETAIL_ADD_KAIFU_REQUEST + ) } if (itemCount == position + 1) { holder.itemView.setPadding(0, 5F.dip2px(), 0, 19F.dip2px()) @@ -372,7 +395,7 @@ class ServersCalendarActivity : ToolBarActivity() { mBinding.dividerLine2.setBackgroundColor(R.color.background.toColor(this)) mBinding.year.setTextColor(R.color.text_title.toColor(this)) mBinding.recyclerView.recycledViewPool.clear() - mBinding.recyclerView.adapter?.notifyItemRangeChanged(0,mBinding.recyclerView.adapter?.itemCount?:0) + mBinding.recyclerView.adapter?.notifyItemRangeChanged(0, mBinding.recyclerView.adapter?.itemCount ?: 0) } companion object { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt index 485d670404..78a68e0b35 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarAdapter.kt @@ -9,11 +9,11 @@ import android.view.ViewGroup import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.MtaHelper -import com.gh.common.util.dip2px -import com.gh.common.util.toBinding -import com.gh.common.util.toColor -import com.gh.common.view.DrawableView +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.GameDetailCalenderViewHolder import com.gh.gamecenter.entity.CalendarEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarViewModel.kt index 8d9815020a..443e0ab83a 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersCalendarViewModel.kt @@ -6,9 +6,9 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.util.throwExceptionInDebug +import com.gh.gamecenter.common.utils.throwExceptionInDebug import com.gh.gamecenter.entity.* -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Single import io.reactivex.SingleEmitter diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersDetailViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersDetailViewHolder.kt index 53a54af874..b435504547 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersDetailViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/kaifu/ServersDetailViewHolder.kt @@ -2,8 +2,8 @@ package com.gh.gamecenter.gamedetail.fuli.kaifu import android.app.Activity import android.graphics.Paint -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.toColor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.DialogServersCalendearDetailItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/tools/GameDetailToolsAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/tools/GameDetailToolsAdapter.java index 9a0ce6a0b1..4e6d5fd12b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/tools/GameDetailToolsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/tools/GameDetailToolsAdapter.java @@ -8,9 +8,9 @@ import android.view.ViewGroup; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.WebActivity; @@ -104,7 +104,6 @@ public class GameDetailToolsAdapter extends BaseRecyclerAdapter { viewHolder.itemView.setOnClickListener(v -> { String url = toolBoxEntity.getUrl(); - DataUtils.onMtaEvent(mContext, "游戏详情_新", "游戏工具", mGameName + "+" + toolBoxEntity.getName()); if (url != null && url.contains(Config.URL_ARTICLE)) { // 写个注释例子, http://www.ghzs666.com/article/${articleId}.html diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListActivity.kt index c126d0ecc3..736ffd0477 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListActivity.kt @@ -3,20 +3,20 @@ package com.gh.gamecenter.gamedetail.history import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.entity.GameEntity -class HistoryApkListActivity : NormalActivity() { +class HistoryApkListActivity : ToolBarActivity() { companion object { fun getIntent(context: Context, gameEntity: GameEntity, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) - bundle.putString(EntranceUtils.KEY_GAMEID, gameEntity.id) - bundle.putParcelable(EntranceUtils.KEY_GAME, gameEntity) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_GAMEID, gameEntity.id) + bundle.putParcelable(EntranceConsts.KEY_GAME, gameEntity) return getTargetIntent(context, HistoryApkListActivity::class.java, HistoryApkListFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt index 92ff109e1a..ee0136591e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListAdapter.kt @@ -12,7 +12,7 @@ import androidx.constraintlayout.widget.ConstraintSet import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.g00fy2.versioncompare.Version -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable @@ -22,6 +22,11 @@ import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.getMetaExtra +import com.gh.gamecenter.common.utils.setRootBackgroundColor +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.ItemHistoryApkBinding import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListFragment.kt index 4060b8de0e..e6d1b846fe 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListFragment.kt @@ -6,12 +6,18 @@ import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.gh.common.exposure.ExposureListener -import com.gh.common.util.* -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.setRootBackgroundColor +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.FragmentHistoryApkListBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBPackage @@ -20,7 +26,6 @@ import com.lightgame.download.DataWatcher import com.lightgame.download.DownloadEntity import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -import splitties.views.dsl.core.add class HistoryApkListFragment : ListFragment() { @@ -30,6 +35,10 @@ class HistoryApkListFragment : ListFragment private val mBinding by lazy { FragmentHistoryApkListBinding.inflate(layoutInflater) } + private val mDelayLogRunnable = Runnable { + NewLogUtils.logGameDetailHistoryVersionView(mViewModel?.game?.name ?: "", mViewModel?.game?.id ?: "") + } + private val dataWatcher = object : DataWatcher() { override fun onDataChanged(downloadEntity: DownloadEntity) { mAdapter?.notifyItemByDownload(downloadEntity) @@ -50,6 +59,7 @@ class HistoryApkListFragment : ListFragment mExposureListener = ExposureListener(this, mAdapter!!) mListRv.addOnScrollListener(mExposureListener) + mBaseHandler.postDelayed(mDelayLogRunnable, 3000) } override fun onResume() { @@ -61,6 +71,7 @@ class HistoryApkListFragment : ListFragment override fun onPause() { super.onPause() DownloadManager.getInstance().removeObserver(dataWatcher) + mBaseHandler.removeCallbacks(mDelayLogRunnable) } override fun getItemDecoration(): RecyclerView.ItemDecoration { @@ -79,14 +90,14 @@ class HistoryApkListFragment : ListFragment override fun getLayoutId() = 0 override fun getInflatedLayout() = mBinding.root - override fun isAutomaticLoad() = arguments?.getParcelable(EntranceUtils.KEY_GAME) != null + override fun isAutomaticLoad() = arguments?.getParcelable(EntranceConsts.KEY_GAME) != null override fun provideListViewModel(): HistoryApkListViewModel { if (mViewModel == null) { val factory = HistoryApkListViewModel.Factory( HaloApp.getInstance().application, - arguments?.getString(EntranceUtils.KEY_GAMEID) ?: "", - arguments?.getParcelable(EntranceUtils.KEY_GAME) + arguments?.getString(EntranceConsts.KEY_GAMEID) ?: "", + arguments?.getParcelable(EntranceConsts.KEY_GAME) ) mViewModel = viewModelProvider(factory) } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListViewModel.kt index d04703a60c..f11a0fdff2 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListViewModel.kt @@ -4,12 +4,12 @@ import android.app.Application import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.entity.ApkEntity import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.download.DownloadEntity import io.reactivex.Single diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingActivity.kt index 1fb370f8e0..2e6373cd8c 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingActivity.kt @@ -3,20 +3,20 @@ package com.gh.gamecenter.gamedetail.myrating import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts /** * 我的游戏评论 */ -class MyRatingActivity : NormalActivity() { +class MyRatingActivity : ToolBarActivity() { companion object { fun getIntent(context: Context, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) return getTargetIntent(context, MyRatingActivity::class.java, MyRatingFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt index 14411d6862..1f161f8a78 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt @@ -5,11 +5,17 @@ import android.util.SparseBooleanArray import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.copyTextAndToast +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.setTextWithHighlightedTextWrappedInsideWrapper +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemMyGameRatingBinding import com.gh.gamecenter.entity.TagStyleEntity import com.gh.gamecenter.gamedetail.rating.RatingReplyActivity diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt index ce17b49079..9c053a4f25 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingFragment.kt @@ -6,11 +6,11 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.MtaHelper -import com.gh.common.util.safelyGetInRelease -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewHolder.kt index a7736f89aa..14dfa24c91 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.gamedetail.myrating -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.ItemMyGameRatingBinding class MyRatingViewHolder(var binding: ItemMyGameRatingBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewModel.kt index 7a024cb8e4..24a5777741 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingViewModel.kt @@ -3,12 +3,12 @@ package com.gh.gamecenter.gamedetail.myrating import android.app.Application import com.gh.common.util.ErrorHelper import com.gh.common.util.EnergyTaskHelper -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.personalhome.rating.MyRating -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt index c12fd9d1ee..42ef1c0c75 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingAdapter.kt @@ -9,11 +9,15 @@ import android.view.ViewGroup import android.widget.ProgressBar import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.RatingCommentItemBinding import com.gh.gamecenter.databinding.RatingItemBinding import com.gh.gamecenter.entity.Rating diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt index 2d4d68d0a0..4e61de6656 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt @@ -18,15 +18,19 @@ import android.widget.LinearLayout import android.widget.PopupWindow import android.widget.TextView import androidx.core.content.ContextCompat -import com.gh.base.BaseActivity -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.common.view.CenterImageSpan -import com.gh.common.view.CustomLinkMovementMethod -import com.gh.common.view.DrawableView +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.RatingCommentItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.RatingComment @@ -38,7 +42,6 @@ import com.squareup.picasso.Picasso import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers -import splitties.views.setCompoundDrawables import java.util.regex.Pattern class RatingCommentItemViewHolder(val binding: RatingCommentItemBinding) : BaseRecyclerViewHolder(binding.root) { @@ -161,20 +164,22 @@ class RatingCommentItemViewHolder(val binding: RatingCommentItemBinding) : BaseR // "评论详情" -> "游戏评论详情" // else -> "" // } - DialogUtils.showViewBadgeDialog(context, commentData.replyData!!.user.badge) { + DialogUtils.showViewBadgeDialog(context, commentData.replyData!!.user.badge, object : ConfirmListener { + override fun onConfirm() { // MtaHelper.onEvent( // "进入徽章墙_用户记录", // key, // "${commentData.replyData?.user?.name}(${commentData.replyData?.user?.id})" // ) // MtaHelper.onEvent("徽章中心", "进入徽章中心", key) - DirectUtils.directToBadgeWall( - context, - commentData.replyData!!.user.id, - commentData.replyData!!.user.name, - commentData.replyData!!.user.icon - ) - } + DirectUtils.directToBadgeWall( + context, + commentData.replyData!!.user.id, + commentData.replyData!!.user.name, + commentData.replyData!!.user.icon + ) + } + }) } }, @@ -272,11 +277,13 @@ class RatingCommentItemViewHolder(val binding: RatingCommentItemBinding) : BaseR } sdvUserBadge.setOnClickListener { - DialogUtils.showViewBadgeDialog(context, commentData.user.badge) { + DialogUtils.showViewBadgeDialog(context, commentData.user.badge, object : ConfirmListener { + override fun onConfirm() { // MtaHelper.onEvent("进入徽章墙_用户记录", getKey(path), "${commentData.user.name}(${commentData.user.id})") // MtaHelper.onEvent("徽章中心", "进入徽章中心", getKey(path)) - DirectUtils.directToBadgeWall(context, commentData.user.id, commentData.user.name, commentData.user.icon) - } + DirectUtils.directToBadgeWall(context, commentData.user.id, commentData.user.name, commentData.user.icon) + } + }) } tvBadgeName.setOnClickListener { sdvUserBadge.performClick() } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFoldActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFoldActivity.kt index 8b9dad38d1..4db4e4dd97 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFoldActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFoldActivity.kt @@ -3,11 +3,11 @@ package com.gh.gamecenter.gamedetail.rating import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.entity.GameEntity -class RatingFoldActivity : NormalActivity() { +class RatingFoldActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -18,8 +18,8 @@ class RatingFoldActivity : NormalActivity() { fun getIntent(context: Context, game: GameEntity, entrance: String, path: String): Intent { val bundle = Bundle() bundle.putParcelable(GameEntity.TAG, game) - bundle.putString(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - bundle.putSerializable(EntranceUtils.KEY_LOCATION, RatingViewModel.RatingType.FOLD_RATING) + bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + bundle.putSerializable(EntranceConsts.KEY_LOCATION, RatingViewModel.RatingType.FOLD_RATING) return getTargetIntent(context, RatingFoldActivity::class.java, RatingFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFragment.kt index 154c31f70e..fe28062dd1 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFragment.kt @@ -10,14 +10,19 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView -import com.gh.common.iinterface.IScrollable +import com.gh.gamecenter.core.iinterface.IScrollable import com.gh.common.util.* -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.utils.toPx +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.eventbus.EBReuse @@ -38,7 +43,7 @@ class RatingFragment : LazyListFragment(), IScro private var mRatingType: RatingViewModel.RatingType? = null override fun onCreate(savedInstanceState: Bundle?) { - mRatingType = arguments?.getSerializable(EntranceUtils.KEY_LOCATION) as? RatingViewModel.RatingType + mRatingType = arguments?.getSerializable(EntranceConsts.KEY_LOCATION) as? RatingViewModel.RatingType ?: RatingViewModel.RatingType.RATING super.onCreate(savedInstanceState) } @@ -64,12 +69,17 @@ class RatingFragment : LazyListFragment(), IScro } override fun getItemDecoration(): RecyclerView.ItemDecoration? { - return VerticalItemDecoration(requireContext(), 12F, mRatingType != RatingViewModel.RatingType.RATING, R.color.transparent) + return VerticalItemDecoration( + requireContext(), + 12F, + mRatingType != RatingViewModel.RatingType.RATING, + R.color.transparent + ) } override fun provideListAdapter(): RatingAdapter { if (mAdapter == null) { - val directComment = arguments?.getBoolean(EntranceUtils.KEY_DIRECT_COMMENT, false) + val directComment = arguments?.getBoolean(EntranceConsts.KEY_DIRECT_COMMENT, false) ?: false mAdapter = RatingAdapter(requireContext(), mListViewModel, directComment, mEntrance) } @@ -111,7 +121,7 @@ class RatingFragment : LazyListFragment(), IScro super.onFragmentFirstVisible() val horizontalPadding = R.dimen.game_detail_item_horizontal_padding.toPx() - mSkipGameComment = arguments?.getBoolean(EntranceUtils.KEY_SKIP_GAME_COMMENT) + mSkipGameComment = arguments?.getBoolean(EntranceConsts.KEY_SKIP_GAME_COMMENT) mListRv.setPadding(horizontalPadding, 0, horizontalPadding, 0) mListRefresh?.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.transparent)) mListRefresh?.isEnabled = mRatingType != RatingViewModel.RatingType.RATING diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingItemViewHolder.kt index 37c9a20f06..b55dd0567a 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingItemViewHolder.kt @@ -4,9 +4,9 @@ import android.view.LayoutInflater import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.ContextCompat -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.showAutoOrientation -import com.gh.common.view.BugFixedPopupWindow +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.showAutoOrientation +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.R import com.gh.gamecenter.databinding.RatingItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt index 8b0cee0261..1e6f8a393a 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt @@ -11,14 +11,19 @@ import androidx.core.content.ContextCompat import androidx.core.widget.doOnTextChanged import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.exposure.ExposureManager import com.gh.common.util.* -import com.gh.common.view.CustomDividerItemDecoration -import com.gh.common.view.VerticalItemDecoration +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.KeyboardHeightObserver +import com.gh.gamecenter.core.utils.KeyboardHeightProvider import com.gh.gamecenter.databinding.ActivityRatingReplyBinding import com.gh.gamecenter.databinding.PieceCommentTypingContainerBinding import com.gh.gamecenter.entity.GameEntity @@ -35,7 +40,8 @@ import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode import kotlin.math.abs -class RatingReplyActivity : ListActivity(), KeyboardHeightObserver { +class RatingReplyActivity : ListActivity(), + KeyboardHeightObserver { private lateinit var mBinding: ActivityRatingReplyBinding private lateinit var mInputBinding: PieceCommentTypingContainerBinding @@ -122,7 +128,7 @@ class RatingReplyActivity : ListActivity(application) { +class RatingReplyViewModel( + application: Application, + private val gameId: String?, + var game: GameEntity?, + val commentId: String?, + var comment: RatingComment?, + var showKeyboardIfReplyIsEmpty: Boolean, + val topCommentId: String +) : ListViewModel(application) { private val mApi = RetrofitManager.getInstance().api private val mSensitiveApi = RetrofitManager.getInstance().api @@ -43,6 +45,7 @@ class RatingReplyViewModel(application: Application, val processDialog = MediatorLiveData() private var mSortValue = SORT_POSITIVE + private var isHandleTopComment = false init { mRealLoadStatusLiveData.addSource(mLoadStatusLiveData) { @@ -74,7 +77,11 @@ class RatingReplyViewModel(application: Application, } override fun provideDataObservable(page: Int): Observable> { - return mApi.getCommentReply(game?.id, comment?.id, mSortValue, page) + val map = hashMapOf() + if (topCommentId.isNotEmpty()) { + map["top_comment_id"] = topCommentId + } + return mApi.getCommentReply(game?.id, comment?.id, mSortValue, page, map) } override fun mergeResultLiveData() { @@ -100,67 +107,73 @@ class RatingReplyViewModel(application: Application, } } - list?.let { - for (entity in list) { - val replyItem = RatingReplyItem() - replyItem.reply = entity - itemList.add(replyItem) - } + list?.forEachIndexed { index, entity -> + val replyItem = RatingReplyItem() + replyItem.reply = entity + handleTopComment(index, entity) + itemList.add(replyItem) } mResultLiveData.postValue(itemList) } } + private fun handleTopComment(index: Int, entity: RatingReplyEntity) { + if (!isHandleTopComment && game != null && comment != null && topCommentId.isNotBlank() && index == 0) { + isHandleTopComment = true + entity.isHighlight = true + } + } + // 获取游戏摘要 private fun getGameDigest() { mSensitiveApi.getGameDigest(gameId) - .map(ApkActiveUtils.filterMapper) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { - override fun onResponse(response: GameEntity?) { - game = response - if (comment == null) { - getCommentDigest() - } else { - load(LoadType.REFRESH) - headDataLiveData.postValue(true) - } + .map(ApkActiveUtils.filterMapper) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: GameEntity?) { + game = response + if (comment == null) { + getCommentDigest() + } else { + load(LoadType.REFRESH) + headDataLiveData.postValue(true) } + } - override fun onFailure(e: HttpException?) { - if (e?.code() == 404) { - mRealLoadStatusLiveData.postValue(LoadStatus.INIT_EMPTY) - Utils.toast(getApplication(), R.string.comment_failed_unable) - } else { - mRealLoadStatusLiveData.postValue(LoadStatus.INIT_FAILED) - } + override fun onFailure(e: HttpException?) { + if (e?.code() == 404) { + mRealLoadStatusLiveData.postValue(LoadStatus.INIT_EMPTY) + Utils.toast(getApplication(), R.string.comment_failed_unable) + } else { + mRealLoadStatusLiveData.postValue(LoadStatus.INIT_FAILED) } - }) + } + }) } private fun getCommentDigest() { mApi.getGameComment(gameId, commentId) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { - override fun onResponse(response: RatingComment?) { - response?.replyData = null - comment = response - load(LoadType.REFRESH) - headDataLiveData.postValue(true) - } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: RatingComment?) { + response?.replyData = null + comment = response + load(LoadType.REFRESH) + headDataLiveData.postValue(true) + } - override fun onFailure(e: HttpException?) { - if (e?.code() == 404) { - mRealLoadStatusLiveData.postValue(LoadStatus.INIT_EMPTY) - Utils.toast(getApplication(), R.string.comment_failed_unable) - } else { - mRealLoadStatusLiveData.postValue(LoadStatus.INIT_FAILED) - } - headDataLiveData.postValue(false) + override fun onFailure(e: HttpException?) { + if (e?.code() == 404) { + mRealLoadStatusLiveData.postValue(LoadStatus.INIT_EMPTY) + Utils.toast(getApplication(), R.string.comment_failed_unable) + } else { + mRealLoadStatusLiveData.postValue(LoadStatus.INIT_FAILED) } - }) + headDataLiveData.postValue(false) + } + }) } fun replyComment(replyId: String?, content: String, successCallback: () -> Unit) { @@ -180,30 +193,40 @@ class RatingReplyViewModel(application: Application, } val body = json.toRequestBody() val observable = - if (replyId.isNullOrEmpty()) { - mApi.postCommentReply(game?.id, comment?.id, body) - } else { - mApi.postReplyToReply(game?.id, comment?.id, replyId, body) - } + if (replyId.isNullOrEmpty()) { + mApi.postCommentReply(game?.id, comment?.id, body) + } else { + mApi.postReplyToReply(game?.id, comment?.id, replyId, body) + } observable - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { - override fun onResponse(response: ResponseBody?) { - super.onResponse(response) - processDialog.postValue(WaitingDialogFragment.WaitingDialogData("提交中...", false)) - Utils.toast(getApplication(), "发表成功") - successCallback.invoke() - comment!!.reply = comment!!.reply + 1 - load(LoadType.REFRESH) - } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: ResponseBody?) { + super.onResponse(response) + processDialog.postValue( + WaitingDialogFragment.WaitingDialogData( + "提交中...", + false + ) + ) + Utils.toast(getApplication(), "发表成功") + successCallback.invoke() + comment!!.reply = comment!!.reply + 1 + load(LoadType.REFRESH) + } - override fun onFailure(e: HttpException?) { - super.onFailure(e) - processDialog.postValue(WaitingDialogFragment.WaitingDialogData("提交中...", false)) - ErrorHelper.handleError(getApplication(), e?.response()?.errorBody()?.string()) - } - }) + override fun onFailure(e: HttpException?) { + super.onFailure(e) + processDialog.postValue( + WaitingDialogFragment.WaitingDialogData( + "提交中...", + false + ) + ) + ErrorHelper.handleError(getApplication(), e?.response()?.errorBody()?.string()) + } + }) } fun voteReply(replyId: String, isVote: Boolean = true, callback: () -> Unit) { @@ -213,75 +236,75 @@ class RatingReplyViewModel(application: Application, mApi.postReplyUnvote(game?.id, comment?.id, replyId) } observable - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { - override fun onResponse(response: ResponseBody?) { - Utils.toast(getApplication(), if (isVote) "点赞成功" else "取消点赞") + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: ResponseBody?) { + Utils.toast(getApplication(), if (isVote) "点赞成功" else "取消点赞") - val list = mListLiveData.value - if (list != null) { - for (entity in list) { - if (entity.id == replyId) { - entity.me.isVoted = isVote - entity.vote = if (isVote) entity.vote + 1 else entity.vote - 1 - } + val list = mListLiveData.value + if (list != null) { + for (entity in list) { + if (entity.id == replyId) { + entity.me.isVoted = isVote + entity.vote = if (isVote) entity.vote + 1 else entity.vote - 1 } } - callback.invoke() } + callback.invoke() + } - override fun onFailure(e: HttpException?) { - val string = e?.response()?.errorBody()?.string() - val errorEntity = string?.toObject() - if (errorEntity?.code == 403008) { - onResponse(null) - return - } - ErrorHelper.handleError(getApplication(), e?.response()?.errorBody()?.string()) + override fun onFailure(e: HttpException?) { + val string = e?.response()?.errorBody()?.string() + val errorEntity = string?.toObject() + if (errorEntity?.code == 403008) { + onResponse(null) + return } - }) + ErrorHelper.handleError(getApplication(), e?.response()?.errorBody()?.string()) + } + }) } fun voteComment(callback: () -> Unit) { mApi.voteGameComment(game?.id, comment?.id) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { - override fun onResponse(response: ResponseBody?) { - Utils.toast(getApplication(), "点赞成功") - callback.invoke() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: ResponseBody?) { + Utils.toast(getApplication(), "点赞成功") + callback.invoke() - EnergyTaskHelper.postEnergyTask("vote_game_comment", commentId) - } + EnergyTaskHelper.postEnergyTask("vote_game_comment", commentId) + } - override fun onFailure(e: HttpException?) { - val string = e?.response()?.errorBody()?.string() - val errorEntity = string?.toObject() - if (errorEntity?.code == 403008) { - onResponse(null) - return - } - ErrorHelper.handleError(getApplication(), e?.response()?.errorBody()?.string()) + override fun onFailure(e: HttpException?) { + val string = e?.response()?.errorBody()?.string() + val errorEntity = string?.toObject() + if (errorEntity?.code == 403008) { + onResponse(null) + return } - }) + ErrorHelper.handleError(getApplication(), e?.response()?.errorBody()?.string()) + } + }) } fun unvoteComment(callback: () -> Unit) { mApi.unvoteGameComment(game?.id, comment?.id) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { - override fun onResponse(response: ResponseBody?) { - Utils.toast(getApplication(), "取消点赞") - callback.invoke() - } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: ResponseBody?) { + Utils.toast(getApplication(), "取消点赞") + callback.invoke() + } - override fun onFailure(e: HttpException?) { - val string = e?.response()?.errorBody()?.string() - ErrorHelper.handleError(getApplication(), string) - } - }) + override fun onFailure(e: HttpException?) { + val string = e?.response()?.errorBody()?.string() + ErrorHelper.handleError(getApplication(), string) + } + }) } fun sortList(sortValue: String) { @@ -289,15 +312,26 @@ class RatingReplyViewModel(application: Application, load(LoadType.REFRESH) } - class Factory(private val gameId: String?, - private val game: GameEntity?, - private val commentId: String?, - private val comment: RatingComment?, - private val showKeyboardIfReplyIsEmpty: Boolean) : ViewModelProvider.NewInstanceFactory() { + class Factory( + private val gameId: String?, + private val game: GameEntity?, + private val commentId: String?, + private val comment: RatingComment?, + private val showKeyboardIfReplyIsEmpty: Boolean, + private val topCommentId: String + ) : ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { comment?.replyData = null // 不需要显示回复引用区域 - return RatingReplyViewModel(HaloApp.getInstance().application, gameId, game, commentId, comment, showKeyboardIfReplyIsEmpty) as T + return RatingReplyViewModel( + HaloApp.getInstance().application, + gameId, + game, + commentId, + comment, + showKeyboardIfReplyIsEmpty, + topCommentId + ) as T } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingViewModel.kt index dca4de96ad..fe8f32044b 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingViewModel.kt @@ -6,17 +6,19 @@ import android.text.TextUtils import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadParams import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.Rating import com.gh.gamecenter.entity.RatingComment -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt index c7ccdcf6f6..f85fce36b3 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt @@ -13,18 +13,25 @@ import android.view.View import android.webkit.* import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.base.ToolBarActivity -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.AppExecutor +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.AppExecutor import com.gh.common.DefaultJsApi -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.common.view.dsbridge.DWebView -import com.gh.common.view.dsbridge.OnReturnValue +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.dsbridge.DWebView +import com.gh.gamecenter.common.view.dsbridge.OnReturnValue import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R import com.gh.gamecenter.ShellActivity import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ActivityRatingEditBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.UserManager @@ -74,10 +81,10 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { super.onCreate(savedInstanceState) setToolbarMenu(R.menu.menu_game_comment) mGame = intent.getParcelableExtra(GameEntity.TAG) ?: GameEntity(id = "") - mFromAmway = intent.getBooleanExtra(EntranceUtils.KEY_AMWAY, false) - mIsSkipSuccessPage = intent.getBooleanExtra(EntranceUtils.KEY_SKIP_SUCCESS_PAGE, false) + mFromAmway = intent.getBooleanExtra(EntranceConsts.KEY_AMWAY, false) + mIsSkipSuccessPage = intent.getBooleanExtra(EntranceConsts.KEY_SKIP_SUCCESS_PAGE, false) mComment = intent.getParcelableExtra(RatingComment::class.java.simpleName) - mInstallPackageName = intent.getStringExtra(EntranceUtils.KEY_PACKAGENAME) + mInstallPackageName = intent.getStringExtra(EntranceConsts.KEY_PACKAGENAME) mRatingScoreTip = resources.getStringArray(R.array.rating_score_tip) val factory = RatingEditViewModel.Factory(HaloApp.getInstance().application, mGame) @@ -107,7 +114,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { val navigationTitle: String if (mComment == null) { navigationTitle = "评论" - var ratingStartCount = intent.getFloatExtra(EntranceUtils.KEY_RATING_STAR_COUNT, 0.0F) + var ratingStartCount = intent.getFloatExtra(EntranceConsts.KEY_RATING_STAR_COUNT, 0.0F) if (mDraft != null) { mBinding.deviceBox.isChecked = mDraft!!.getDevice().isNotEmpty() if (ratingStartCount == 0.0F) { @@ -150,6 +157,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { private fun initWebView() { val settings = mBinding.mWebView.settings settings.javaScriptEnabled = true + mBinding.mWebView.enableForceDark(NightModeUtils.isNightMode(this)) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW } @@ -297,13 +305,16 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { this@RatingEditActivity, true, "提示", "检测到您评论的内容中含有反映游戏问题相关内容,可选择点击下方联系客服按钮,将问题反馈给客服,以便更优解决!", "联系客服", "继续提交", - { - DirectUtils.directToWebView(this, Constants.TENCENT_QIDIAN_ADDRESS, mEntrance) - MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "点击联系客服") - }, - { - postGameComment(again = true) - MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "点击继续提交") + object : ConfirmListener { + override fun onConfirm() { + DirectUtils.directToWebView(this@RatingEditActivity, Constants.TENCENT_QIDIAN_ADDRESS, mEntrance) + MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "点击联系客服") + } + }, object : CancelListener { + override fun onCancel() { + postGameComment(again = true) + MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "点击继续提交") + } }, TrackableEntity(event = "游戏评论跳转", key = "联系客服弹窗") ) } @@ -314,22 +325,25 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { this@RatingEditActivity, "提示", "检测到您评论的内容中含有反映游戏问题相关内容,可选择点击下方问题反馈按钮,将问题反馈给后台客服,以便更优解决!", "问题反馈", "继续提交", - { - MtaHelper.onEvent("游戏评论跳转", "意见反馈弹窗", "点击问题反馈") - mBinding.mWebView.callHandler("getComment", OnReturnValue { content -> - DirectUtils.directToSuggestion( - context = this@RatingEditActivity, - type = SuggestType.gameQuestion, - content = content.replace(LABEL_REPLACE_REGEX.toRegex(), ""), - fromRatingKey = true, - game = SimpleGameEntity(mGame?.id ?: "", mGame?.name ?: "") - ) - finish() - }) - }, - { - MtaHelper.onEvent("游戏评论跳转", "意见反馈弹窗", "点击继续提交") - postGameComment(again = true) + object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("游戏评论跳转", "意见反馈弹窗", "点击问题反馈") + mBinding.mWebView.callHandler("getComment", OnReturnValue { content -> + DirectUtils.directToSuggestion( + context = this@RatingEditActivity, + type = SuggestType.gameQuestion, + content = content.replace(LABEL_REPLACE_REGEX.toRegex(), ""), + fromRatingKey = true, + game = SimpleGameEntity(mGame?.id ?: "", mGame?.name ?: "") + ) + finish() + }) + } + }, object : CancelListener { + override fun onCancel() { + MtaHelper.onEvent("游戏评论跳转", "意见反馈弹窗", "点击继续提交") + postGameComment(again = true) + } }, TrackableEntity(event = "游戏评论跳转", key = "意见反馈弹窗") ) } @@ -474,6 +488,14 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { ) } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + mBinding.mWebView.enableForceDark(NightModeUtils.isNightMode(this)) + } + companion object { const val LABEL_REPLACE_REGEX = "]*?>[\\s\\S]*?<\\/tag>" const val LABEL_PREFIX = "" @@ -492,10 +514,10 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { ): Intent { val intent = Intent(context, RatingEditActivity::class.java) intent.putExtra(GameEntity.TAG, game) - intent.putExtra(EntranceUtils.KEY_RATING_STAR_COUNT, starCount) - intent.putExtra(EntranceUtils.KEY_AMWAY, fromAmway) - intent.putExtra(EntranceUtils.KEY_SKIP_SUCCESS_PAGE, isSkipSuccessPage) - intent.putExtra(EntranceUtils.KEY_PACKAGENAME, installPackageName) + intent.putExtra(EntranceConsts.KEY_RATING_STAR_COUNT, starCount) + intent.putExtra(EntranceConsts.KEY_AMWAY, fromAmway) + intent.putExtra(EntranceConsts.KEY_SKIP_SUCCESS_PAGE, isSkipSuccessPage) + intent.putExtra(EntranceConsts.KEY_PACKAGENAME, installPackageName) return intent } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditViewModel.kt index 1afa354a77..0d8f76888d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditViewModel.kt @@ -5,13 +5,17 @@ import android.app.Application import android.content.Context import android.os.Build import androidx.lifecycle.* -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt index 83609ae087..4bc8632f9e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt @@ -7,12 +7,12 @@ import android.os.Bundle import android.widget.TextView import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.EntranceUtils -import com.gh.common.util.setRootBackgroundColor -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListActivity import com.gh.gamecenter.baselist.NormalListViewModel +import com.gh.gamecenter.common.utils.setRootBackgroundColor import com.gh.gamecenter.databinding.ActivityGameCommentLogsBinding import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.retrofit.RetrofitManager @@ -32,8 +32,8 @@ class CommentLogsActivity : ListActivity(R.id.errorContainer)?.visibility = View.VISIBLE + setViewShowState(mStartButton, INVISIBLE) + findViewById(R.id.errorContainer)?.visibility = VISIBLE return@debounceActionWithInterval } startPlayLogic(false) diff --git a/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java b/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java index 6c25bb2c6d..22243d1aa2 100644 --- a/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java +++ b/app/src/main/java/com/gh/gamecenter/geetest/GTWebView.java @@ -21,7 +21,7 @@ import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; -import com.gh.common.util.AppDebugConfig; +import com.gh.gamecenter.core.utils.AppDebugConfig; import org.json.JSONArray; import org.json.JSONObject; diff --git a/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java b/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java index e69b32291a..2b0c2bb822 100644 --- a/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java +++ b/app/src/main/java/com/gh/gamecenter/geetest/GeetestUtils.java @@ -4,8 +4,8 @@ import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; -import com.gh.common.util.AppDebugConfig; -import com.gh.gamecenter.retrofit.JSONObjectResponse; +import com.gh.gamecenter.core.utils.AppDebugConfig; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.utils.RuntimeUtils; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/geetest/GtDialog.java b/app/src/main/java/com/gh/gamecenter/geetest/GtDialog.java index 89683dc4f4..8bb7f01a8c 100644 --- a/app/src/main/java/com/gh/gamecenter/geetest/GtDialog.java +++ b/app/src/main/java/com/gh/gamecenter/geetest/GtDialog.java @@ -11,7 +11,7 @@ import android.view.Window; import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; import com.lightgame.utils.Utils; import org.json.JSONException; diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpCategoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/help/HelpCategoryAdapter.kt index 72ed9ceb3e..3aa99ed18f 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpCategoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpCategoryAdapter.kt @@ -2,10 +2,10 @@ package com.gh.gamecenter.help import android.content.Context import android.view.ViewGroup -import com.gh.common.util.ImageUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.goneIf -import com.gh.common.util.toColor +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.HelpCategoryItemBinding import com.gh.gamecenter.entity.HelpCategoryEntity diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpCategoryViewHolder.kt b/app/src/main/java/com/gh/gamecenter/help/HelpCategoryViewHolder.kt index 12dac6d90a..a642d4c5f1 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpCategoryViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpCategoryViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.help -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.HelpCategoryItemBinding class HelpCategoryViewHolder(val binding: HelpCategoryItemBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/help/HelpContainerFragment.kt index b58731eb1e..ea87dca945 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpContainerFragment.kt @@ -10,14 +10,15 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentTransaction import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.common.util.EntranceUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.TextHelper +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.TextHelper import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentHelpContaierBinding import com.gh.gamecenter.eventbus.EBNetworkState import com.gh.gamecenter.mvvm.Status -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.toColor import com.halo.assistant.HaloApp import com.lightgame.utils.Util_System_Keyboard import org.greenrobot.eventbus.Subscribe @@ -29,7 +30,7 @@ import org.greenrobot.eventbus.ThreadMode * 2.Q&A合集(qaCollectionId 存在时) * 3.Q&A(qaId 存在时) */ -class HelpContainerFragment : NormalFragment() { +class HelpContainerFragment : ToolbarFragment() { private lateinit var mBinding: FragmentHelpContaierBinding @@ -46,11 +47,11 @@ class HelpContainerFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mNavigationTitle = arguments?.getString(EntranceUtils.KEY_NAVIGATION_TITLE) ?: "" + mNavigationTitle = arguments?.getString(EntranceConsts.KEY_NAVIGATION_TITLE) ?: "" if (mNavigationTitle.isNotEmpty()) setNavigationTitle(mNavigationTitle) - val qaCollectionId = arguments?.getString(EntranceUtils.KEY_QA_COLLECTION_ID) - val qaId = arguments?.getString(EntranceUtils.KEY_QA_ID) + val qaCollectionId = arguments?.getString(EntranceConsts.KEY_QA_COLLECTION_ID) + val qaId = arguments?.getString(EntranceConsts.KEY_QA_ID) val factory = HelpContainerViewModel.Factory(HaloApp.getInstance().application, qaId, qaCollectionId) mViewModel = ViewModelProviders.of(this, factory).get(HelpContainerViewModel::class.java) @@ -174,11 +175,11 @@ class HelpContainerFragment : NormalFragment() { } else { fragmentByTag = cls.newInstance() val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_QA_ID, mViewModel.qaId) - bundle.putString(EntranceUtils.KEY_QA_COLLECTION_ID, mViewModel.qaCollectionId) + bundle.putString(EntranceConsts.KEY_QA_ID, mViewModel.qaId) + bundle.putString(EntranceConsts.KEY_QA_COLLECTION_ID, mViewModel.qaCollectionId) if (!default) { - bundle.putString(EntranceUtils.KEY_SEARCHKEY, mBinding.searchInput.text.toString()) - bundle.putString(EntranceUtils.KEY_NAVIGATION_TITLE, mNavigationTitle) + bundle.putString(EntranceConsts.KEY_SEARCHKEY, mBinding.searchInput.text.toString()) + bundle.putString(EntranceConsts.KEY_NAVIGATION_TITLE, mNavigationTitle) } fragmentByTag.arguments = bundle transaction.add(R.id.content_container, fragmentByTag, tag) @@ -199,4 +200,14 @@ class HelpContainerFragment : NormalFragment() { mViewModel.initData() } } + + override fun onNightModeChange() { + super.onNightModeChange() + mBinding.searchInput.run { + post { + setHintTextColor(R.color.text_body.toColor(requireContext())) + setTextColor(R.color.text_title.toColor(requireContext())) + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpContainerViewModel.kt b/app/src/main/java/com/gh/gamecenter/help/HelpContainerViewModel.kt index 71fec2a466..1798a1a37e 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpContainerViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpContainerViewModel.kt @@ -8,7 +8,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.entity.HelpCategoryEntity import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpContentAdapter.kt b/app/src/main/java/com/gh/gamecenter/help/HelpContentAdapter.kt index 91147b9868..a49c40f31d 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpContentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpContentAdapter.kt @@ -6,8 +6,8 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.Constants -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.QaActivity import com.gh.gamecenter.R @@ -15,6 +15,12 @@ import com.gh.gamecenter.WebActivity import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.NormalListViewModel +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.fromHtml +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.EnvHelper +import com.gh.gamecenter.core.utils.HtmlUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.HelpItemBinding import com.gh.gamecenter.entity.HelpEntity @@ -157,8 +163,8 @@ class HelpContentAdapter( is FooterViewHolder -> { holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver) holder.hint.text = "没有更多了~" - holder.hint.setTextColor(R.color.text_subtitle.toColor()) - holder.hint.textSize = 12f + holder.hint.setTextColor(R.color.text_subtitle.toColor(mContext)) + holder.hint.textSize = 12F } } } diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpContentFragment.kt b/app/src/main/java/com/gh/gamecenter/help/HelpContentFragment.kt index e9471b7e56..7c8f9a42ef 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpContentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpContentFragment.kt @@ -5,9 +5,9 @@ import android.view.View import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.DirectUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.common.util.NewLogUtils -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.HelpAndFeedbackActivity import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment @@ -57,10 +57,10 @@ class HelpContentFragment : ListFragment(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpQaAdapter.kt b/app/src/main/java/com/gh/gamecenter/help/HelpQaAdapter.kt index a92940ca9d..3ac28767db 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpQaAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpQaAdapter.kt @@ -1,33 +1,30 @@ package com.gh.gamecenter.help import android.content.Context -import android.text.TextUtils -import android.view.Gravity +import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.utils.EnvHelper +import com.gh.gamecenter.core.utils.HtmlUtils +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.databinding.HelpQaItemBinding import com.gh.gamecenter.entity.HelpCategoryEntity class HelpQaAdapter(val context: Context, val helpCategoryEntity: HelpCategoryEntity, val mQaCollectionId: String?) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - val helpView = TextView(context).apply { - val params = RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, 30f.dip2px()) - layoutParams = params - setTextColor(ContextCompat.getColor(context, R.color.text_title)) - textSize = 14f - includeFontPadding = false - gravity = Gravity.CENTER_VERTICAL - ellipsize = TextUtils.TruncateAt.END - maxLines = 1 - } - return HelpQaItemViewHolder(helpView) + return HelpQaItemViewHolder( + HelpQaItemBinding.inflate( + LayoutInflater.from(context), + parent, + false + ).root + ) } override fun getItemCount(): Int = helpCategoryEntity.helpEntities.size diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryAdapter.kt index 6266e82756..1dc3b8d2ff 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryAdapter.kt @@ -6,10 +6,10 @@ import android.view.ViewGroup import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.DirectUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.common.util.NewLogUtils -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R import com.gh.gamecenter.databinding.HelpQaCategoryItemBinding import com.gh.gamecenter.entity.HelpCategoryEntity @@ -37,10 +37,16 @@ class HelpQaCategoryAdapter(val context: Context, private val mQaCollectionId: S ImageUtils.display(holder.binding.categoryIcon, helpCategoryEntity.icon) holder.binding.categoryName.text = helpCategoryEntity.name - holder.binding.qaRv.apply { layoutManager = GridLayoutManager(context, 2) - addItemDecoration(GridSpacingItemColorDecoration(context, 28, 0, R.color.transparent)) + addItemDecoration( + GridSpacingItemColorDecoration( + context, + 28, + 0, + R.color.transparent + ) + ) adapter = HelpQaAdapter(context, helpCategoryEntity, mQaCollectionId) } holder.binding.categoryMore.setOnClickListener { diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryFragment.kt b/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryFragment.kt index a59a418ebe..b010b1f165 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryFragment.kt @@ -5,18 +5,19 @@ import android.view.View import android.widget.TextView import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.common.util.EntranceUtils -import com.gh.common.util.toDrawable -import com.gh.common.util.toObject -import com.gh.common.util.viewModelProvider -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.CustomDividerItemDecoration +import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentQaCategoryBinding import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.mvvm.Status -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment -class HelpQaCategoryFragment : NormalFragment() { +class HelpQaCategoryFragment : ToolbarFragment() { private var mQaCollectionId = "" private var mQaId = "" @@ -33,8 +34,8 @@ class HelpQaCategoryFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mQaCollectionId = arguments?.getString(EntranceUtils.KEY_QA_COLLECTION_ID) ?: "" - mQaId = arguments?.getString(EntranceUtils.KEY_QA_ID) ?: "" + mQaCollectionId = arguments?.getString(EntranceConsts.KEY_QA_COLLECTION_ID) ?: "" + mQaId = arguments?.getString(EntranceConsts.KEY_QA_ID) ?: "" val factory = HelpQaCategoryViewModel.Factory(mQaCollectionId) mViewModel = viewModelProvider(factory) @@ -69,15 +70,7 @@ class HelpQaCategoryFragment : NormalFragment() { super.onViewCreated(view, savedInstanceState) mBinding.listRv.apply { layoutManager = LinearLayoutManager(context) - val itemDecoration = CustomDividerItemDecoration( - requireContext(), - onlyDecorateTheFirstItem = false, - notDecorateTheFirstItem = false, - notDecorateTheLastItem = true, - notDecorateTheFirstTwoItems = false - ) - itemDecoration.setDrawable(R.drawable.divider_item_line_space_16.toDrawable()!!) - addItemDecoration(itemDecoration) + addItemDecoration(getItemDecoration()) mAdapter = HelpQaCategoryAdapter(requireContext(), mQaCollectionId) adapter = mAdapter } @@ -88,4 +81,26 @@ class HelpQaCategoryFragment : NormalFragment() { mViewModel?.initData() } } + + fun getItemDecoration(): RecyclerView.ItemDecoration { + return CustomDividerItemDecoration( + requireContext(), + onlyDecorateTheFirstItem = false, + notDecorateTheFirstItem = false, + notDecorateTheLastItem = true, + notDecorateTheFirstTwoItems = false + ).apply { + setDrawable(R.drawable.divider_item_line_space_16.toDrawable(requireContext())!!) + } + } + + override fun onNightModeChange() { + super.onNightModeChange() + mBinding.listRv.run { + if (itemDecorationCount > 0) { + removeItemDecorationAt(0) + addItemDecoration(getItemDecoration()) + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryViewModel.kt b/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryViewModel.kt index d5f54885c2..c305add261 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryViewModel.kt @@ -6,14 +6,11 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.HelpCategoryEntity import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp -import io.reactivex.Observable -import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import retrofit2.HttpException diff --git a/app/src/main/java/com/gh/gamecenter/help/QaFeedbackDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/help/QaFeedbackDialogFragment.kt index 486e1723b8..9dbb9f10bc 100644 --- a/app/src/main/java/com/gh/gamecenter/help/QaFeedbackDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/help/QaFeedbackDialogFragment.kt @@ -1,21 +1,28 @@ package com.gh.gamecenter.help import android.app.Dialog +import android.content.res.Configuration import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.RadioButton import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentTransaction import androidx.lifecycle.Lifecycle -import androidx.lifecycle.Observer import androidx.recyclerview.widget.GridLayoutManager -import androidx.recyclerview.widget.LinearLayoutManager import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity +import com.gh.gamecenter.common.utils.NightModeUtils.getSystemMode +import com.gh.gamecenter.common.utils.NightModeUtils.isNightMode +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.DialogQaFeedbackBinding import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.suggest.SuggestType @@ -30,6 +37,8 @@ class QaFeedbackDialogFragment : BaseDialogFragment() { private val mReasonList = arrayListOf("内容看不懂", "没有解决办法", "方法不可行", "其他原因") private lateinit var mAdapter: QaFeedbackReasonAdapter + private var mNightMode = false + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -49,6 +58,12 @@ class QaFeedbackDialogFragment : BaseDialogFragment() { } mLoadingDialog?.dismiss() } + + mNightMode = if (BuildConfig.IS_NIGHT_MODE_ON) { + isNightMode(requireContext()) + } else { + false + } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -59,8 +74,8 @@ class QaFeedbackDialogFragment : BaseDialogFragment() { addItemDecoration(GridSpacingItemDecoration(2, 8f.dip2px(), false)) adapter = QaFeedbackReasonAdapter(requireContext(), mReasonList) { mBinding.commitBtn.background = - R.drawable.bg_notification_open_btn_style_2.toDrawable() - mBinding.commitBtn.setTextColor(R.color.white.toColor()) + R.drawable.bg_notification_open_btn_style_2.toDrawable(requireContext()) + mBinding.commitBtn.setTextColor(R.color.text_white.toColor(requireContext())) }.apply { mAdapter = this } @@ -105,6 +120,45 @@ class QaFeedbackDialogFragment : BaseDialogFragment() { requireDialog().setCanceledOnTouchOutside(false) } + override fun onResume() { + super.onResume() + if (!getSystemMode() && mNightMode != isNightMode(requireContext())) { + onNightModeChange() + } + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + onNightModeChange() + } + + private fun onNightModeChange() { + mNightMode = isNightMode(requireContext()) + + mBinding.run { + root.background = R.drawable.background_shape_white_radius_8.toDrawable(requireContext()) + title.setTextColor(R.color.text_title.toColor(requireContext())) + reasonRv.adapter?.run { + notifyItemRangeChanged(0, itemCount) + } + contentEt.run { + background = R.drawable.border_round_stroke_eee_4.toDrawable(requireContext()) + setHintTextColor(R.color.text_body.toColor(requireContext())) + setTextColor(R.color.text_title.toColor(requireContext())) + } + commitBtn.run { + if (::mAdapter.isInitialized && mAdapter.getSelectReason().isEmpty()) { + background = R.drawable.button_round_f5f5f5.toDrawable(requireContext()) + setTextColor(R.color.text_body.toColor(requireContext())) + } else { + background = R.drawable.bg_notification_open_btn_style_2.toDrawable(requireContext()) + setTextColor(R.color.text_white.toColor(requireContext())) + } + } + feedbackMoreTv.setTextColor(R.color.theme_font.toColor(requireContext())) + } + } + companion object { @JvmStatic fun show(activity: AppCompatActivity, contentId: String) { diff --git a/app/src/main/java/com/gh/gamecenter/help/QaFeedbackReasonAdapter.kt b/app/src/main/java/com/gh/gamecenter/help/QaFeedbackReasonAdapter.kt index 30e96cb7ae..16a3419ef1 100644 --- a/app/src/main/java/com/gh/gamecenter/help/QaFeedbackReasonAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/help/QaFeedbackReasonAdapter.kt @@ -4,8 +4,8 @@ import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemQaFeedbackReasonBinding import com.lightgame.adapter.BaseRecyclerAdapter @@ -30,9 +30,13 @@ class QaFeedbackReasonAdapter( if (holder is QaFeedbackReasonViewHolder) { holder.binding.reasonTv.apply { text = reason - background = if (mSelectPosition == position) R.drawable.qa_feedback_rg_button_checked.toDrawable() else - R.drawable.qa_feedback_rg_button_normal.toDrawable() - setTextColor(if (mSelectPosition == position) R.color.theme_font.toColor() else R.color.text_title.toColor()) + background = + if (mSelectPosition == position) R.drawable.qa_feedback_rg_button_checked.toDrawable(mContext) + else R.drawable.qa_feedback_rg_button_normal.toDrawable(mContext) + setTextColor( + if (mSelectPosition == position) R.color.theme_font.toColor(mContext) + else R.color.text_title.toColor(mContext) + ) } holder.binding.reasonTv.setOnClickListener { mSelectPosition = position diff --git a/app/src/main/java/com/gh/gamecenter/help/QaFeedbackViewModel.kt b/app/src/main/java/com/gh/gamecenter/help/QaFeedbackViewModel.kt index 515bb569b4..02c96870f0 100644 --- a/app/src/main/java/com/gh/gamecenter/help/QaFeedbackViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/help/QaFeedbackViewModel.kt @@ -7,12 +7,12 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.exposure.meta.MetaUtil.getBase64EncodedIMEI +import com.gh.gamecenter.common.exposure.meta.MetaUtil.getBase64EncodedIMEI import com.gh.common.util.PackageUtils -import com.gh.common.util.singleToMain -import com.gh.common.util.toRequestBody +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toRequestBody import com.gh.gamecenter.R -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.walkud.rom.checker.RomIdentifier diff --git a/app/src/main/java/com/gh/gamecenter/history/HistoryActivity.kt b/app/src/main/java/com/gh/gamecenter/history/HistoryActivity.kt index ba2b90d0b6..84cb4c78d3 100644 --- a/app/src/main/java/com/gh/gamecenter/history/HistoryActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/history/HistoryActivity.kt @@ -3,17 +3,31 @@ package com.gh.gamecenter.history import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class HistoryActivity: NormalActivity() { +class HistoryActivity: ToolBarActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } + + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } companion object { @JvmStatic fun getHistoryIntent(context: Context, entrance: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) - return NormalActivity.getTargetIntent(context, HistoryActivity::class.java, HistoryWrapperFragment::class.java, bundle) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) + return getTargetIntent(context, HistoryActivity::class.java, HistoryWrapperFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/history/HistoryGameListAdapter.kt b/app/src/main/java/com/gh/gamecenter/history/HistoryGameListAdapter.kt index 1cb15d51e4..acdd62e36f 100644 --- a/app/src/main/java/com/gh/gamecenter/history/HistoryGameListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/history/HistoryGameListAdapter.kt @@ -8,13 +8,15 @@ import android.widget.LinearLayout import android.widget.PopupWindow import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.GameItemBinding import com.gh.gamecenter.databinding.PopupHistoryOptionBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/history/HistoryGameListFragment.kt b/app/src/main/java/com/gh/gamecenter/history/HistoryGameListFragment.kt index b3f0b581cc..8628af8eb7 100644 --- a/app/src/main/java/com/gh/gamecenter/history/HistoryGameListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/history/HistoryGameListFragment.kt @@ -4,10 +4,10 @@ import android.os.Bundle import android.view.View import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.util.viewModelProvider -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.databinding.FragmentListBaseSkeletonBinding @@ -34,7 +34,7 @@ open class HistoryGameListFragment : ListFragment) { fragments.add(HistoryGameListFragment().with(arguments)) fragments.add(GamesCollectionFragment().with((arguments?.clone() as? Bundle)?.apply { - putString(EntranceUtils.KEY_USER_ID, UserManager.getInstance().userId) - putString(EntranceUtils.KEY_TYPE, GamesCollectionFragment.TYPE_HISTORY) + putString(EntranceConsts.KEY_USER_ID, UserManager.getInstance().userId) + putString(EntranceConsts.KEY_TYPE, GamesCollectionFragment.TYPE_HISTORY) })) fragments.add(VideoFragment().with((arguments?.clone() as? Bundle)?.apply { putString("videoStyle", VideoFragment.VideoStyle.BROWSING_HISTORY.value) })) - fragments.add(AnswerFragment().with((arguments?.clone() as? Bundle)?.apply { putString(EntranceUtils.KEY_TYPE, AnswerFragment.HISTORY) })) - fragments.add(CommunityArticleFragment().with((arguments?.clone() as? Bundle)?.apply { putString(EntranceUtils.KEY_TYPE, CommunityArticleFragment.Type.HISTORY.value) })) - fragments.add(ArticleFragment().with((arguments?.clone() as? Bundle)?.apply { putString(EntranceUtils.KEY_TYPE, ArticleFragment.HISTORY) })) + fragments.add(AnswerFragment().with((arguments?.clone() as? Bundle)?.apply { putString(EntranceConsts.KEY_TYPE, AnswerFragment.HISTORY) })) + fragments.add(CommunityArticleFragment().with((arguments?.clone() as? Bundle)?.apply { putString(EntranceConsts.KEY_TYPE, CommunityArticleFragment.Type.HISTORY.value) })) + fragments.add(ArticleFragment().with((arguments?.clone() as? Bundle)?.apply { putString(EntranceConsts.KEY_TYPE, ArticleFragment.HISTORY) })) } override fun onPageSelected(position: Int) { diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt b/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt index 174ba6f2aa..2dab8bb5bf 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragment.kt @@ -5,19 +5,23 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.LazyFragment -import com.gh.common.AppExecutor -import com.gh.common.TimeElapsedHelper -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.core.utils.TimeElapsedHelper +import com.gh.gamecenter.common.constant.Constants import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureListener import com.gh.common.util.* -import com.gh.common.view.OffsetLinearLayoutManager +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.view.OffsetLinearLayoutManager import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentMainHomeBinding import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.eventbus.EBPackage @@ -59,7 +63,7 @@ class HomeFragment : LazyFragment() { override fun onFragmentFirstVisible() { mViewModel = viewModelProvider() - mViewModel.homeOnlyWithoutOtherTab = arguments?.getInt(EntranceUtils.KEY_TAB_COUNT) == 1 + mViewModel.homeOnlyWithoutOtherTab = arguments?.getInt(EntranceConsts.KEY_TAB_COUNT) == 1 super.onFragmentFirstVisible() diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt index f492305adc..17dc67595e 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt @@ -6,12 +6,13 @@ import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable -import com.gh.common.runOnIoThread +import com.gh.gamecenter.core.runOnIoThread import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.AboutActivity import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R @@ -19,6 +20,8 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder import com.gh.gamecenter.baselist.DiffUtilAdapter import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.* import com.gh.gamecenter.entity.AmwayCommentEntity import com.gh.gamecenter.eventbus.EBDownloadStatus @@ -159,7 +162,7 @@ class HomeFragmentAdapter( .setMargins(0, marginTop, 0, 0) holder.bindSlideList(mDataList[position], mBasicExposureSource) } - is HomeRecommendItemViewHolder -> holder.bindRecommend(mDataList[position].recommends!!) + is HomeRecommendItemViewHolder -> holder.bindRecommend(mDataList[position], mBasicExposureSource) is HomeAmwayListViewHolder -> bindAmway(holder, position) is HomeGameItemViewHolder -> bindAttachGame(holder, position) is FooterViewHolder -> bindFooterView(holder) @@ -215,6 +218,7 @@ class HomeFragmentAdapter( "" ) mContext.startActivity(intent) + NewLogUtils.logHomeShareWallCardClick(amway.game.name ?: "", amway.game.id, "评论内容") } else { GameDetailActivity.startGameDetailActivity( mContext, @@ -222,7 +226,9 @@ class HomeFragmentAdapter( path, homeItemData.exposureEventList?.safelyGetInRelease(itemPosition) ) + NewLogUtils.logHomeShareWallCardClick(amway.game.name ?: "", amway.game.id, "游戏信息") } + } holder.bindAmwayList(amwayList, clickClosure) @@ -230,7 +236,7 @@ class HomeFragmentAdapter( private fun bindGameCollection(holder: HomeGameCollectionViewHolder, position: Int) { val homeItemData = mDataList[position] - val gameCollectionItemDataList = homeItemData.gameCollection?: listOf() + val gameCollectionItemDataList = homeItemData.gameCollection ?: listOf() val exposureList = arrayListOf() for (gameCollectionItemData in gameCollectionItemDataList) { @@ -239,11 +245,15 @@ class HomeFragmentAdapter( val gameCollectionSource = listOf(ExposureSource("游戏单", "${gameCollection?.title} + ${gameCollection?.id}")) val gameExposureList = arrayListOf() gameCollection?.games?.take(3)?.forEachIndexed { index, game -> - gameExposureList.add(ExposureEvent.createEventWithSourceConcat( - gameEntity = game.toGameEntity().apply { outerSequence = homeItemData.blockPosition; sequence = gameCollectionItemData.gameStartPosition + index + 1 }, + gameExposureList.add( + ExposureEvent.createEventWithSourceConcat( + gameEntity = game.toGameEntity().apply { + outerSequence = homeItemData.blockPosition; sequence = gameCollectionItemData.gameStartPosition + index + 1 + }, basicSource = mBasicExposureSource, source = gameCollectionSource - )) + ) + ) } gameCollectionItemData.exposureEventList = gameExposureList exposureList.addAll(gameExposureList) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeGameItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/HomeGameItemViewHolder.kt index 7cf2e076d4..bc23c84662 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeGameItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeGameItemViewHolder.kt @@ -3,11 +3,11 @@ package com.gh.gamecenter.home import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.view.View -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.ImageUtils -import com.gh.common.util.RandomUtils -import com.gh.common.util.goneIf -import com.gh.common.util.toColor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.RandomUtils +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.HomeGameItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeRecommendItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/HomeRecommendItemViewHolder.kt index 2e86e530b3..057e41aaf2 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeRecommendItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeRecommendItemViewHolder.kt @@ -1,16 +1,24 @@ package com.gh.gamecenter.home -import com.gh.base.BaseRecyclerViewHolder -import com.gh.base.OnViewClickListener +import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.callback.OnViewClickListener import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.databinding.HomeRecommendItemBinding +import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.HomeRecommend class HomeRecommendItemViewHolder(val binding: HomeRecommendItemBinding) : BaseRecyclerViewHolder(binding.root) { - fun bindRecommend(recommends: List) { + fun bindRecommend(itemData: HomeItemData, basicExposureSource: List) { + val recommends = itemData.recommends!! val clickListener = OnViewClickListener { _, position -> // 很奇怪这里居然抛出 IndexOutOfBoundsException 异常(有可能数据改变了,页面还没刷新导致) if (position >= recommends.size) return@OnViewClickListener @@ -34,6 +42,19 @@ class HomeRecommendItemViewHolder(val binding: HomeRecommendItemBinding) : BaseR "新首页-推荐入口", ) } + recommends.forEachIndexed { index, homeRecommend -> + val exposureEvent = ExposureEvent.createEventWithSourceConcat( + gameEntity = GameEntity().also { it.sequence = index }, + basicSource = basicExposureSource, + source = listOf() + ) + exposureEvent.payload.controlType = "推荐入口" + exposureEvent.payload.controlName = homeRecommend.name + exposureEvent.payload.controlLinkName = homeRecommend.linkText + exposureEvent.payload.controlLinkType = homeRecommend.linkType + itemData.exposureEventList?.add(exposureEvent) + } + binding.run { containerOne.goneIf(recommends.isEmpty()) containerTwo.goneIf(recommends.size < 2) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt index f317fd711a..62a7f52a9b 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -8,16 +8,21 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData import com.gh.common.filter.RegionSettingHelper -import com.gh.common.util.* +import com.gh.common.util.ApkActiveUtils +import com.gh.common.util.GameSubstituteRepositoryHelper +import com.gh.common.util.GameUtils +import com.gh.common.util.HomePluggableHelper import com.gh.download.DownloadManager import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response +import com.gh.gamecenter.core.utils.RandomUtils +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.entity.* import com.gh.gamecenter.game.rank.RankCollectionAdapter import com.gh.gamecenter.gamecollection.square.GameCollectionListItemData import com.gh.gamecenter.packagehelper.PackageRepository -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.halo.assistant.fragment.SettingsFragment @@ -25,8 +30,6 @@ import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import retrofit2.HttpException -import java.util.* -import kotlin.collections.ArrayList import kotlin.collections.set class HomeViewModel(application: Application) : AndroidViewModel(application) { @@ -274,7 +277,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { // 是否使用带特别高的带分割线的 item var useUltraHeightDivider = false - var hasDivider = false + var shouldShowDivider = false val iterator = mHomeContents.iterator() while (iterator.hasNext()) { @@ -300,7 +303,6 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { mSmartSubject = null // 防止重复插入 } - if (mHomeSlides.isNotEmpty()) { val slideItem = HomeItemData() slideItem.slides = mHomeSlides @@ -331,7 +333,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { if (i + 1 < mHomeContents.size) { val nextItem = mHomeContents[i + 1] - hasDivider = nextItem.linkType == "game" || nextItem.linkType == "video" + shouldShowDivider = nextItem.linkType == "game" || nextItem.linkType == "video" } if (linkType == "game" || linkType == "video") { @@ -439,14 +441,14 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { mSnapshotItemList.add(unknown) } - if (i != 0 && hasDivider) { + if (i != 0 && shouldShowDivider) { if (useUltraHeightDivider) { useUltraHeightDivider = false mSnapshotItemList.add(HomeItemData(lineDivider = ULTRA_HEIGHT_DIVIDER)) } else { mSnapshotItemList.add(HomeItemData(lineDivider = DEFAULT_DIVIDER)) } - hasDivider = false + shouldShowDivider = false } } itemDataList.postValue(mSnapshotItemList) diff --git a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt index ca96d5d617..6d45c4d850 100644 --- a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt +++ b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt @@ -1,7 +1,6 @@ package com.gh.gamecenter.home import android.content.Context -import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -10,19 +9,24 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource -import com.gh.common.iinterface.IOffsetable -import com.gh.common.runOnIoThread +import com.gh.gamecenter.core.iinterface.IOffsetable import com.gh.common.util.* +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.GameHeadViewHolder import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder +import com.gh.gamecenter.common.* +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemBlankDividerBinding import com.gh.gamecenter.entity.CommonCollectionContentEntity import com.gh.gamecenter.entity.GameEntity @@ -44,6 +48,7 @@ import com.gh.gamecenter.game.vertical.OnPagerSnapScrollListener import com.gh.gamecenter.subject.SubjectActivity import com.halo.assistant.fragment.game.GamePluginAdapter import com.halo.assistant.fragment.game.GamePluginViewHolder +import org.w3c.dom.Text import java.util.* // 产品没定义的数据统计会用[首页]作为默认值,不管了 bite me @@ -213,6 +218,11 @@ class LegacyHomeFragmentAdapterAssistant( } else { DirectUtils.directToLinkPage(mContext, LinkEntity(link = gameEntity.link, type = gameEntity.type), "(首页游戏)", "游戏-专题") } + NewLogUtils.logColumnCategoryHomeContentClick( + gameEntity.name ?: "", gameEntity.link ?: "", + columnCollection.name ?: "", columnCollection.id ?: "", "新首页", + "" + ) } holder.bindColumnCollection(columnCollection, clickClosure) @@ -235,6 +245,10 @@ class LegacyHomeFragmentAdapterAssistant( } else { DirectUtils.directToLinkPage(mContext, LinkEntity(link = data.link, type = data.type), "(首页游戏)", "游戏-专题") } + NewLogUtils.logColumnPictureClick( + "大图", columnCollection.name ?: "", columnCollection.id ?: "","游戏专题", + columnCollection.name ?: "", "新首页", "" + ) } } else { holder.binding.columnCollectionList.doOnScrolledSpecificDistance(distanceX = DisplayUtils.dip2px(24f), singleTimeEvent = true) { @@ -461,6 +475,10 @@ class LegacyHomeFragmentAdapterAssistant( linkEntity.text = entity.text setPageSwitchData() DirectUtils.directToLinkPage(mContext, linkEntity, "(游戏-专题:$name-大图)", "首页游戏") + NewLogUtils.logColumnPictureClick( + "大图", entity.name ?: "", entity.id, "游戏专题", + entity.name ?: "", "新首页", "" + ) } val padding = mContext.resources.getDimensionPixelSize(R.dimen.home_item_padding) @@ -532,8 +550,10 @@ class LegacyHomeFragmentAdapterAssistant( ) } else { GameDetailActivity.startGameDetailActivity( - mContext, gameEntity, - StringUtils.buildString("(游戏-专题:", subjectData.name, "-列表[", (subjectData.position).toString(), "])"), traceEvent = gameEntity.exposureEvent + mContext, + gameEntity, + StringUtils.buildString("(游戏-专题:", subjectData.name, "-列表[", (subjectData.position).toString(), "])"), + traceEvent = gameEntity.exposureEvent ) } } @@ -548,7 +568,11 @@ class LegacyHomeFragmentAdapterAssistant( holder.bindHead(column!!) holder.binding.headMore.setOnClickListener { - it as TextView + val buttonType = when (column.home) { + "change" -> "换一批" + "more" -> "更多" + else -> "全部" + } if ("change" == column.home) { MtaHelper.onEvent("游戏专题", "新首页专题点击", "内容" + item.blockPosition + "_换一批") holder.binding.headPb.visibility = View.VISIBLE @@ -566,9 +590,13 @@ class LegacyHomeFragmentAdapterAssistant( if (column.type == "column_collection") { MtaHelper.onEvent("游戏专题合集", "新首页合辑点击", "内容" + item.blockPosition + "_全部") DirectUtils.directToColumnCollection(mContext, column.id!!, -1, "(游戏-专题:" + column.name + "-全部)") + NewLogUtils.logColumnCategoryHomeButtonClick( + buttonType, column.name ?: "", column.id ?: "", "首页", "" + ) } else if (column.type == "top_game_comment") { MtaHelper.onEvent("安利墙", "进入", "首页查看全部") DirectUtils.directToAmway(mContext, null, "(游戏-专题:" + column.name + "-全部)", "") + NewLogUtils.logHomeShareWallButtonClick("右上角") } else if (column.type == "common_collection") { mContext.startActivity( CommonCollectionDetailActivity.getIntent( @@ -580,6 +608,7 @@ class LegacyHomeFragmentAdapterAssistant( ) ) NewLogUtils.logAccessToCommonCollectionDetail(column.id ?: "", column.name ?: "", "首页内容列表") + NewLogUtils.logCommonCategoryHomeButtonClick(buttonType, column.name ?: "", column.id ?: "", "新首页") } else if (column.type == "game_list_collection") { DirectUtils.directToGameCollectionSquare(mContext, "首页内容列表", column.name ?: "") } else { @@ -604,9 +633,13 @@ class LegacyHomeFragmentAdapterAssistant( ) } MtaHelper.onEvent("游戏专题", "新首页专题点击", "内容" + item.blockPosition + "_全部") + val moreLink = column.moreLink + NewLogUtils.logColumnListClickButton( + buttonType, column.name ?: "", column.id ?: "", moreLink?.type ?: "", + moreLink?.name ?: "", "新首页", "" + ) } } - NewLogUtils.logSubjectTopTabClick(it.text.toString(), column.name, column.moreLink) } } @@ -716,6 +749,10 @@ class LegacyHomeFragmentAdapterAssistant( holder.binding.root.context, item.gallery?.id ?: "", item.gallery?.name, "(游戏-专题)" ) + NewLogUtils.logColumnPictureClick( + "图集", item.gallery?.name ?: "", item.gallery?.id ?: "", "游戏专题", + item.gallery?.name ?: "", "新首页", "" + ) } } @@ -738,6 +775,15 @@ class LegacyHomeFragmentAdapterAssistant( linkEntity.text ?: "", sequence + 1 ) + NewLogUtils.logCommonCategoryHomeContentClick( + contentEntity.title, + linkEntity.type ?: "", + linkEntity.link ?: "", + linkEntity.text ?: "", + commonCollection?.name ?: "", + commonCollection?.id ?: "", + "新首页" + ) } holder.bindCommonLinkCollection( diff --git a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt index 9fdb453a6c..19dc63aa7e 100644 --- a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt +++ b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeSubjectTransformer.kt @@ -68,7 +68,7 @@ object LegacyHomeSubjectTransformer { if (subjectEntity.type == "image" || subjectEntity.type == "image_slide") return } - if (subjectEntity.type != "gallery") { + if (subjectEntity.type != "gallery" && subjectEntity.showName) { val itemDataHead = newItemInstance() itemDataHead.blockPosition = blockPosition + 1 itemDataHead.columnHead = subjectEntity @@ -79,6 +79,11 @@ object LegacyHomeSubjectTransformer { } itemList.add(itemDataHead) + } else { + // 标题隐藏的情况下移除默认添加到空白间距 + if (itemList.lastOrNull()?.blankDivider != null) { + itemList.removeLastOrNull() + } } if (subjectEntity.type == "game_vertical_slide") { diff --git a/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayAdapter.kt index 57817b396e..22a82e9b25 100644 --- a/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayAdapter.kt @@ -4,6 +4,10 @@ import android.content.Context import android.view.View import android.view.ViewGroup import com.gh.common.util.* +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.AmwayCommentEntity import com.lightgame.adapter.BaseRecyclerAdapter @@ -46,24 +50,27 @@ class HomeAmwayAdapter( sdvUserBadge.visibility = View.GONE } sdvUserBadge.setOnClickListener { - DialogUtils.showViewBadgeDialog(mContext, amway.comment.user.badge) { - MtaHelper.onEvent( - "进入徽章墙_用户记录", - "安利墙", - "${amway.comment.user.name}(${amway.comment.user.id})" - ) - MtaHelper.onEvent("徽章中心", "进入徽章中心", "安利墙") - DirectUtils.directToBadgeWall( - mContext, - amway.comment.user.id, - amway.comment.user.name, - amway.comment.user.icon - ) - } + DialogUtils.showViewBadgeDialog(mContext, amway.comment.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent( + "进入徽章墙_用户记录", + "安利墙", + "${amway.comment.user.name}(${amway.comment.user.id})" + ) + MtaHelper.onEvent("徽章中心", "进入徽章中心", "安利墙") + DirectUtils.directToBadgeWall( + mContext, + amway.comment.user.id, + amway.comment.user.name, + amway.comment.user.icon + ) + } + }) } all.setOnClickListener { DirectUtils.directToAmway(mContext, null, "(游戏-专题:安利墙-全部)", "") + NewLogUtils.logHomeShareWallButtonClick("卡片末尾") } amwayBackground.setOnClickListener { itemClick.invoke(it, position, amway) diff --git a/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayItemViewHolder.kt index a598433b39..65dedc744c 100644 --- a/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayItemViewHolder.kt @@ -2,12 +2,12 @@ package com.gh.gamecenter.home.amway import android.content.Context import android.view.View -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.databind.BindingAdapters -import com.gh.common.util.ImageUtils -import com.gh.common.util.TextHelper -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.common.view.AsyncCell import com.gh.gamecenter.R import com.gh.gamecenter.databinding.HomeAmwayItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayListViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayListViewHolder.kt index 03bfb23d24..84c416cec2 100644 --- a/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayListViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/amway/HomeAmwayListViewHolder.kt @@ -2,9 +2,9 @@ package com.gh.gamecenter.home.amway import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.dip2px -import com.gh.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.FixLinearLayoutManager import com.gh.gamecenter.databinding.HomeAmwayListBinding import com.gh.gamecenter.entity.AmwayCommentEntity @@ -18,7 +18,8 @@ class HomeAmwayListViewHolder(val binding: HomeAmwayListBinding) : BaseRecyclerV return } adapter = HomeAmwayAdapter(context, amwayList, itemClick) - binding.recyclerView.layoutManager = FixLinearLayoutManager(context, RecyclerView.HORIZONTAL, false) + binding.recyclerView.layoutManager = + FixLinearLayoutManager(context, RecyclerView.HORIZONTAL, false) binding.recyclerView.adapter = adapter binding.recyclerView.onFlingListener = null binding.recyclerView.isNestedScrollingEnabled = false diff --git a/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackAnimation.kt b/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackAnimation.kt index a217858b30..353a6f053b 100644 --- a/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackAnimation.kt +++ b/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackAnimation.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.home.gamecollection import android.view.View -import com.gh.common.view.stacklayoutmanager.StackAnimation -import com.gh.common.view.stacklayoutmanager.StackLayoutManager +import com.gh.gamecenter.common.view.stacklayoutmanager.StackAnimation +import com.gh.gamecenter.common.view.stacklayoutmanager.StackLayoutManager import com.gh.gamecenter.R import kotlin.math.pow diff --git a/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackLayout.kt b/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackLayout.kt index 96841de825..c7da18bd0c 100644 --- a/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackLayout.kt +++ b/app/src/main/java/com/gh/gamecenter/home/gamecollection/GameCollectionStackLayout.kt @@ -1,9 +1,9 @@ package com.gh.gamecenter.home.gamecollection import android.view.View -import com.gh.common.util.dip2px -import com.gh.common.view.stacklayoutmanager.StackLayout -import com.gh.common.view.stacklayoutmanager.StackLayoutManager +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.stacklayoutmanager.StackLayout +import com.gh.gamecenter.common.view.stacklayoutmanager.StackLayoutManager class GameCollectionStackLayout( scrollOrientation: StackLayoutManager.ScrollOrientation, diff --git a/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionAdapter.kt index 36f706cafc..c561c58a8e 100644 --- a/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionAdapter.kt @@ -3,12 +3,18 @@ package com.gh.gamecenter.home.gamecollection import android.content.Context import android.view.View import android.view.ViewGroup -import com.gh.base.BaseActivity -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* import com.gh.common.view.AsyncCell import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.HomeGameCollectionCardItemBinding import com.gh.gamecenter.gamecollection.detail.GameCollectionDetailActivity import com.gh.gamecenter.gamecollection.square.GameCollectionListItemData diff --git a/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionViewHolder.kt index 828a77526f..cb58f2aacf 100644 --- a/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/gamecollection/HomeGameCollectionViewHolder.kt @@ -1,44 +1,97 @@ package com.gh.gamecenter.home.gamecollection +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.view.MotionEvent import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.DisplayUtils -import com.gh.common.util.dip2px -import com.gh.common.view.stacklayoutmanager.StackLayoutManager +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.stacklayoutmanager.StackLayoutManager import com.gh.gamecenter.databinding.HomeGameCollectionItemBinding import com.gh.gamecenter.gamecollection.square.GameCollectionListItemData +import java.lang.ref.WeakReference class HomeGameCollectionViewHolder(val binding: HomeGameCollectionItemBinding) : BaseRecyclerViewHolder(binding.root) { + + private var mAdapter: HomeGameCollectionAdapter? = null + private var mLayoutManager: StackLayoutManager? = null + private val mLooperHandle = LooperHandle(this) + private val mSlideLooperKey = 222 + fun bindGameCollectionList(gameCollectionItemDataList: List, entrance: String) { if (binding.recyclerView.adapter is HomeGameCollectionAdapter) { return } - val adapter = HomeGameCollectionAdapter(binding.root.context, entrance) - val manager = StackLayoutManager( + mAdapter = HomeGameCollectionAdapter(binding.root.context, entrance) + mLayoutManager = StackLayoutManager( StackLayoutManager.ScrollOrientation.RIGHT_TO_LEFT, 3, GameCollectionStackAnimation::class.java, GameCollectionStackLayout::class.java ).apply { setPagerFlingVelocity(DisplayUtils.getScreenWidth() / 2) } - - binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { - override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { - super.onScrollStateChanged(recyclerView, newState) - if (newState == RecyclerView.SCROLL_STATE_IDLE) { - binding.recyclerView.post { - binding.recyclerView.suppressLayout(false) + mLayoutManager?.setItemOffset(4F.dip2px()) + binding.recyclerView.run { + layoutManager = mLayoutManager + adapter = mAdapter + isNestedScrollingEnabled = false + addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + super.onScrollStateChanged(recyclerView, newState) + if (newState == RecyclerView.SCROLL_STATE_IDLE) { + binding.recyclerView.post { + binding.recyclerView.suppressLayout(false) + } + } else if (newState == RecyclerView.SCROLL_STATE_SETTLING) { + binding.recyclerView.suppressLayout(true) } - } else if (newState == RecyclerView.SCROLL_STATE_SETTLING) { - binding.recyclerView.suppressLayout(true) } - } - }) - manager.setItemOffset(4F.dip2px()) - binding.recyclerView.layoutManager = manager - binding.recyclerView.adapter = adapter - binding.recyclerView.isNestedScrollingEnabled = false + }) + addOnItemTouchListener(object : RecyclerView.SimpleOnItemTouchListener() { + override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { + val isStop = e.action == MotionEvent.ACTION_DOWN || e.action == MotionEvent.ACTION_MOVE + if (isStop) stopAutoPlay() else startAutoPlay() + return false + } + }) + } + mAdapter?.setGameCollectionList(gameCollectionItemDataList) + startAutoPlay() + } - adapter.setGameCollectionList(gameCollectionItemDataList) + private fun scrollToNextPage() { + mLayoutManager?.run { + binding.recyclerView.smoothScrollToPosition(getFirstVisibleItemPosition() + 1) + } + } + + private fun startAutoPlay() { + if (mAdapter?.itemCount ?: 0 <= 1) return + stopAutoPlay() + mLooperHandle.sendEmptyMessageDelayed(mSlideLooperKey, HOME_GAME_COLLECTION_LOOP_TIME) + } + + private fun stopAutoPlay() { + mLooperHandle.removeMessages(mSlideLooperKey) + } + + companion object { + const val HOME_GAME_COLLECTION_LOOP_TIME = 5000L + } + + class LooperHandle(viewHolder: HomeGameCollectionViewHolder): Handler( + Looper.getMainLooper()) { + private val mWeakReference: WeakReference = WeakReference(viewHolder) + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + val viewHolder = mWeakReference.get() + if (viewHolder != null && msg.what == viewHolder.mSlideLooperKey) { + viewHolder.scrollToNextPage() + viewHolder.startAutoPlay() + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipActivity.kt b/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipActivity.kt index 64b9aeea72..1000f1a127 100644 --- a/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipActivity.kt @@ -3,8 +3,8 @@ package com.gh.gamecenter.home.skip import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.R import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipAdapter.kt index 70549dc43c..d402f7a568 100644 --- a/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipAdapter.kt @@ -4,12 +4,15 @@ import android.content.Context import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.databinding.GameItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.game.GameItemViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipFragment.kt b/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipFragment.kt index 9372a71836..022095d59f 100644 --- a/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/home/skip/PackageSkipFragment.kt @@ -5,11 +5,11 @@ import android.view.LayoutInflater import android.view.View import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.fragment.BaseFragment +import com.gh.gamecenter.common.base.fragment.BaseFragment import com.gh.common.util.LogUtils -import com.gh.common.util.toColor import com.gh.download.DownloadManager import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.FragmentPackageSkipBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBDownloadStatus diff --git a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt index dbc8798190..bbc49e1612 100644 --- a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListAdapter.kt @@ -10,11 +10,14 @@ import androidx.recyclerview.widget.RecyclerView import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource -import com.gh.common.runOnIoThread +import com.gh.gamecenter.core.runOnIoThread import com.gh.common.util.* import com.gh.gamecenter.AboutActivity import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.databinding.HomeSlideListItemBinding import com.gh.gamecenter.entity.HomeSlide import com.gh.gamecenter.home.HomeItemData @@ -22,12 +25,14 @@ import com.lightgame.adapter.BaseRecyclerAdapter import com.lightgame.download.DownloadEntity import java.lang.ref.WeakReference -class HomeSlideListAdapter(context: Context, - var itemData: HomeItemData, - val layoutManager: LinearLayoutManager, - val snapHelper: PagerSnapHelper, - val recyclerView: RecyclerView, - val basicExposureSource: List) : BaseRecyclerAdapter(context) { +class HomeSlideListAdapter( + context: Context, + var itemData: HomeItemData, + val layoutManager: LinearLayoutManager, + val snapHelper: PagerSnapHelper, + val recyclerView: RecyclerView, + val basicExposureSource: List +) : BaseRecyclerAdapter(context) { private var mSlideList: List = itemData.slides ?: arrayListOf() private val mLooperHandle = LooperHandle(this) @@ -68,6 +73,17 @@ class HomeSlideListAdapter(context: Context, ) itemData.exposureEventList?.add(exposureEvent!!) } + } else { + exposureEvent = ExposureEvent.createEventWithSourceConcat( + gameEntity = homeSlide.linkGame?.apply { sequence = actualPosition }, + basicSource = basicExposureSource, + source = listOf() + ) + exposureEvent?.payload?.controlType = "轮播图" + exposureEvent?.payload?.controlName = homeSlide.title + exposureEvent?.payload?.controlLinkName = homeSlide.linkText + exposureEvent?.payload?.controlLinkType = homeSlide.linkType + itemData.exposureEventList?.add(exposureEvent!!) } holder.bindSlideListItem(homeSlide) @@ -86,11 +102,14 @@ class HomeSlideListAdapter(context: Context, ) DataLogUtils.uploadLunbotuLog(mContext, homeSlide.linkType, homeSlide.linkText, homeSlide.title, actualPositionString, "新首页") - DirectUtils.directToLinkPage(mContext, homeSlide.transformLinkEntity(), "", "新首页-轮播图[${homeSlide.linkText}<-||->${homeSlide.title}=${homeSlide.linkType}=$actualPositionString]", - exposureEvent, - unknownCallback = { - mContext.startActivity(AboutActivity.getIntent(mContext, true)) - }) + DirectUtils.directToLinkPage(mContext, + homeSlide.transformLinkEntity(), + "", + "新首页-轮播图[${homeSlide.linkText}<-||->${homeSlide.title}=${homeSlide.linkType}=$actualPositionString]", + exposureEvent, + unknownCallback = { + mContext.startActivity(AboutActivity.getIntent(mContext, true)) + }) } holder.binding.includeGame.root.setOnClickListener { @@ -98,7 +117,12 @@ class HomeSlideListAdapter(context: Context, val linkGame = homeSlide.linkGame DataLogUtils.uploadLunbotuLog(mContext, homeSlide.linkType, homeSlide.linkText, homeSlide.title, actualPositionString, "新首页") if (linkGame != null) { - GameDetailActivity.startGameDetailActivity(mContext, linkGame.id, "(新首页-轮播图[${homeSlide.linkText}<-||->${homeSlide.title}=${homeSlide.linkType}=$actualPositionString])", exposureEvent) + GameDetailActivity.startGameDetailActivity( + mContext, + linkGame.id, + "(新首页-轮播图[${homeSlide.linkText}<-||->${homeSlide.title}=${homeSlide.linkType}=$actualPositionString])", + exposureEvent + ) } } BindingAdapters.setGameTags(holder.binding.includeGame.gameTags, homeSlide.linkGame?.tagStyle, 3) diff --git a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListItemViewHolder.kt index 3e32db72b1..baa1f6ce21 100644 --- a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListItemViewHolder.kt @@ -4,9 +4,13 @@ import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.view.View import com.facebook.imagepipeline.image.ImageInfo -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.* +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.RandomUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.HomeSlideListItemBinding import com.gh.gamecenter.entity.HomeSlide import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt index 5d23fba829..77a451fa36 100644 --- a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt @@ -8,14 +8,19 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.exposure.ExposureSource import com.gh.common.util.* -import com.gh.common.view.DrawableView -import com.gh.common.view.FixLinearLayoutManager -import com.gh.common.view.ScrollEventListener -import com.gh.common.view.TouchSlopRecyclerView +import com.gh.gamecenter.common.view.DrawableView +import com.gh.gamecenter.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.view.ScrollEventListener +import com.gh.gamecenter.common.view.TouchSlopRecyclerView import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.hexStringToIntColor +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.throwExceptionInDebug +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.HomeSlideListBinding import com.gh.gamecenter.home.HomeItemData import kotlin.math.abs diff --git a/app/src/main/java/com/gh/gamecenter/home/video/AutomaticVideoView.kt b/app/src/main/java/com/gh/gamecenter/home/video/AutomaticVideoView.kt index 8924c4f48a..3413a0c867 100644 --- a/app/src/main/java/com/gh/gamecenter/home/video/AutomaticVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/home/video/AutomaticVideoView.kt @@ -13,14 +13,19 @@ import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.constant.Constants -import com.gh.common.runOnIoThread -import com.gh.common.runOnUiThread +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* -import com.gh.common.view.DrawableView -import com.gh.common.view.RadiusCardView +import com.gh.gamecenter.common.view.DrawableView +import com.gh.gamecenter.common.view.RadiusCardView import com.gh.download.cache.ExoCacheManager import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.countDownTimer +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.rxTimer +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.video.detail.CustomManager import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer @@ -112,7 +117,7 @@ class AutomaticVideoView @JvmOverloads constructor(context: Context, attrs: Attr params.height = 0 mask.layoutParams = params mask.alpha = 0f - mask.visibility = View.VISIBLE + mask.visibility = VISIBLE val heightAnimator = ValueAnimator.ofFloat(0f, offset).apply { addUpdateListener { params = mask.layoutParams as ConstraintLayout.LayoutParams diff --git a/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt b/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt index e383a00c28..b1e1ab475b 100644 --- a/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt +++ b/app/src/main/java/com/gh/gamecenter/home/video/ScrollCalculatorHelper.kt @@ -5,11 +5,11 @@ import android.os.Handler import android.os.Looper import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.Constants -import com.gh.common.util.MD5Utils -import com.gh.common.util.NetworkUtils -import com.gh.common.util.SPUtils -import com.gh.common.util.safelyGetInRelease +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.common.utils.NetworkUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.safelyGetInRelease import com.gh.gamecenter.entity.SimpleVideoEntity import com.gh.gamecenter.home.HomeItemData import com.gh.gamecenter.setting.VideoSettingFragment diff --git a/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java index 965520fdf9..092ea6bb1a 100644 --- a/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java @@ -10,17 +10,17 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import com.gh.base.OnListClickListener; -import com.gh.base.OnRequestCallBackListener; -import com.gh.common.constant.ItemViewType; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.constant.ItemViewType; import com.gh.common.util.ConcernContentUtils; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.common.util.LibaoUtils; import com.gh.common.util.NewsUtils; -import com.gh.common.util.NumberUtils; +import com.gh.gamecenter.core.utils.NumberUtils; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.StringUtils; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsDigestViewHolder; @@ -34,9 +34,9 @@ import com.gh.gamecenter.entity.ViewsEntity; import com.gh.gamecenter.manager.CommentManager; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.manager.VisitManager; -import com.gh.gamecenter.retrofit.JSONObjectResponse; -import com.gh.gamecenter.retrofit.ObservableUtil; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.ObservableUtil; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java b/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java index d4b72300f3..076989daac 100644 --- a/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java +++ b/app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java @@ -17,17 +17,16 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.gh.base.OnRequestCallBackListener; -import com.gh.base.ToolBarActivity; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.base.ToolBarActivity; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.common.view.Concern_LinearLayout; -import com.gh.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.MessageDetailActivity; @@ -47,8 +46,8 @@ import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.normal.NormalFragment; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.fragment.myconcern.MyConcernRecommendAdapter; @@ -65,7 +64,7 @@ import io.reactivex.schedulers.Schedulers; * Created by khy on 2016/8/15. * 资讯-关注界面 */ -public class ConcernFragment extends NormalFragment implements SwipeRefreshLayout.OnRefreshListener { +public class ConcernFragment extends ToolbarFragment implements SwipeRefreshLayout.OnRefreshListener { private FragmentInfoConcernBinding mBinding; diff --git a/app/src/main/java/com/gh/gamecenter/info/InfoAdapter.java b/app/src/main/java/com/gh/gamecenter/info/InfoAdapter.java index d2c97ccd1f..c19d5644c2 100644 --- a/app/src/main/java/com/gh/gamecenter/info/InfoAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/info/InfoAdapter.java @@ -10,12 +10,12 @@ import android.widget.LinearLayout; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.common.util.NewsUtils; -import com.gh.common.util.NumberUtils; +import com.gh.gamecenter.core.utils.NumberUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage1ViewHolder; @@ -27,7 +27,7 @@ import com.gh.gamecenter.databinding.NewsImage2ItemBinding; import com.gh.gamecenter.databinding.NewsImage3ItemBinding; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.manager.VisitManager; -import com.gh.gamecenter.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.RetrofitManager; import org.json.JSONException; diff --git a/app/src/main/java/com/gh/gamecenter/info/InfoFragment.java b/app/src/main/java/com/gh/gamecenter/info/InfoFragment.java index 1fcf2db542..756dfbefcf 100644 --- a/app/src/main/java/com/gh/gamecenter/info/InfoFragment.java +++ b/app/src/main/java/com/gh/gamecenter/info/InfoFragment.java @@ -13,8 +13,8 @@ import android.widget.FrameLayout; import com.ethanhua.skeleton.Skeleton; import com.ethanhua.skeleton.ViewSkeletonScreen; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.StringUtils; -import com.gh.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/info/InfoViewModel.java b/app/src/main/java/com/gh/gamecenter/info/InfoViewModel.java index f89e839763..3000c62401 100644 --- a/app/src/main/java/com/gh/gamecenter/info/InfoViewModel.java +++ b/app/src/main/java/com/gh/gamecenter/info/InfoViewModel.java @@ -5,7 +5,7 @@ import androidx.lifecycle.LiveData; import androidx.annotation.NonNull; import com.gh.common.constant.Config; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.baselist.ListViewModel; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.ViewsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java index c8051638cb..271cfe2419 100644 --- a/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java @@ -4,8 +4,8 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; -import com.gh.base.fragment.BaseFragment_TabLayout; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; diff --git a/app/src/main/java/com/gh/gamecenter/info/NewsViewsRepository.java b/app/src/main/java/com/gh/gamecenter/info/NewsViewsRepository.java index a4e21091be..a8be2b4f0f 100644 --- a/app/src/main/java/com/gh/gamecenter/info/NewsViewsRepository.java +++ b/app/src/main/java/com/gh/gamecenter/info/NewsViewsRepository.java @@ -3,7 +3,7 @@ package com.gh.gamecenter.info; import androidx.lifecycle.LiveData; import androidx.lifecycle.MediatorLiveData; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/info/OriginalAdapter.java b/app/src/main/java/com/gh/gamecenter/info/OriginalAdapter.java index c185ad3248..7273792c7f 100644 --- a/app/src/main/java/com/gh/gamecenter/info/OriginalAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/info/OriginalAdapter.java @@ -9,12 +9,12 @@ import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.common.util.NewsUtils; -import com.gh.common.util.NumberUtils; +import com.gh.gamecenter.core.utils.NumberUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage1ViewHolder; @@ -26,7 +26,7 @@ import com.gh.gamecenter.databinding.NewsImage2ItemBinding; import com.gh.gamecenter.databinding.NewsImage3ItemBinding; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.manager.VisitManager; -import com.gh.gamecenter.retrofit.JSONObjectResponse; +import com.gh.gamecenter.common.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.RetrofitManager; import org.json.JSONException; diff --git a/app/src/main/java/com/gh/gamecenter/info/OriginalFragment.java b/app/src/main/java/com/gh/gamecenter/info/OriginalFragment.java index 24e3d68790..fb954dfcfb 100644 --- a/app/src/main/java/com/gh/gamecenter/info/OriginalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/info/OriginalFragment.java @@ -10,8 +10,8 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.StringUtils; -import com.gh.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/info/OriginalViewModel.java b/app/src/main/java/com/gh/gamecenter/info/OriginalViewModel.java index d1750761c6..2a5fcf622b 100644 --- a/app/src/main/java/com/gh/gamecenter/info/OriginalViewModel.java +++ b/app/src/main/java/com/gh/gamecenter/info/OriginalViewModel.java @@ -5,7 +5,7 @@ import androidx.lifecycle.LiveData; import androidx.annotation.NonNull; import com.gh.common.constant.Config; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.baselist.ListViewModel; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.ViewsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/info/StrategyAdapter.java b/app/src/main/java/com/gh/gamecenter/info/StrategyAdapter.java index 2ceb32e726..b0673de621 100644 --- a/app/src/main/java/com/gh/gamecenter/info/StrategyAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/info/StrategyAdapter.java @@ -9,18 +9,18 @@ import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; -import com.gh.base.OnListClickListener; -import com.gh.base.OnRequestCallBackListener; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; import com.gh.common.constant.Config; import com.gh.common.util.NewsUtils; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.NewsFooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; import com.gh.gamecenter.databinding.NewsFooterItemBinding; import com.gh.gamecenter.databinding.NewsTextItemBinding; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/info/StrategyDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/info/StrategyDialogAdapter.java index e71a949d2c..786d1a4dc8 100644 --- a/app/src/main/java/com/gh/gamecenter/info/StrategyDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/info/StrategyDialogAdapter.java @@ -3,10 +3,8 @@ package com.gh.gamecenter.info; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; - +import com.gh.gamecenter.core.utils.DisplayUtils; import androidx.core.content.ContextCompat; - -import com.gh.common.util.DisplayUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.StrategyDialogViewHolder; import com.gh.gamecenter.databinding.DialogStrategyItemBinding; diff --git a/app/src/main/java/com/gh/gamecenter/info/StrategyFragment.java b/app/src/main/java/com/gh/gamecenter/info/StrategyFragment.java index 8eb1b7e9dd..4a6d68b316 100644 --- a/app/src/main/java/com/gh/gamecenter/info/StrategyFragment.java +++ b/app/src/main/java/com/gh/gamecenter/info/StrategyFragment.java @@ -14,13 +14,13 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.gh.base.fragment.BaseFragment; +import com.gh.gamecenter.common.base.fragment.BaseFragment; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.common.util.NewsUtils; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.GameNewsActivity; import com.gh.gamecenter.NewsDetailActivity; @@ -35,7 +35,7 @@ import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.personal.PersonalFragment; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.jakewharton.rxbinding2.view.RxView; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index e67303da95..29961d0800 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -12,11 +12,11 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.TextHelper; import com.gh.gamecenter.R; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.TextHelper; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.databinding.FragmentLibao1Binding; import com.gh.gamecenter.eventbus.EBReuse; import com.lightgame.utils.Util_System_Keyboard; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java index 19bb0a4787..9c10a7fd30 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java @@ -13,13 +13,13 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.gh.base.fragment.BaseFragment; import com.gh.common.util.CheckLoginUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.databinding.FragmentLibao2Binding; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.eventbus.EBConcernChanged; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java index 775cf12649..b6cfce3a6e 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.libao; -import static com.gh.common.constant.Constants.LIST_FOOTER_ITEM; -import static com.gh.common.constant.Constants.LIST_HEAD_ITEM; +import static com.gh.gamecenter.common.constant.Constants.LIST_FOOTER_ITEM; +import static com.gh.gamecenter.common.constant.Constants.LIST_HEAD_ITEM; import android.content.Context; import android.text.TextUtils; @@ -12,20 +12,20 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import com.gh.base.OnListClickListener; -import com.gh.base.OnRequestCallBackListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.LibaoUtils; import com.gh.common.util.PlatformUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.databinding.LibaoItemBinding; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java index e8d26c3426..85b46ca449 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java @@ -12,11 +12,11 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.gh.base.fragment.BaseFragment; import com.gh.common.util.CheckLoginUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.R; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.databinding.FragmentLibao3Binding; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java index 726489459d..a464f4bf36 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java @@ -12,14 +12,13 @@ import android.widget.LinearLayout; import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; - -import com.gh.base.OnRequestCallBackListener; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.ExtensionsKt; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.common.util.LibaoUtils; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.TimeUtils; -import com.gh.common.view.BugFixedPopupWindow; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.TimeUtils; +import com.gh.gamecenter.common.view.BugFixedPopupWindow; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; @@ -30,7 +29,7 @@ import com.gh.gamecenter.entity.LibaoStatusEntity; import com.gh.gamecenter.entity.MeEntity; import com.gh.gamecenter.entity.UserDataLibaoEntity; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java index 8105f410e1..f4fdd76d06 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java @@ -16,11 +16,11 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import com.gh.base.fragment.BaseFragment_TabLayout; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.MtaHelper; import com.gh.gamecenter.ConcernActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.databinding.FragmentLibaoWrapperBinding; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -86,7 +86,7 @@ public class LibaoFragment extends BaseFragment_TabLayout { @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - DisplayUtils.setStatusBarColor(requireActivity(), mNightMode ? R.color.black : R.color.white); + ExtensionsKt.updateStatusBarColor(requireActivity(), R.color.black, R.color.white); setNavigationTitle(R.string.title_libao); initMenu(R.menu.menu_manage); mManageMenu = getItemMenu(R.id.layout_menu_manage); @@ -152,7 +152,7 @@ public class LibaoFragment extends BaseFragment_TabLayout { super.onNightModeChange(); mBinding.fragmentTabRl.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.background_white)); mBinding.divider.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.divider)); - DisplayUtils.setStatusBarColor(requireActivity(), mNightMode ? R.color.black : R.color.white); + ExtensionsKt.updateStatusBarColor(requireActivity(), R.color.black, R.color.white); for (int i = 0; i < mTabLayout.getTabCount(); i++) { TabLayout.Tab tab = mTabLayout.getTabAt(i); if (tab == null) continue; diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java index eb7661fb20..f5972e6abc 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java @@ -10,20 +10,20 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import com.gh.base.OnRequestCallBackListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.LibaoUtils; -import com.gh.common.util.UrlFilterUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.databinding.LibaoItemBinding; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.entity.MeEntity; import com.gh.gamecenter.entity.UserDataLibaoEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt index d7086a5d67..0c08f3d64b 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt @@ -4,17 +4,20 @@ import android.content.Context import android.text.TextUtils import android.view.View import android.view.ViewGroup -import com.gh.base.OnListClickListener -import com.gh.base.OnRequestCallBackListener -import com.gh.common.constant.ItemViewType -import com.gh.common.util.* +import com.gh.gamecenter.common.callback.OnListClickListener +import com.gh.gamecenter.common.callback.OnRequestCallBackListener +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.common.util.LibaoUtils +import com.gh.common.util.PlatformUtils +import com.gh.gamecenter.core.utils.StringUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder +import com.gh.gamecenter.common.utils.setRootBackgroundColor import com.gh.gamecenter.databinding.LibaoItemBinding import com.gh.gamecenter.entity.LibaoEntity import com.gh.gamecenter.entity.LibaoStatusEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.adapter.BaseRecyclerAdapter import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java index 7145c1f5c7..200dd14802 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java @@ -16,9 +16,9 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.ethanhua.skeleton.Skeleton; import com.ethanhua.skeleton.ViewSkeletonScreen; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.view.CustomDividerItemDecoration; -import com.gh.common.view.SwipeLayout; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.common.view.SwipeLayout; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.databinding.FragmentLibaoNewBinding; diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt index 2d5ea7346b..c589fbf38c 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt @@ -3,17 +3,21 @@ package com.gh.gamecenter.libao import android.text.TextUtils import android.view.View import android.view.ViewGroup -import com.gh.base.OnListClickListener -import com.gh.base.OnRequestCallBackListener -import com.gh.common.constant.ItemViewType -import com.gh.common.util.* +import com.gh.gamecenter.common.callback.OnListClickListener +import com.gh.gamecenter.common.callback.OnRequestCallBackListener +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.common.util.LibaoUtils +import com.gh.common.util.PlatformUtils +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder +import com.gh.gamecenter.common.utils.setRootBackgroundColor import com.gh.gamecenter.databinding.LibaoItemBinding import com.gh.gamecenter.entity.LibaoEntity import com.gh.gamecenter.entity.LibaoStatusEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.adapter.BaseRecyclerAdapter import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java index 99374c65ee..3176110e76 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java @@ -12,11 +12,11 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.LibaoDetailActivity; import com.gh.gamecenter.R; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.databinding.FragmentLibaoSerachBinding; import com.gh.gamecenter.entity.LibaoEntity; import com.gh.gamecenter.eventbus.EBReuse; diff --git a/app/src/main/java/com/gh/gamecenter/manager/CommentManager.java b/app/src/main/java/com/gh/gamecenter/manager/CommentManager.java index bdef6ddb33..d90f5f7d60 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/CommentManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/CommentManager.java @@ -3,10 +3,10 @@ package com.gh.gamecenter.manager; import android.content.Context; import com.gh.common.constant.Config; -import com.gh.common.util.StringUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.gamecenter.retrofit.ObservableUtil; -import com.gh.gamecenter.retrofit.OkHttpCache; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.common.utils.TimestampUtils; +import com.gh.gamecenter.common.retrofit.ObservableUtil; +import com.gh.gamecenter.common.retrofit.OkHttpCache; import org.json.JSONArray; import org.json.JSONException; diff --git a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java index dad018f8d1..d9fef20e7c 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java @@ -2,10 +2,10 @@ package com.gh.gamecenter.manager; import android.content.Context; -import com.gh.common.AppExecutor; -import com.gh.common.exposure.meta.MetaUtil; -import com.gh.common.loghub.LoghubUtils; -import com.gh.common.util.Installation; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.loghub.LoghubUtils; +import com.gh.gamecenter.common.utils.Installation; import com.gh.common.util.LogUtils; import com.gh.common.util.PackageUtils; import com.gh.gamecenter.db.DataCollectionDao; diff --git a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java index 344a9de19a..d0ed701545 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/UpdateManager.java @@ -19,33 +19,33 @@ import android.widget.TextView; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.app.NotificationManagerCompat; -import com.gh.base.CurrentActivityHolder; -import com.gh.common.AppExecutor; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.core.utils.CurrentActivityHolder; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.exposure.ExposureEvent; import com.gh.common.exposure.ExposureUtils; import com.gh.common.util.DataLogUtils; import com.gh.common.util.DialogUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EmptyCallback; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.GsonUtils; -import com.gh.common.util.MD5Utils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.NetworkUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.EmptyCallback; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.MD5Utils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.common.util.SPUtils; -import com.gh.common.util.SpanBuilder; -import com.gh.common.util.SpeedUtils; -import com.gh.common.view.CustomLinkMovementMethod; +import com.gh.gamecenter.core.utils.SPUtils; +import com.gh.gamecenter.core.utils.SpanBuilder; +import com.gh.gamecenter.core.utils.SpeedUtils; +import com.gh.gamecenter.common.view.CustomLinkMovementMethod; import com.gh.download.DownloadManager; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.AppEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; import com.lightgame.download.DataChanger; diff --git a/app/src/main/java/com/gh/gamecenter/manager/UserManager.java b/app/src/main/java/com/gh/gamecenter/manager/UserManager.java index 84e8cf3f8d..1fba64987b 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/UserManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/UserManager.java @@ -2,30 +2,26 @@ package com.gh.gamecenter.manager; import android.annotation.SuppressLint; import android.content.SharedPreferences; -import android.os.Build; import android.preference.PreferenceManager; import android.text.TextUtils; import androidx.annotation.Nullable; -import com.gh.base.BaseActivity; -import com.gh.common.PushManager; -import com.gh.common.constant.Constants; -import com.gh.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.base.BaseActivity; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; import com.gh.common.repository.ReservationRepository; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DeviceUtils; -import com.gh.common.util.EnvHelper; -import com.gh.common.util.GsonUtils; -import com.gh.common.util.SPUtils; -import com.gh.gamecenter.BuildConfig; +import com.gh.gamecenter.common.utils.DeviceUtils; +import com.gh.gamecenter.common.utils.EnvHelper; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.CommunityEntity; import com.gh.gamecenter.entity.LoginTokenEntity; import com.gh.gamecenter.entity.TokenEntity; import com.gh.gamecenter.entity.UserInfoEntity; -import com.gh.gamecenter.eventbus.EBShowDialog; -import com.gh.gamecenter.retrofit.BiResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.eventbus.EBShowDialog; +import com.gh.gamecenter.common.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.retrofit.service.ApiService; import com.gh.gamecenter.user.UserRepository; @@ -181,10 +177,6 @@ public class UserManager { refreshUserInfo(callBack); - // 更新 Access Token 后更新推送别名 - PushManager.getAndSetAlias(); -// ImManager.attachIm(); - // 更新用户预约的游戏列表 ReservationRepository.refreshReservations(); @@ -206,52 +198,12 @@ public class UserManager { } if (code == 400401) { // 自动注销 - - // 由于需要获取 userId 故放置于 logout() 前 - DataUtils.onMtaEvent(HaloApp.getInstance().getApplication(), - "登录异常_自动登录_新", - "用户ID", UserManager.getInstance().getUserId(), - "光环版本", BuildConfig.VERSION_NAME, - "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication()), - "JNFJ", MetaUtil.getBase64EncodedIMEI(), - "机型", Build.MODEL, - "厂商", Build.MANUFACTURER, - "Android版本", Build.VERSION.RELEASE - ); - UserRepository.getInstance().logout(); - - DataUtils.onMtaEvent(HaloApp.getInstance().getApplication(), "登录异常统计_自动登录" - , "错误码_RefreshToken", code + "_" + refreshToken.getValue() - , "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication()) - , "用户机型", Build.MODEL - , "设备JNFJ", MetaUtil.getBase64EncodedIMEI()); - - // 重复统计,产品就是要这种效果=.= - DataUtils.onMtaEvent(HaloApp.getInstance().getApplication(), "登录失效" - , "登录失效", Build.MODEL); - } else if (code == 400802) { - DataUtils.onMtaEvent(HaloApp.getInstance().getApplication(), - "帐号在其它设备登录", - "用户ID", UserManager.getInstance().getUserId(), - "光环版本", BuildConfig.VERSION_NAME, - "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication()), - "JNFJ", MetaUtil.getBase64EncodedIMEI(), - "机型", Build.MODEL, - "厂商", Build.MANUFACTURER, - "Android版本", Build.VERSION.RELEASE); - UserRepository.getInstance().logout(); } } catch (Exception e1) { e1.printStackTrace(); - // 记录解析异常数据 - DataUtils.onMtaEvent(HaloApp.getInstance().getApplication(), "登录异常统计_自动登录" - , "错误码_RefreshToken", code + "_" + e.code() + errorMessage + "_" + e1.toString() - , "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication()) - , "用户机型", Build.MODEL - , "设备JNFJ", MetaUtil.getBase64EncodedIMEI()); } } else { try { @@ -260,9 +212,6 @@ public class UserManager { errorMessage = e.response().errorBody().string(); errCode = "" + e.code(); } - DataUtils.onMtaEvent(HaloApp.getInstance().getApplication(), "登录异常统计_意料之外的错误" - , "错误码_RefreshToken", errCode + "_" + refreshToken.getValue() - , "错误信息", errorMessage); } catch (Exception ex) { ex.printStackTrace(); } diff --git a/app/src/main/java/com/gh/gamecenter/manager/VisitManager.java b/app/src/main/java/com/gh/gamecenter/manager/VisitManager.java index d39d3932b0..2e7c7ac421 100644 --- a/app/src/main/java/com/gh/gamecenter/manager/VisitManager.java +++ b/app/src/main/java/com/gh/gamecenter/manager/VisitManager.java @@ -3,11 +3,11 @@ package com.gh.gamecenter.manager; import android.content.Context; import com.gh.common.constant.Config; -import com.gh.common.util.StringUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.common.util.UrlFilterUtils; -import com.gh.gamecenter.retrofit.ObservableUtil; -import com.gh.gamecenter.retrofit.OkHttpCache; +import com.gh.gamecenter.core.utils.StringUtils; +import com.gh.gamecenter.common.utils.TimestampUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; +import com.gh.gamecenter.common.retrofit.ObservableUtil; +import com.gh.gamecenter.common.retrofit.OkHttpCache; import org.json.JSONArray; import org.json.JSONException; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java index 7f6b39996c..86decdae19 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragment.java @@ -8,7 +8,7 @@ import androidx.annotation.Nullable; import android.view.View; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java index 0b4e52bd01..b4318a5a75 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuFragmentAdapter.java @@ -16,17 +16,17 @@ import androidx.recyclerview.widget.RecyclerView; import com.facebook.drawee.generic.GenericDraweeHierarchy; import com.facebook.drawee.generic.RoundingParams; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.Constants; -import com.gh.common.constant.ItemViewType; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.ItemViewType; import com.gh.common.util.CommentUtils; -import com.gh.common.util.DialogHelper; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.common.util.DirectUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.ImageViewerActivity; import com.gh.gamecenter.NewsDetailActivity; @@ -318,8 +318,8 @@ public class KeFuFragmentAdapter extends ListAdapter { case "新闻": if (!TextUtils.isEmpty(data.getId())) { Intent intent2 = new Intent(mContext, NewsDetailActivity.class); - intent2.putExtra(EntranceUtils.KEY_ENTRANCE, "(消息-公告)"); - intent2.putExtra(EntranceUtils.KEY_NEWSID, data.getId()); + intent2.putExtra(EntranceConsts.KEY_ENTRANCE, "(消息-公告)"); + intent2.putExtra(EntranceConsts.KEY_NEWSID, data.getId()); mContext.startActivity(intent2); } break; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java index fa1f9e781f..fefccb557c 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.message; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.MessageKefuItemBinding; import com.gh.gamecenter.entity.MessageKeFuEntity; diff --git a/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt b/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt index ccdaea0558..f2ac7e3576 100644 --- a/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/message/KeFuViewModel.kt @@ -4,7 +4,7 @@ import android.app.Application import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.MessageKeFuEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageAdapter.java b/app/src/main/java/com/gh/gamecenter/message/MessageAdapter.java index f1cc7a564b..6f79abc5b4 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageAdapter.java @@ -7,10 +7,10 @@ import android.view.ViewGroup; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; import com.gh.common.databind.BindingAdapters; -import com.gh.common.util.DialogHelper; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; @@ -127,12 +127,6 @@ public class MessageAdapter extends ListAdapter { FooterViewHolder footerViewHolder = (FooterViewHolder) holder; footerViewHolder.initFooterViewHolder(mIsLoading, mIsNetworkError, mIsOver); footerViewHolder.initItemPadding(); - - if (mIsOver && (mEntityList == null || mEntityList.isEmpty())) { - footerViewHolder.itemView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0)); - } else { - footerViewHolder.itemView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); - } break; } } diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java index c36e778af0..77e0f634ee 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java @@ -21,16 +21,16 @@ import androidx.recyclerview.widget.RecyclerView; import com.gh.common.constant.Config; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.common.util.ErrorHelper; -import com.gh.common.util.GsonUtils; -import com.gh.common.util.KeyboardHeightObserver; -import com.gh.common.util.KeyboardHeightProvider; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.KeyboardHeightObserver; +import com.gh.gamecenter.core.utils.KeyboardHeightProvider; import com.gh.common.util.PostCommentUtils; -import com.gh.common.util.TextHelper; -import com.gh.common.util.TimestampUtils; -import com.gh.common.util.UrlFilterUtils; +import com.gh.gamecenter.common.utils.TextHelper; +import com.gh.gamecenter.common.utils.TimestampUtils; +import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.MessageDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.MessageDetailAdapter; @@ -44,11 +44,10 @@ import com.gh.gamecenter.entity.ViewsEntity; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.CommentManager; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.normal.NormalFragment; -import com.gh.gamecenter.retrofit.OkHttpCache; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.retrofit.OkHttpCache; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; -import com.google.gson.Gson; import com.halo.assistant.HaloApp; import com.lightgame.listeners.OnBackPressedListener; import com.lightgame.utils.Util_System_Keyboard; @@ -70,7 +69,7 @@ import retrofit2.HttpException; * Created by CsHeng on 18/12/2017. * 消息详情界面--评论详情--对话详情 */ -public class MessageDetailFragment extends NormalFragment implements OnCommentCallBackListener, OnBackPressedListener, KeyboardHeightObserver { +public class MessageDetailFragment extends ToolbarFragment implements OnCommentCallBackListener, OnBackPressedListener, KeyboardHeightObserver { public static final int REQUEST_UPDATE_COMMENT = 9; // 刷新文章web页面评论数 @@ -139,7 +138,7 @@ public class MessageDetailFragment extends NormalFragment implements OnCommentCa mConcernEntity = (ConcernEntity) HaloApp.get(ConcernEntity.TAG, true); mCommentEntity = args.getParcelable(CommentEntity.TAG); - newsId = args.getString(EntranceUtils.KEY_NEWSID); + newsId = args.getString(EntranceConsts.KEY_NEWSID); commentNum = args.getInt("commentNum", -1); //复用问题 mConcernEntity对应的文章有可能和跳转之前的文章不一致 @@ -205,7 +204,7 @@ public class MessageDetailFragment extends NormalFragment implements OnCommentCa .getNewsCommentnum(newsId, Utils.getTime(getContext())) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new com.gh.gamecenter.retrofit.Response>() { + .subscribe(new Response>() { @Override public void onResponse(List response) { diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java index 3193aa7731..2cd3191a0d 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageFragment.java @@ -4,9 +4,12 @@ import android.os.Bundle; import android.view.View; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.MessageInviteActivity; import com.gh.gamecenter.MessageKeFuActivity; import com.gh.gamecenter.MessageVoteActivity; @@ -51,6 +54,14 @@ public class MessageFragment extends ListFragment public void setMessageItem(MessageEntity messageEntity, Context context, String entrance) { mBinding.messageItem.setBackground(ContextCompat.getDrawable(mBinding.getRoot().getContext(), R.drawable.reuse_listview_item_style)); - mBinding.messageOriginal.setBackgroundColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.background)); - mBinding.messageUserName.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.text_black)); + mBinding.messageOriginal.setBackground(ContextCompat.getDrawable(mBinding.getRoot().getContext(), R.drawable.bg_shape_f8_radius_8)); + mBinding.messageUserName.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.text_title)); mBinding.messageUserMore.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.theme_font)); - mBinding.messageCommand.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.title)); - mBinding.messageTime.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.hint)); - mBinding.messageContent.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.text_black)); - mBinding.messageOriginalTitle.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.title)); + mBinding.messageCommand.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.text_title)); + mBinding.messageTime.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.text_subtitleDesc)); + mBinding.messageContent.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.text_subtitle)); + mBinding.messageOriginalTitle.setTextColor(ContextCompat.getColor(mBinding.getRoot().getContext(), R.color.text_subtitleDesc)); setClickData(messageEntity); - ImageUtils.display(mBinding.messageUserIcon, messageEntity.getUserEntity().getIcon()); if (messageEntity.getUserEntity().getAuth() != null) { - ImageUtils.display(mBinding.messageUserBadge, messageEntity.getUserEntity().getAuth().getIcon()); + mBinding.messageUserIcon.display(messageEntity.getUserEntity().getBorder(), messageEntity.getUserEntity().getIcon(), messageEntity.getUserEntity().getAuth().getIcon()); + } else { + mBinding.messageUserIcon.display(messageEntity.getUserEntity().getBorder(), messageEntity.getUserEntity().getIcon(), null); } - BindingAdapters.showHide(mBinding.messageUserBadge, messageEntity.getUserEntity().getAuth() != null); BindingAdapters.showHide(mBinding.messageUnread, !messageEntity.getRead()); mBinding.messageUserName.setText(messageEntity.getUserEntity().getName()); @@ -100,73 +110,71 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder case "answer": mBinding.messageCommand.setText("回答了你的问题"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(3); mBinding.messageContent.setText(messageEntity.getAnswer().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "reply": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); targetUrl = messageEntity.getArticle().getThumb(); - ImageUtils.display(mBinding.messageArticleIcon, targetUrl); - mBinding.messageArticleIcon.setVisibility(View.VISIBLE); - mBinding.messageAskIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "follow_question": mBinding.messageCommand.setText("回答了你关注的问题"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(3); mBinding.messageContent.setText(messageEntity.getAnswer().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "reply_answer_comment": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); + mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); voteMoreUser(messageEntity); break; case "answer_comment": - mBinding.messageCommand.setText("评论了你"); + mBinding.messageCommand.setText("回复了你的回答"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getComment().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); + mBinding.messageOriginalTitle.setText(messageEntity.getAnswer().getContent()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "answer_vote": @@ -175,11 +183,11 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "comment_vote": @@ -187,9 +195,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); targetUrl = messageEntity.getArticle().getThumb(); - ImageUtils.display(mBinding.messageArticleIcon, targetUrl); - mBinding.messageArticleIcon.setVisibility(View.VISIBLE); - mBinding.messageAskIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "answer_comment_vote": @@ -198,11 +209,11 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "invited": @@ -211,11 +222,11 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getQuestion().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "system_invited": @@ -224,39 +235,38 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getQuestion().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "community_article_vote": mBinding.messageCommand.setText("赞同你的帖子"); mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); - mBinding.messageArticleIcon.setVisibility(View.GONE); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); images = messageEntity.getArticle().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.display(mBinding.messageAskIcon, targetUrl); voteMoreUser(messageEntity); break; case "community_article_comment": - mBinding.messageCommand.setText("评论了你"); + mBinding.messageCommand.setText("评论了你的帖子"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getComment().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); images = messageEntity.getArticle().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "community_article_comment_vote": @@ -265,11 +275,11 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); images = messageEntity.getArticle().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "community_article_comment_reply_vote": @@ -278,26 +288,25 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); images = messageEntity.getArticle().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "reply_community_article_comment": - mBinding.messageCommand.setText("回复了你"); + mBinding.messageCommand.setText("回复了你的评论"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getArticle().getTitle()); + mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); images = messageEntity.getArticle().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); voteMoreUser(messageEntity); break; case "game_comment_vote": @@ -305,24 +314,26 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getGame().getName()); targetUrl = messageEntity.getGame().getDefaultIcon(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "update-answer": mBinding.messageCommand.setText("更新了回答"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(3); mBinding.messageContent.setText(messageEntity.getAnswer().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getQuestion().getTitle()); images = messageEntity.getAnswer().getImages(); if (images.size() > 0) { - targetUrl = images.get(0); + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.displayIcon(mBinding.messageOriginalIcon, images.get(0)); + } else { + mBinding.messageOriginalIcon.setVisibility(View.GONE); } - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); voteMoreUser(messageEntity); break; case "game_comment_reply_vote": @@ -330,45 +341,85 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getGame().getName()); targetUrl = messageEntity.getGame().getDefaultIcon(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "game_comment_reply": - mBinding.messageCommand.setText("回复了你"); + mBinding.messageCommand.setText("回复了你的评价"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getReply().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getGame().getName()); + String parentContent = messageEntity.getReply().getParentContent(); + // parentContent为空代表是回复评价中的回复,否则是回复游戏评价 + if (!TextUtils.isEmpty(parentContent)) { + mBinding.messageOriginalTitle.setText(messageEntity.getReply().getParentContent()); + } else { + String comment = messageEntity.getReply().getComment(); + if (comment != null) { + comment = comment.replaceAll("\n", ""); + Pattern p = Pattern.compile(LABEL_REGEX); + Matcher m = p.matcher(comment); + if (m.find()) { + SpannableStringBuilder contents = TextHelper.getCommentLabelSpannableStringBuilder(comment, R.color.text_subtitleDesc); + ExtensionsKt.setTextWithHighlightedTextWrappedInsideWrapper( + mBinding.messageOriginalTitle, + contents, + Constants.DEFAULT_TEXT_WRAPPER, + R.color.text_subtitleDesc, + false, + null + ); + } else { + ExtensionsKt.setTextWithHighlightedTextWrappedInsideWrapper( + mBinding.messageOriginalTitle, + comment, + Constants.DEFAULT_TEXT_WRAPPER, + R.color.text_subtitleDesc, + false, + null + ); + } + } + } targetUrl = messageEntity.getGame().getDefaultIcon(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "video_comment": - mBinding.messageCommand.setText("评论了你"); + mBinding.messageCommand.setText("评论了你的帖子"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getComment().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); targetUrl = messageEntity.getVideo().getPoster(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "video_comment_reply": - mBinding.messageCommand.setText("回复了你"); + mBinding.messageCommand.setText("回复了你的评论"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); + mBinding.messageOriginalTitle.setText(messageEntity.getDialogue().getTo().getContent()); targetUrl = messageEntity.getVideo().getPoster(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "video_comment_vote": @@ -376,9 +427,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); targetUrl = messageEntity.getVideo().getPoster(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "video_vote": @@ -386,9 +440,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); targetUrl = messageEntity.getVideo().getPoster(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "video_comment_reply_vote": @@ -396,21 +453,26 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getVideo().getTitle()); targetUrl = messageEntity.getVideo().getPoster(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "reply_activity_comment": mBinding.messageCommand.setText("回复了你"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getDialogue().getFrom().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getActivity().getTitle()); targetUrl = messageEntity.getActivity().getImageUrl(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "activity_comment_vote": @@ -418,9 +480,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getActivity().getTitle()); targetUrl = messageEntity.getActivity().getImageUrl(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "activity_comment_reply_vote": @@ -428,9 +493,12 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getActivity().getTitle()); targetUrl = messageEntity.getActivity().getImageUrl(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "game_list_vote": @@ -438,33 +506,40 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getGameList().getTitle()); targetUrl = messageEntity.getGameList().getCover(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "game_list_comment": - mBinding.messageCommand.setText("评论了你"); + mBinding.messageCommand.setText("评价了你的游戏单"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getComment().getContent()); mBinding.messageOriginalTitle.setText(messageEntity.getGameList().getTitle()); targetUrl = messageEntity.getGameList().getCover(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "game_list_comment_reply": - mBinding.messageCommand.setText("回复了你"); + mBinding.messageCommand.setText("回复了你的游戏单评价"); mBinding.messageContent.setVisibility(View.VISIBLE); - mBinding.messageContent.setMaxLines(Integer.MAX_VALUE); mBinding.messageContent.setText(messageEntity.getComment().getContent()); - mBinding.messageOriginalTitle.setText(messageEntity.getGameList().getTitle()); + mBinding.messageOriginalTitle.setText(messageEntity.getComment().getParentContent()); targetUrl = messageEntity.getGameList().getCover(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; case "game_list_comment_vote": @@ -472,28 +547,15 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder mBinding.messageContent.setVisibility(View.GONE); mBinding.messageOriginalTitle.setText(messageEntity.getGameList().getTitle()); targetUrl = messageEntity.getGameList().getCover(); - ImageUtils.displayIcon(mBinding.messageAskIcon, targetUrl); - mBinding.messageAskIcon.setVisibility(View.VISIBLE); - mBinding.messageArticleIcon.setVisibility(View.GONE); + if (TextUtils.isEmpty(targetUrl)) { + mBinding.messageOriginalIcon.setVisibility(View.GONE); + } else { + mBinding.messageOriginalIcon.setVisibility(View.VISIBLE); + ImageUtils.display(mBinding.messageOriginalIcon, targetUrl); + } voteMoreUser(messageEntity); break; } - switch (messageEntity.getType()) { - case "video_comment": - case "video_comment_reply": - case "video_comment_vote": - case "video_vote": - case "video_comment_reply_vote": - params = new RelativeLayout.LayoutParams(DisplayUtils.dip2px(34f), DisplayUtils.dip2px(34f)); - mBinding.messageAskIcon.setLayoutParams(params); - mBinding.ivVideoPlay.setVisibility(View.VISIBLE); - break; - default: - params = new RelativeLayout.LayoutParams(DisplayUtils.dip2px(51f), DisplayUtils.dip2px(34f)); - mBinding.messageAskIcon.setLayoutParams(params); - mBinding.ivVideoPlay.setVisibility(View.GONE); - break; - } mBinding.messageUserMore.setOnClickListener(v -> { MessageEntity.Fold fold = messageEntity.getFold(); @@ -564,23 +626,24 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder MtaHelper.onEvent("消息中心", outerInfo, "点击卡片"); } + Intent intent; switch (entity.getType()) { case "comment_vote": if (view.getId() == R.id.message_original) { - Intent intent = NewsDetailActivity.getIntentById(context, entity.getArticle().getId(), BaseActivity.mergeEntranceAndPath(entrance, path)); + intent = NewsDetailActivity.getIntentById(context, entity.getArticle().getId(), BaseActivity.mergeEntranceAndPath(entrance, path)); context.startActivity(intent); } else if (view.getId() == R.id.message_item) { - Intent intent = MessageDetailActivity.getIntentById(context, + intent = MessageDetailActivity.getIntentById(context, entity.getArticle().getId(), -1, false, BaseActivity.mergeEntranceAndPath(entrance, path)); context.startActivity(intent); } break; case "reply": if (view.getId() == R.id.message_original) { - Intent intent = NewsDetailActivity.getIntentById(context, entity.getArticle().getId(), BaseActivity.mergeEntranceAndPath(entrance, path)); + intent = NewsDetailActivity.getIntentById(context, entity.getArticle().getId(), BaseActivity.mergeEntranceAndPath(entrance, path)); context.startActivity(intent); } else if (view.getId() == R.id.message_item) { - Intent intent = CommentDetailActivity.getIntent(context, entity.getDialogue().getFrom().getId(), entity.getArticle()); + intent = CommentDetailActivity.getIntent(context, entity.getDialogue().getFrom().getId(), entity.getArticle()); context.startActivity(intent); } break; @@ -596,15 +659,20 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } break; case "answer": + intent = NewQuestionDetailActivity.getSpecifiedCommentIntent( + context, + entity.getQuestion().getId(), + entity.getAnswer().getId(), + entrance, + path + ); + context.startActivity(intent); + break; case "update-answer": case "follow_question": if (view.getId() == R.id.message_original) { MessageEntity.Question question = entity.getQuestion(); context.startActivity(NewQuestionDetailActivity.getCommentIntent(context, question.getId(), entity.getAnswer().getId(), entrance, path)); - - Questions questions = new Questions(); - questions.setId(question.getId()); - questions.setTitle(question.getTitle()); } else if (view.getId() == R.id.message_item) { context.startActivity(SimpleAnswerDetailActivity.getIntent(context, entity.getAnswer().getId(), entrance, path)); } @@ -617,27 +685,27 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } break; case "reply_answer_comment": - if (view.getId() == R.id.message_original) { - context.startActivity(SimpleAnswerDetailActivity.getIntent(context, entity.getAnswer().getId(), entrance, path)); - } else if (view.getId() == R.id.message_item) { - linkEntity = new LinkEntity(); - linkEntity.setType("answer"); - linkEntity.setLink(entity.getAnswer().getId()); - linkEntity.setTitle(entity.getQuestion().getTitle()); - Intent intent = CommentDetailActivity.getAnswerCommentIntent(context, - entity.getDialogue().getFrom().getId(), - entity.getAnswer().getId(), - linkEntity); - context.startActivity(intent); - } + intent = NewCommentDetailActivity.Companion.getAnswerCommentIntent( + context, + entity.getAnswer().getId(), + entity.getQuestion().getId(), + entity.getDialogue().getFrom().getId(), + entrance, + path + ); + context.startActivity(intent); break; case "answer_comment_vote": case "answer_comment": - if (view.getId() == R.id.message_original) { - context.startActivity(SimpleAnswerDetailActivity.getIntent(context, entity.getAnswer().getId(), entrance, path)); - } else if (view.getId() == R.id.message_item) { // 打开评论管理 - context.startActivity(SimpleAnswerDetailActivity.getIntent(context, entity.getAnswer().getId(), entrance, path)); - } + intent = NewCommentDetailActivity.Companion.getAnswerCommentIntent( + context, + entity.getAnswer().getId(), + entity.getQuestion().getId(), + entity.getComment().getId(), + entrance, + path + ); + context.startActivity(intent); break; case "community_article_comment_vote": community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); @@ -653,11 +721,14 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder break; case "community_article_comment": community = new CommunityEntity(entity.getArticle().getCommunityId(), ""); - if (view.getId() == R.id.message_original) { - context.startActivity(ArticleDetailActivity.getIntent(context, community, entity.getArticle().getId(), entrance, path, null)); - } else if (view.getId() == R.id.message_item) { // 打开评论管理 - context.startActivity(ArticleDetailActivity.getCommentIntent(context, community, entity.getArticle().getId(), entrance, path)); - } + intent = ArticleDetailActivity.getSpecifiedCommentIntent( + context, + community, + entity.getArticle().getId(), + entity.getComment().getId(), + entrance, + path); + context.startActivity(intent); break; case "community_article_vote": if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { @@ -666,9 +737,16 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } break; case "reply_community_article_comment": - if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - context.startActivity(CommentActivity.getCommentDetailIntent(context, entity.getDialogue().getTo().getTopId(), entity.getArticle().getCommunityId(), entity.getArticle().getId(), "", "", false, 1, entrance, path)); - } + intent = NewCommentDetailActivity.Companion.getArticleCommentIntent( + context, + entity.getDialogue().getTo().getTopId(), + entity.getArticle().getCommunityId(), + entity.getArticle().getId(), + entity.getDialogue().getFrom().getId(), + entrance, + path + ); + context.startActivity(intent); break; case "game_comment_vote": if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { @@ -677,10 +755,15 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder break; case "game_comment_reply": case "game_comment_reply_vote": - if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { - Intent intent = RatingReplyActivity.getIntent(context, entity.getGame().getId(), entity.getReply().getCommentId(), entrance, path); - context.startActivity(intent); - } + intent = RatingReplyActivity.getSpecifiedCommentIntent( + context, + entity.getGame().getId(), + entity.getReply().getCommentId(), + entity.getReply().getId(), + entrance, + path + ); + context.startActivity(intent); break; case "video_vote": if (view.getId() == R.id.message_original || view.getId() == R.id.message_item) { @@ -697,8 +780,26 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder } break; case "video_comment": - case "video_comment_vote": + intent = ForumVideoDetailActivity.Companion.getSpecifiedCommentIntent( + context, + entity.getVideo().getId(), + "", + entity.getComment().getId() + ); + context.startActivity(intent); + break; case "video_comment_reply": + intent = NewCommentDetailActivity.Companion.getVideoCommentIntent( + context, + entity.getDialogue().getTo().getId(), + entity.getVideo().getId(), + entity.getDialogue().getFrom().getId(), + entrance, + path + ); + context.startActivity(intent); + break; + case "video_comment_vote": case "video_comment_reply_vote": boolean showComment = false; @@ -727,13 +828,24 @@ public class MessageItemViewHolder extends BaseRecyclerViewHolder break; case "game_list_comment": - if (view.getId() == R.id.message_original) { - context.startActivity(GameCollectionDetailActivity.getIntent(context, entity.getGameList().getId(), false)); - } else if (view.getId() == R.id.message_item) { - context.startActivity(GameCollectionDetailActivity.getIntent(context, entity.getGameList().getId(), false, true)); - } + intent = GameCollectionDetailActivity.Companion.getSpecifiedCommentIntent( + context, + entity.getGameList().getId(), + entity.getComment().getId() + ); + context.startActivity(intent); break; case "game_list_comment_reply": + intent = NewCommentDetailActivity.Companion.getGameCollectionCommentIntent( + context, + entity.getComment().getTopId(), + entity.getGameList().getId(), + entity.getComment().getId(), + entrance, + path + ); + context.startActivity(intent); + break; case "game_list_comment_vote": if (view.getId() == R.id.message_original) { context.startActivity(GameCollectionDetailActivity.getIntent(context, entity.getGameList().getId(), false)); diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageNormalAdapter.java b/app/src/main/java/com/gh/gamecenter/message/MessageNormalAdapter.java index b36be8a4e8..5295d20d5c 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageNormalAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageNormalAdapter.java @@ -6,9 +6,9 @@ import android.view.ViewGroup; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DialogHelper; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java index 04f7a672e8..9d0574377b 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageNormalFragment.java @@ -8,8 +8,7 @@ import androidx.annotation.Nullable; import android.view.View; -import com.gh.common.util.DialogUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; @@ -38,8 +37,8 @@ public class MessageNormalFragment extends ListFragment 0) if (isRecordData) { addUnreadRecord(t1, t2, t3, t4) - SPUtils.setString(Constants.SP_PRIVACY_MINE_MD5, SPUtils.getString(Constants.SP_PRIVACY_CURRENT_MD5)) + SPUtils.setString( + Constants.SP_PRIVACY_MINE_MD5, SPUtils.getString( + Constants.SP_PRIVACY_CURRENT_MD5)) } val isSameAsLast = checkDataIsSameAsLast(t1, t2, t3, t4) val privacyIsSame = checkPrivacyIsSame() diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageViewModel.kt b/app/src/main/java/com/gh/gamecenter/message/MessageViewModel.kt index 3f1d373979..1670aad208 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/message/MessageViewModel.kt @@ -4,7 +4,7 @@ import android.app.Application import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.MessageEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java b/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java index eb7324a525..bfd61586e0 100644 --- a/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java +++ b/app/src/main/java/com/gh/gamecenter/mvvm/NetworkBoundResource.java @@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MediatorLiveData; import androidx.annotation.Nullable; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameAdapter.kt index 02a6482209..875a72edfd 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameAdapter.kt @@ -4,20 +4,20 @@ import android.content.Context import android.util.SparseArray import android.view.View import android.view.ViewGroup -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable -import com.gh.common.util.* -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.ItemFollowedGameBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.gamedetail.GameDetailFragment @@ -59,6 +59,14 @@ class MyFollowedGameAdapter(context: Context, var mViewModel: MyFollowedGameView holder.run { binding.run { gameItemIncluded.run { + root.background = R.drawable.reuse_listview_item_style.toDrawable(root.context) + gameKaifuType.setBackgroundColor(R.color.theme.toColor(root.context)) + gameName.setTextColor(R.color.text_title.toColor(root.context)) + gameDes.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + downloadSpeed.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + downloadPercentage.setTextColor(R.color.theme_font.toColor(root.context)) + recommendStarPref.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + gameIconView.displayGameIcon(gameEntity) BindingAdapters.setGameName(gameName, gameEntity, false, null) BindingAdapters.setTextSize(gameRating, if (gameEntity.commentCount > 3) 12 else 10) @@ -68,11 +76,15 @@ class MyFollowedGameAdapter(context: Context, var mViewModel: MyFollowedGameView gameRating.text = if (gameEntity.commentCount > 3) { if (gameEntity.star == 10.0F) "10" else gameEntity.star.toString() } else "" - gameRating.setTextColor(if (gameEntity.commentCount > 3) R.color.theme_font.toColor() else R.color.theme.toColor()) + gameRating.setTextColor(if (gameEntity.commentCount > 3) R.color.theme_font.toColor(mContext) else R.color.theme.toColor(mContext)) gameDes.text = gameEntity.decoratedDes recommendStar.rating = gameEntity.recommendStar.toFloat() } + root.setBackgroundColor(R.color.background_white.toColor(mContext)) moreBtn.visibility = View.GONE + listOf(descTv, trendsTv, commentsTv).forEach { + it.setTextColor(R.color.text_subtitle.toColor(mContext)) + } initServerType(gameEntity) initShortcut(gameEntity, mEntrance, path, newPath) updateConcernButton(gameEntity, mViewModel) @@ -116,21 +128,23 @@ class MyFollowedGameAdapter(context: Context, var mViewModel: MyFollowedGameView class MyFollowedGameViewHolder(var binding: ItemFollowedGameBinding) : RecyclerView.ViewHolder(binding.root) { fun updateConcernButton(gameEntity: GameEntity, viewModel: MyFollowedGameViewModel) { - if (gameEntity.isRelated) { - binding.gameItemIncluded.downloadBtn.text = "关联关注" - binding.gameItemIncluded.downloadBtn.setTextColor(ContextCompat.getColor(binding.root.context, R.color.content)) - binding.gameItemIncluded.downloadBtn.setBackgroundResource(R.drawable.button_border_gray_oval) + binding.run { + if (gameEntity.isRelated) { + gameItemIncluded.downloadBtn.text = "关联关注" + gameItemIncluded.downloadBtn.setTextColor(R.color.content.toColor(root.context)) + gameItemIncluded.downloadBtn.background = R.drawable.button_border_gray_oval.toDrawable(root.context) - binding.gameItemIncluded.downloadBtn.setOnClickListener { } - } else { - binding.gameItemIncluded.downloadBtn.text = "已关注" - binding.gameItemIncluded.downloadBtn.setTextColor(ContextCompat.getColor(binding.root.context, R.color.text_subtitleDesc)) - binding.gameItemIncluded.downloadBtn.setBackgroundResource(R.drawable.bg_shape_f5_radius_999) + gameItemIncluded.downloadBtn.setOnClickListener { } + } else { + gameItemIncluded.downloadBtn.text = "已关注" + gameItemIncluded.downloadBtn.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + gameItemIncluded.downloadBtn.background = R.drawable.bg_shape_f5_radius_999.toDrawable(root.context) - binding.gameItemIncluded.downloadBtn.setOnClickListener { - DialogHelper.showCancelDialog(binding.root.context, { - viewModel.unfollowGame(gameEntity) - }) + gameItemIncluded.downloadBtn.setOnClickListener { + DialogHelper.showCancelDialog(root.context, { + viewModel.unfollowGame(gameEntity) + }) + } } } } diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameFragment.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameFragment.kt index 7ef35d45b1..c70b6a4a23 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameFragment.kt @@ -5,14 +5,14 @@ import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.OnRequestCallBackListener +import com.gh.gamecenter.common.callback.OnRequestCallBackListener import com.gh.common.exposure.ExposureListener -import com.gh.common.util.* -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.ConcernActivity import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.FragmentFollowedGameBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBConcernChanged @@ -61,7 +61,7 @@ class MyFollowedGameFragment : ListFragment // 不需要分页 mListRv.clearOnScrollListeners() mListRv.addOnScrollListener(mExposureListener!!) - mCachedView.setBackgroundColor(R.color.white.toColor()) + mCachedView.setBackgroundColor(R.color.background_white.toColor(requireContext())) mBinding.concernRvRecommend.setHasFixedSize(true) mBinding.concernRvRecommend.layoutManager = GridLayoutManager(context, 4) @@ -84,7 +84,8 @@ class MyFollowedGameFragment : ListFragment super.onLoadDone() postDelayedRunnable({ if (mRecommendAdapter == null && context != null) { - mRecommendAdapter = MyConcernRecommendAdapter(context, object : OnRequestCallBackListener { + mRecommendAdapter = MyConcernRecommendAdapter(context, object : + OnRequestCallBackListener { override fun loadDone() { mBinding.concernRlTitle.goneIf(mViewModel.getListData().size > 3) mBinding.concernRvRecommend.goneIf(mViewModel.getListData().size > 3) @@ -157,14 +158,15 @@ class MyFollowedGameFragment : ListFragment } override fun getItemDecoration(): RecyclerView.ItemDecoration { - val itemDecoration = CustomDividerItemDecoration(requireContext(), + mItemDecoration = CustomDividerItemDecoration(requireContext(), onlyDecorateTheFirstItem = false, notDecorateTheFirstItem = false, notDecorateTheLastItem = true, notDecorateTheFirstTwoItems = false - ) - itemDecoration.setDrawable(R.drawable.divider_item_line_space_16.toDrawable()!!) - return itemDecoration + ).apply { + setDrawable(R.drawable.divider_item_line_space_16.toDrawable(requireContext())!!) + } + return mItemDecoration } @Subscribe(threadMode = ThreadMode.MAIN) @@ -219,4 +221,13 @@ class MyFollowedGameFragment : ListFragment } } + override fun onNightModeChange() { + super.onNightModeChange() + mBinding.run { + if (mRecommendAdapter?.recommendGameList?.isNotEmpty() == true) { + concernRvRecommend.recycledViewPool.clear() + mRecommendAdapter?.notifyItemRangeChanged(0, mRecommendAdapter!!.itemCount) + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameViewModel.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameViewModel.kt index 2d4adc7dd0..5185758d73 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyFollowedGameViewModel.kt @@ -43,10 +43,6 @@ class MyFollowedGameViewModel(application: Application) gameEntity.id, object : ConcernUtils.onConcernListener { override fun onSuccess() { - val kv = HashMap() - kv["状态"] = R.string.cancel_concern - DataUtils.onEvent(getApplication(), "游戏关注", gameEntity.name, kv) - DataCollectionUtils.uploadConcern(getApplication(), gameEntity.name, gameEntity.id, diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyGameActivity.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyGameActivity.kt index d9e0bb7fe3..c11280ccdf 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyGameActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyGameActivity.kt @@ -9,11 +9,15 @@ import android.view.View import android.widget.LinearLayout import androidx.fragment.app.Fragment import com.gh.base.BaseActivity_TabLayout -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants -import com.gh.common.util.* -import com.gh.common.view.BugFixedPopupWindow +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.showRegulationTestDialogIfNeeded +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.updateStatusBarColor +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.PopupMyGameGuideBinding import com.gh.gamecenter.gamecollection.publish.GameCollectionEditActivity @@ -25,6 +29,7 @@ class MyGameActivity : BaseActivity_TabLayout() { setToolbarMenu(R.menu.menu_my_game) mDividerLineView?.visibility = View.VISIBLE showGuide() + updateStatusBarColor(R.color.black, R.color.white) } override fun initFragmentList(fragments: MutableList?) { @@ -54,6 +59,13 @@ class MyGameActivity : BaseActivity_TabLayout() { return super.onMenuItemClick(item) } + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + private fun showGuide() { AppExecutor.uiExecutor.executeWithDelay({ tryCatchInRelease { diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameFragment.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameFragment.kt index 56b7517a06..8160a621a7 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameFragment.kt @@ -5,14 +5,14 @@ import android.os.Build import android.os.Bundle import androidx.recyclerview.widget.RecyclerView import com.gh.base.BaseActivity_TabLayout -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener -import com.gh.common.runOnIoThread -import com.gh.common.util.SPUtils +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.utils.SPUtils import com.gh.common.util.UsageStatsHelper -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter @@ -41,7 +41,7 @@ class MyPlayedGameFragment : PlayedGameFragment() { runOnIoThread { UsageStatsHelper.checkAndPostUsageStats() } - mCachedView.setBackgroundColor(R.color.white.toColor()) + mCachedView.setBackgroundColor(R.color.background_white.toColor(requireContext())) } override fun provideListAdapter(): ListAdapter { @@ -77,14 +77,15 @@ class MyPlayedGameFragment : PlayedGameFragment() { } fun getItemDecoration(notDecorateTheFirstItem: Boolean): RecyclerView.ItemDecoration { - val itemDecoration = CustomDividerItemDecoration( + mItemDecoration = CustomDividerItemDecoration( requireContext(), onlyDecorateTheFirstItem = false, notDecorateTheFirstItem = notDecorateTheFirstItem, notDecorateTheLastItem = true, notDecorateTheFirstTwoItems = false - ) - itemDecoration.setDrawable(R.drawable.divider_item_line_space_16.toDrawable()!!) - return itemDecoration + ).apply { + setDrawable(R.drawable.divider_item_line_space_16.toDrawable(requireContext())!!) + } + return mItemDecoration } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt index c3906eaba5..3a215513fd 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationAdapter.kt @@ -4,7 +4,7 @@ import android.content.Context import android.util.SparseArray import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource @@ -15,6 +15,11 @@ import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemFollowedGameBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBDownloadStatus @@ -55,20 +60,35 @@ class MyReservationAdapter(context: Context, var mViewModel: MyReservationViewMo val path = "预约Tab" val newPath = "预约Tab_新" - holder.binding.gameItemIncluded.run { - gameIconView.displayGameIcon(gameEntity) - BindingAdapters.setGameName(gameName, gameEntity, false, null) - BindingAdapters.setTextSize(gameRating, if (gameEntity.commentCount > 3) 12 else 10) - BindingAdapters.setGameTags(labelList, gameEntity) - gameRating.setCompoundDrawablesWithIntrinsicBounds(if (gameEntity.commentCount > 3) R.drawable.game_horizontal_rating.toDrawable() else null, null, null, null) - gameRating.setPadding(0, 0, if (gameEntity.commentCount > 3) 8F.dip2px() else 0, 0) - gameRating.text = if (gameEntity.commentCount > 3) { - if (gameEntity.star == 10.0F) "10" else gameEntity.star.toString() - } else "" - gameRating.setTextColor(if (gameEntity.commentCount > 3) R.color.theme_font.toColor() else R.color.theme.toColor()) - gameDes.text = gameEntity.decoratedDes - recommendStar.rating = gameEntity.recommendStar.toFloat() + holder.binding.run { + root.setBackgroundColor(R.color.background_white.toColor(mContext)) + listOf(descTv, trendsTv, commentsTv).forEach { + it.setTextColor(R.color.text_subtitle.toColor(mContext)) + } + gameItemIncluded.run { + root.background = R.drawable.reuse_listview_item_style.toDrawable(root.context) + gameKaifuType.setBackgroundColor(R.color.theme.toColor(root.context)) + gameName.setTextColor(R.color.text_title.toColor(root.context)) + gameDes.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + downloadSpeed.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + downloadPercentage.setTextColor(R.color.theme_font.toColor(root.context)) + recommendStarPref.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + + gameIconView.displayGameIcon(gameEntity) + BindingAdapters.setGameName(gameName, gameEntity, false, null) + BindingAdapters.setTextSize(gameRating, if (gameEntity.commentCount > 3) 12 else 10) + BindingAdapters.setGameTags(labelList, gameEntity) + gameRating.setCompoundDrawablesWithIntrinsicBounds(if (gameEntity.commentCount > 3) R.drawable.game_horizontal_rating.toDrawable(mContext) else null, null, null, null) + gameRating.setPadding(0, 0, if (gameEntity.commentCount > 3) 8F.dip2px() else 0, 0) + gameRating.text = if (gameEntity.commentCount > 3) { + if (gameEntity.star == 10.0F) "10" else gameEntity.star.toString() + } else "" + gameRating.setTextColor(if (gameEntity.commentCount > 3) R.color.theme_font.toColor(mContext) else R.color.theme.toColor(mContext)) + gameDes.text = gameEntity.decoratedDes + recommendStar.rating = gameEntity.recommendStar.toFloat() + } } + holder.initServerType(gameEntity) holder.initShortcut(gameEntity, mEntrance, path, newPath) diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationFragment.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationFragment.kt index 9841d7a749..606d4d1307 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationFragment.kt @@ -6,11 +6,11 @@ import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.gh.common.exposure.ExposureListener -import com.gh.common.util.ifLogin -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.util.viewModelProvider -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter @@ -56,7 +56,7 @@ class MyReservationFragment : ListFragment() mBinding.reuseNoneData.reuseTvNoneData.setOnClickListener(this) mListRv.addOnScrollListener(mExposureListener!!) - mListRv.setBackgroundColor(R.color.white.toColor()) + mListRv.setBackgroundColor(R.color.background_white.toColor(requireContext())) } override fun onStart() { @@ -105,14 +105,15 @@ class MyReservationFragment : ListFragment() } override fun getItemDecoration(): RecyclerView.ItemDecoration { - val itemDecoration = CustomDividerItemDecoration(requireContext(), + mItemDecoration = CustomDividerItemDecoration(requireContext(), onlyDecorateTheFirstItem = false, notDecorateTheFirstItem = false, notDecorateTheLastItem = true, notDecorateTheFirstTwoItems = false - ) - itemDecoration.setDrawable(R.drawable.divider_item_line_space_16.toDrawable()!!) - return itemDecoration + ).apply { + setDrawable(R.drawable.divider_item_line_space_16.toDrawable(requireContext())!!) + } + return mItemDecoration } @Subscribe(threadMode = ThreadMode.MAIN) @@ -137,4 +138,9 @@ class MyReservationFragment : ListFragment() mAdapter?.notifyItemAndRemoveDownload(status) } } + + override fun onNightModeChange() { + super.onNightModeChange() + mListRv.setBackgroundColor(R.color.background_white.toColor(requireContext())) + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationViewModel.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationViewModel.kt index 89a5eaa03f..3ce9d7d9c9 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyReservationViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyReservationViewModel.kt @@ -3,14 +3,14 @@ package com.gh.gamecenter.mygame import android.annotation.SuppressLint import android.app.Application import com.gh.common.repository.ReservationRepository -import com.gh.common.runOnUiThread -import com.gh.common.util.createRequestBody +import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.common.utils.createRequestBody import com.gh.download.DownloadManager import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameActivity.kt b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameActivity.kt index 548a039ea7..f190ee039c 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameActivity.kt @@ -3,17 +3,17 @@ package com.gh.gamecenter.mygame import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts -class PlayedGameActivity: NormalActivity() { +class PlayedGameActivity: ToolBarActivity() { companion object { fun getIntent(context: Context, userId: String, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_USER_ID, userId) - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_USER_ID, userId) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) return getTargetIntent(context, PlayedGameActivity::class.java, PlayedGameFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt index bef6bcfbc7..12e7f57d00 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt @@ -11,20 +11,25 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView -import com.gh.common.AppExecutor -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.* -import com.gh.common.view.BugFixedPopupWindow -import com.gh.common.view.DrawableView +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.view.BugFixedPopupWindow +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemPlayedGameBinding import com.gh.gamecenter.databinding.ItemUsageStatsBinding import com.gh.gamecenter.entity.GameEntity @@ -101,6 +106,14 @@ open class PlayedGameAdapter( holder.initDownloadButtonOffset() } holder.binding.gameItemIncluded.run { + root.background = R.drawable.reuse_listview_item_style.toDrawable(root.context) + gameKaifuType.setBackgroundColor(R.color.theme.toColor(root.context)) + gameName.setTextColor(R.color.text_title.toColor(root.context)) + gameDes.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + downloadSpeed.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + downloadPercentage.setTextColor(R.color.theme_font.toColor(root.context)) + recommendStarPref.setTextColor(R.color.text_subtitleDesc.toColor(root.context)) + gameIconView.displayGameIcon(gameEntity) BindingAdapters.setGameName(gameName, gameEntity, false, null) BindingAdapters.setTextSize(gameRating, if (gameEntity.commentCount > 3) 12 else 10) @@ -194,9 +207,15 @@ open class PlayedGameAdapter( holder.binding.switchIv.setOnClickListener { if (!UsageStatsHelper.checkForPermission()) { DialogUtils.showUsageStatsDialog( - mContext, { - UsageStatsHelper.skipToUsageStats(mContext, UsageStatsHelper.USAGE_STATUS_REQUEST_CODE) - }) {} + mContext, object : ConfirmListener { + override fun onConfirm() { + UsageStatsHelper.skipToUsageStats(mContext, UsageStatsHelper.USAGE_STATUS_REQUEST_CODE) + } + }, object : CancelListener { + override fun onCancel() { + + } + }) } } } @@ -204,7 +223,7 @@ open class PlayedGameAdapter( is FooterViewHolder -> { holder.initItemPadding() holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver) - holder.hint.setTextColor(R.color.text_subtitleDesc.toColor()) + holder.hint.setTextColor(R.color.text_subtitleDesc.toColor(mContext)) } } } diff --git a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameFragment.kt b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameFragment.kt index 02df1ad16e..75fa380046 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameFragment.kt @@ -3,8 +3,8 @@ package com.gh.gamecenter.mygame import android.os.Bundle import android.view.View import com.gh.common.exposure.ExposureListener -import com.gh.common.util.EntranceUtils -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.download.DownloadManager import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment @@ -50,7 +50,7 @@ open class PlayedGameFragment : ListFragment() } override fun provideListViewModel(): PlayedGameViewModel { - val userId = arguments?.getString(EntranceUtils.KEY_USER_ID) + val userId = arguments?.getString(EntranceConsts.KEY_USER_ID) ?: UserManager.getInstance().userId mViewModel = viewModelProvider(PlayedGameViewModel.Factory(userId)) return mViewModel diff --git a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameViewModel.kt b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameViewModel.kt index d62dbe169c..51501b5fb5 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/PlayedGameViewModel.kt @@ -6,7 +6,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index ac8522cf35..da5e6dd498 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -21,10 +21,7 @@ import android.widget.TextView; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import androidx.webkit.WebSettingsCompat; -import androidx.webkit.WebViewFeature; -import com.gh.base.OnRequestCallBackListener; import com.gh.common.DefaultUrlHandler; import com.gh.common.constant.Config; import com.gh.common.databind.BindingAdapters; @@ -33,21 +30,9 @@ import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.CommentUtils; import com.gh.common.util.ConcernUtils; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DialogHelper; import com.gh.common.util.DialogUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.MtaHelper; import com.gh.common.util.NewsUtils; -import com.gh.common.util.NightModeUtils; -import com.gh.common.util.NumberUtils; -import com.gh.common.util.RandomUtils; -import com.gh.common.util.StringUtils; -import com.gh.common.util.TextHelper; -import com.gh.common.view.DrawableView; import com.gh.common.view.RichEditor; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.ImageViewerActivity; @@ -58,7 +43,18 @@ import com.gh.gamecenter.adapter.viewholder.CommentViewHolder; import com.gh.gamecenter.adapter.viewholder.GameDetailNewsViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsDetailCommentListViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsDetailGameViewHolder; -import com.gh.gamecenter.databinding.CommentItemBinding; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NightModeUtils; +import com.gh.gamecenter.common.utils.TextHelper; +import com.gh.gamecenter.common.view.DrawableView; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.NumberUtils; +import com.gh.gamecenter.core.utils.RandomUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.databinding.GamedetailItemNewsBinding; import com.gh.gamecenter.databinding.NewsDetailCommentBinding; import com.gh.gamecenter.databinding.NewsdetailItemContentBinding; @@ -73,17 +69,15 @@ import com.gh.gamecenter.entity.MtaEvent; import com.gh.gamecenter.entity.NewsDetailEntity; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.qa.editor.OnLinkClickListener; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.fragment.SettingsFragment; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -355,10 +349,6 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { , new ConcernUtils.onConcernListener() { @Override public void onSuccess() { - Map kv = new HashMap<>(); - kv.put("状态", mContext.getString(R.string.concern)); - DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv); - DataCollectionUtils.uploadConcern(mContext, mGameEntity.getName(), mGameEntity.getId(), mContext.getString(R.string.concern)); concern.setText(R.string.cancel_concern); @@ -376,20 +366,12 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { } }, false); } else { - Map kv = new HashMap<>(); - kv.put("状态", mContext.getString(R.string.cancel_concern)); - DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv); - DialogHelper.showCancelDialog(mContext, () -> { //取消关注 ConcernUtils.INSTANCE.deleteConcernData(mContext, mGameEntity.getId() , new ConcernUtils.onConcernListener() { @Override public void onSuccess() { - Map kv1 = new HashMap<>(); - kv1.put("状态", mContext.getString(R.string.cancel_concern)); - DataUtils.onEvent(mContext, "游戏关注", mGameEntity.getName(), kv1); - DataCollectionUtils.uploadConcern(mContext, mGameEntity.getName(), mGameEntity.getId(), mContext.getString(R.string.cancel_concern)); diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java index 86825d6cd6..ad469a055d 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailCommentViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.newsdetail; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.NewsdetailItemCommentBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java index e5a8a48a6b..c7ba1ef948 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailContentViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.newsdetail; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.NewsdetailItemContentBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt index dd23d958d6..b4605856d7 100644 --- a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt +++ b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageFilterManager.kt @@ -1,9 +1,9 @@ package com.gh.gamecenter.packagehelper import android.annotation.SuppressLint -import com.gh.common.util.toRequestBody +import com.gh.gamecenter.common.utils.toRequestBody import com.gh.gamecenter.entity.PackageFilter -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.AppDatabase import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt index d96b04017a..61ca65d860 100644 --- a/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt +++ b/app/src/main/java/com/gh/gamecenter/packagehelper/PackageRepository.kt @@ -3,20 +3,23 @@ package com.gh.gamecenter.packagehelper import android.annotation.SuppressLint import android.text.TextUtils import androidx.lifecycle.MutableLiveData -import com.gh.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.common.filter.RegionSettingHelper -import com.gh.common.loghub.LoghubUtils -import com.gh.common.runOnIoThread +import com.gh.gamecenter.common.loghub.LoghubUtils import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.secondOrNull +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.PackagesManager import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.packagehelper.PackageRepository.gameInstalled import com.gh.gamecenter.packagehelper.PackageRepository.gameUpdate -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.ObservableUtil -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.ObservableUtil +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoActivity.kt b/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoActivity.kt index f2e89848aa..07622d0340 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoActivity.kt @@ -3,12 +3,11 @@ package com.gh.gamecenter.personal import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor -class DeliveryInfoActivity : NormalActivity() { +class DeliveryInfoActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoFragment.kt b/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoFragment.kt index bc8a341e77..d9e6bddad2 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoFragment.kt @@ -3,12 +3,12 @@ package com.gh.gamecenter.personal import android.os.Bundle import android.view.View import com.gh.common.util.DirectUtils -import com.gh.common.util.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentDeliveryInfoBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.toColor -class DeliveryInfoFragment: NormalFragment() { +class DeliveryInfoFragment: ToolbarFragment() { private val mBinding by lazy { FragmentDeliveryInfoBinding.inflate(layoutInflater) } diff --git a/app/src/main/java/com/gh/gamecenter/personal/NewPersonalActivity.kt b/app/src/main/java/com/gh/gamecenter/personal/NewPersonalActivity.kt index c5dda40b00..6f1052f026 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/NewPersonalActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/NewPersonalActivity.kt @@ -3,10 +3,10 @@ package com.gh.gamecenter.personal import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.core.utils.DisplayUtils -class NewPersonalActivity : NormalActivity() { +class NewPersonalActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFragment.kt b/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFragment.kt index 51890afca2..42b01971c3 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFragment.kt @@ -10,30 +10,32 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.fragment.BaseLazyFragment +import com.gh.gamecenter.common.base.fragment.BaseLazyFragment import com.gh.common.databind.BindingAdapters -import com.gh.common.notifier.Notifier.Companion.create -import com.gh.common.notifier.Notifier.Companion.hide -import com.gh.common.notifier.Notifier.Companion.shouldShowNotifier -import com.gh.common.notifier.Notifier.Companion.tagNotifierAsShowed import com.gh.common.util.* import com.gh.common.util.DirectUtils.directToBadgeDetail import com.gh.common.util.DirectUtils.directToBadgeWall import com.gh.common.util.DirectUtils.directToEnergyRecord import com.gh.common.util.DirectUtils.directToHomeActivity -import com.gh.common.util.ImageUtils.display -import com.gh.common.util.ImageUtils.displayIcon +import com.gh.gamecenter.common.utils.ImageUtils.display +import com.gh.gamecenter.common.utils.ImageUtils.displayIcon import com.gh.common.util.IntegralLogHelper.log import com.gh.common.util.LoginHelper.onQQLoginCallback import com.gh.common.util.LoginHelper.onWeiboLoginCallback -import com.gh.common.util.MtaHelper.onEvent -import com.gh.common.util.SPUtils.getLong -import com.gh.common.util.SPUtils.setLong -import com.gh.common.util.TimeUtils.getStartTimeOfDay -import com.gh.common.util.ToastUtils.showToast -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.core.utils.MtaHelper.onEvent +import com.gh.gamecenter.core.utils.SPUtils.getLong +import com.gh.gamecenter.core.utils.SPUtils.setLong +import com.gh.gamecenter.core.utils.TimeUtils.getStartTimeOfDay +import com.gh.gamecenter.core.utils.ToastUtils.showToast +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.gamecenter.MessageActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.NetworkUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.FragmentNewPersonalBinding import com.gh.gamecenter.databinding.FragmentNewPersonalStubBinding import com.gh.gamecenter.energy.EnergyCenterActivity @@ -43,23 +45,18 @@ import com.gh.gamecenter.eventbus.EBConcernChanged import com.gh.gamecenter.eventbus.EBNetworkState import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.message.MessageUnreadRepository.loadMessageUnreadData import com.gh.gamecenter.message.MessageUnreadRepository.loadMessageUnreadTotal import com.gh.gamecenter.message.MessageUnreadViewModel import com.gh.gamecenter.personalhome.UserHomeViewModel -import com.gh.gamecenter.qa.answer.detail.SimpleAnswerDetailActivity import com.gh.gamecenter.room.AppDatabase -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.user.UserViewModel import com.google.android.material.appbar.AppBarLayout import com.halo.assistant.HaloApp import com.tencent.connect.common.Constants -import okhttp3.MediaType -import okhttp3.RequestBody import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -import org.json.JSONObject import kotlin.math.abs class NewPersonalFragment : BaseLazyFragment() { @@ -279,109 +276,114 @@ class NewPersonalFragment : BaseLazyFragment() { @SuppressLint("CheckResult", "SetTextI18n") private fun observeUIRelatedChanges() { - mPersonalViewModel.appEntity.observe(this, { + mPersonalViewModel.appEntity.observe(this) { if (it.versionCode > PackageUtils.getGhVersionCode()) { notifyItemChange("设置", FunctionalMessageType.NEW_VERSION) } else { notifyItemChange("设置", null) } - }) + } mUserViewModel.loginObsUserinfo.observe( - this, - { userInfoEntity: ApiResponse? -> - if (userInfoEntity != null && userInfoEntity.data != null) { - changeLoginState(true) - } else { - changeLoginState(false) - } - }) + this + ) { userInfoEntity: ApiResponse? -> + if (userInfoEntity != null && userInfoEntity.data != null) { + changeLoginState(true) + } else { + changeLoginState(false) + } + } - mUserHomeViewModel.badges.observe(this, - { badgeEntities: List -> - mStubBinding.personalBadgeIcon.setImageURI("") - if (badgeEntities.isEmpty()) { - mStubBinding.personalBadgeTv.visibility = View.GONE - mStubBinding.personalBadgeCountTv.visibility = View.GONE - mStubBinding.personalMyBadgeIcon.visibility = View.VISIBLE - } else { - mStubBinding.personalBadgeTv.visibility = View.VISIBLE - mStubBinding.personalBadgeCountTv.visibility = View.VISIBLE - mStubBinding.personalMyBadgeIcon.visibility = View.GONE - mStubBinding.personalBadgeCountTv.text = badgeEntities.size.toString() + "" - for ((_, _, icon, name, _, wear, _, actions) in badgeEntities) { - if (wear) { - display( - mStubBinding.personalBadgeIcon, - icon - ) - mStubBinding.personalBadgeIcon.setOnClickListener { - DialogUtils.showViewBadgeDialog( - requireContext(), - Badge(name, icon, actions) - ) { - directToBadgeWall( - requireContext(), - mUserInfoEntity?.userId, - mUserInfoEntity?.name, - mUserInfoEntity?.icon - ) + mUserHomeViewModel.badges.observe(this + ) { badgeEntities: List -> + mStubBinding.personalBadgeIcon.setImageURI("") + if (badgeEntities.isEmpty()) { + mStubBinding.personalBadgeTv.visibility = View.GONE + mStubBinding.personalBadgeCountTv.visibility = View.GONE + mStubBinding.personalMyBadgeIcon.visibility = View.VISIBLE + } else { + mStubBinding.personalBadgeTv.visibility = View.VISIBLE + mStubBinding.personalBadgeCountTv.visibility = View.VISIBLE + mStubBinding.personalMyBadgeIcon.visibility = View.GONE + mStubBinding.personalBadgeCountTv.text = badgeEntities.size.toString() + "" + for ((_, _, icon, name, _, wear, _, actions) in badgeEntities) { + if (wear) { + display( + mStubBinding.personalBadgeIcon, + icon + ) + mStubBinding.personalBadgeIcon.setOnClickListener { + DialogUtils.showViewBadgeDialog( + requireContext(), + Badge(name, icon, actions), + object : ConfirmListener { + override fun onConfirm() { + directToBadgeWall( + requireContext(), + mUserInfoEntity?.userId, + mUserInfoEntity?.name, + mUserInfoEntity?.icon + ) + } } - } - break + ) } + break } } - }) + } + } mUserHomeViewModel.availableBadgeCount.observe(this, { count: Int -> mStubBinding.personalBadgeTips.visibility = if (count > 0) View.VISIBLE else View.GONE }) - mUserHomeViewModel.availableBadge.observe(this, - { badge: BadgeEntity? -> - // 徽章领取弹窗每隔7天弹出一次,所以要判断现在是否是上一次弹出的第7天或者之后 - if (badge != null && System.currentTimeMillis() >= getLong(SP_BADGE_RECORD_SEVEN_DAY)) { - // 徽章领取弹窗每隔7天弹出一次,所以本次弹出后就记录7天后的时间戳 - setLong( - SP_BADGE_RECORD_SEVEN_DAY, - getStartTimeOfDay(System.currentTimeMillis() + 86400000 * 6) - ) - DialogUtils.showReceiveBadgeDialog( - requireContext(), badge - ) { - mPersonalViewModel.applyOrReceiveBadge(badge.id, { - if ("self" == badge.receive?.type) { - showToast("领取成功") - } else { - showToast("申请成功") - } - // 跳转到徽章详情 - directToBadgeDetail( - requireContext(), - mUserInfoEntity?.userId, - badge.id - ) - }, { - if ("self" == badge.receive?.type) { - showToast("领取失败") - } else { - showToast("申请失败") - } - }) + mUserHomeViewModel.availableBadge.observe(this + ) { badge: BadgeEntity? -> + // 徽章领取弹窗每隔7天弹出一次,所以要判断现在是否是上一次弹出的第7天或者之后 + if (badge != null && System.currentTimeMillis() >= getLong(SP_BADGE_RECORD_SEVEN_DAY)) { + // 徽章领取弹窗每隔7天弹出一次,所以本次弹出后就记录7天后的时间戳 + setLong( + SP_BADGE_RECORD_SEVEN_DAY, + getStartTimeOfDay(System.currentTimeMillis() + 86400000 * 6) + ) + DialogUtils.showReceiveBadgeDialog( + requireContext(), badge, object : ConfirmListener { + override fun onConfirm() { + mPersonalViewModel.applyOrReceiveBadge(badge.id, { + if ("self" == badge.receive?.type) { + showToast("领取成功") + } else { + showToast("申请成功") + } + // 跳转到徽章详情 + directToBadgeDetail( + requireContext(), + mUserInfoEntity?.userId, + badge.id + ) + }, { + if ("self" == badge.receive?.type) { + showToast("领取失败") + } else { + showToast("申请失败") + } + }) + } } - } - }) + ) + } + } - mUserHomeViewModel.energy.observe(this, { energy: Long -> + mUserHomeViewModel.energy.observe(this) { energy: Long -> mEnergy = energy if (energy > 9999) { mStubBinding.personalEnergyTv.text = "9999+" } else { mStubBinding.personalEnergyTv.text = energy.toString() + "" } - }) + } mUserHomeViewModel.signStatus.observe(this, { (todaySignIn) -> @@ -618,78 +620,6 @@ class NewPersonalFragment : BaseLazyFragment() { loadMessageUnreadTotal(false) } }) - mUnreadViewModel.liveData.observe(this, { messageUnread: MessageUnreadEntity? -> - if (messageUnread != null && messageUnread.total > 0) { - // 第一次开启应用时检查消息中心看有没有未读消息确定需不需要弹 Notifier 通知 - showNotifier(messageUnread) - } - }) - } - - private fun showNotifier(messageUnread: MessageUnreadEntity) { - if (mUnreadViewModel.isFirstTimeInit) { - mUnreadViewModel.flagFirstTimeInit(false) - if (messageUnread.meta != null && messageUnread.meta?.user != null) { - if (messageUnread.meta != null) { - var displayText = StringUtils.shrinkStringWithDot( - messageUnread.meta?.user?.name, 8 - ) - val suffixText: String = if ("follow_question" == messageUnread.meta?.type) { - "回答了你关注的问题" - } else { - "回答了你的问题" - } - displayText += suffixText - val content = messageUnread.meta?.answerId + displayText - if (shouldShowNotifier(content)) { - create(activity) - .setText(displayText) - .setDuration(5000) - .setIcon(messageUnread.meta?.user?.icon) - .setOnClickListener { - val bundle = Bundle() - bundle.putString( - EntranceUtils.KEY_ANSWER_ID, - messageUnread.meta?.answerId - ) - bundle.putString( - EntranceUtils.KEY_ENTRANCE, - EntranceUtils.ENTRANCE_UMENG - ) - bundle.putString( - EntranceUtils.KEY_TO, - SimpleAnswerDetailActivity::class.java.name - ) - EntranceUtils.jumpActivity(activity, bundle) - onEvent("消息弹窗", suffixText, "Does not contains any parameter.") - - // 标记已读 - val jsonObject = JSONObject() - try { - jsonObject.put("type", messageUnread.meta?.type) - val body = RequestBody.create( - MediaType.parse("application/json"), - jsonObject.toString() - ) - messageUnread.meta?.messageId?.let { - mPersonalViewModel.postMessageRead( - it, - body - ) { - loadMessageUnreadData() - } - } - } catch (e: Exception) { - e.printStackTrace() - } - hide() - } - .show(true, 500L) - tagNotifierAsShowed(content) - } - } - } - } } // 连接上网络事件 diff --git a/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFunctionGroupAdapter.kt b/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFunctionGroupAdapter.kt index 890b3f6da9..fc71e1b087 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFunctionGroupAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/NewPersonalFunctionGroupAdapter.kt @@ -8,12 +8,12 @@ import android.widget.TextView import androidx.core.util.isEmpty import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.entity.FunctionalGroupEntity import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.kt b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.kt index 614532d647..f25b30ef00 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.kt @@ -12,29 +12,31 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseActivity -import com.gh.base.fragment.BaseLazyFragment +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.fragment.BaseLazyFragment import com.gh.common.databind.BindingAdapters -import com.gh.common.notifier.Notifier.Companion.create -import com.gh.common.notifier.Notifier.Companion.hide -import com.gh.common.notifier.Notifier.Companion.shouldShowNotifier -import com.gh.common.notifier.Notifier.Companion.tagNotifierAsShowed import com.gh.common.util.* import com.gh.common.util.DirectUtils.directToBadgeDetail import com.gh.common.util.DirectUtils.directToBadgeWall import com.gh.common.util.DirectUtils.directToHomeActivity -import com.gh.common.util.ImageUtils.display -import com.gh.common.util.ImageUtils.displayIcon +import com.gh.gamecenter.common.utils.ImageUtils.display +import com.gh.gamecenter.common.utils.ImageUtils.displayIcon import com.gh.common.util.LoginHelper.onQQLoginCallback import com.gh.common.util.LoginHelper.onWeiboLoginCallback -import com.gh.common.util.MtaHelper.onEvent -import com.gh.common.util.SPUtils.getLong -import com.gh.common.util.SPUtils.setLong -import com.gh.common.util.TimeUtils.getStartTimeOfDay -import com.gh.common.util.ToastUtils.showToast -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.core.utils.MtaHelper.onEvent +import com.gh.gamecenter.core.utils.SPUtils.getLong +import com.gh.gamecenter.core.utils.SPUtils.setLong +import com.gh.gamecenter.core.utils.TimeUtils.getStartTimeOfDay +import com.gh.gamecenter.core.utils.ToastUtils.showToast +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.MessageActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.NetworkUtils +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.PackageFlavorHelper +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.FragmentPersonalBinding import com.gh.gamecenter.databinding.FragmentPersonalStubBinding import com.gh.gamecenter.entity.* @@ -43,25 +45,20 @@ import com.gh.gamecenter.eventbus.EBNetworkState import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.fragment.MainWrapperFragment import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.message.MessageUnreadRepository.loadMessageUnreadData import com.gh.gamecenter.message.MessageUnreadRepository.loadMessageUnreadTotal import com.gh.gamecenter.message.MessageUnreadViewModel import com.gh.gamecenter.personal.NewPersonalActivity.Companion.getIntent import com.gh.gamecenter.personalhome.UserHomeViewModel -import com.gh.gamecenter.qa.answer.detail.SimpleAnswerDetailActivity import com.gh.gamecenter.room.AppDatabase -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.user.UserViewModel import com.google.android.material.appbar.AppBarLayout import com.halo.assistant.HaloApp import com.jakewharton.rxbinding2.view.RxView import com.tencent.connect.common.Constants -import okhttp3.MediaType -import okhttp3.RequestBody import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -import org.json.JSONObject import java.util.concurrent.TimeUnit import kotlin.math.abs @@ -269,41 +266,44 @@ class PersonalFragment : BaseLazyFragment() { } }) - mUserHomeViewModel.badges.observe(this, - { badgeEntities: List -> - mStubBinding.personalBadgeIcon.setImageURI("") - if (badgeEntities.isEmpty()) { - mStubBinding.personalBadgeTv.visibility = View.GONE - mStubBinding.personalBadgeCountTv.visibility = View.GONE - mStubBinding.personalMyBadgeIcon.visibility = View.VISIBLE - } else { - mStubBinding.personalBadgeTv.visibility = View.VISIBLE - mStubBinding.personalBadgeCountTv.visibility = View.VISIBLE - mStubBinding.personalMyBadgeIcon.visibility = View.GONE - mStubBinding.personalBadgeCountTv.text = badgeEntities.size.toString() + "" - for ((_, _, icon, name, _, wear, _, actions) in badgeEntities) { - if (wear) { - display( - mStubBinding.personalBadgeIcon, - icon - ) - mStubBinding.personalBadgeIcon.setOnClickListener { - DialogUtils.showViewBadgeDialog( - requireContext(), - Badge(name, icon, actions) - ) { - directToBadgeWall( - requireContext(), - mUserInfoEntity?.userId, - mUserInfoEntity?.name, - mUserInfoEntity?.icon - ) + mUserHomeViewModel.badges.observe(this + ) { badgeEntities: List -> + mStubBinding.personalBadgeIcon.setImageURI("") + if (badgeEntities.isEmpty()) { + mStubBinding.personalBadgeTv.visibility = View.GONE + mStubBinding.personalBadgeCountTv.visibility = View.GONE + mStubBinding.personalMyBadgeIcon.visibility = View.VISIBLE + } else { + mStubBinding.personalBadgeTv.visibility = View.VISIBLE + mStubBinding.personalBadgeCountTv.visibility = View.VISIBLE + mStubBinding.personalMyBadgeIcon.visibility = View.GONE + mStubBinding.personalBadgeCountTv.text = badgeEntities.size.toString() + "" + for ((_, _, icon, name, _, wear, _, actions) in badgeEntities) { + if (wear) { + display( + mStubBinding.personalBadgeIcon, + icon + ) + mStubBinding.personalBadgeIcon.setOnClickListener { + DialogUtils.showViewBadgeDialog( + requireContext(), + Badge(name, icon, actions), + object :ConfirmListener{ + override fun onConfirm() { + directToBadgeWall( + requireContext(), + mUserInfoEntity?.userId, + mUserInfoEntity?.name, + mUserInfoEntity?.icon + ) + } } - } - break + ) } + break } } + } // mStubBinding.personalBadgeIcon.setImageURI("") // // if (badgeEntities.isEmpty()) { @@ -336,58 +336,60 @@ class PersonalFragment : BaseLazyFragment() { // } // } // } - }) + } mUserHomeViewModel.availableBadgeCount.observe(this, { count: Int -> mStubBinding.personalBadgeTips.visibility = if (count > 0) View.VISIBLE else View.GONE }) - mUserHomeViewModel.availableBadge.observe(this, - { badge: BadgeEntity? -> - // 徽章领取弹窗每隔7天弹出一次,所以要判断现在是否是上一次弹出的第7天或者之后 - if (badge != null && System.currentTimeMillis() >= getLong(SP_BADGE_RECORD_SEVEN_DAY)) { - // 徽章领取弹窗每隔7天弹出一次,所以本次弹出后就记录7天后的时间戳 - setLong( - SP_BADGE_RECORD_SEVEN_DAY, - getStartTimeOfDay(System.currentTimeMillis() + 86400000 * 6) - ) - DialogUtils.showReceiveBadgeDialog( - requireContext(), badge - ) { - mPersonalViewModel.applyOrReceiveBadge(badge.id, { - if ("self" == badge.receive?.type) { - showToast("领取成功") - } else { - showToast("申请成功") - } - // 跳转到徽章详情 - directToBadgeDetail( - requireContext(), - mUserInfoEntity?.userId, - badge.id - ) - }, { - if ("self" == badge.receive?.type) { - showToast("领取失败") - } else { - showToast("申请失败") - } - }) + mUserHomeViewModel.availableBadge.observe(this + ) { badge: BadgeEntity? -> + // 徽章领取弹窗每隔7天弹出一次,所以要判断现在是否是上一次弹出的第7天或者之后 + if (badge != null && System.currentTimeMillis() >= getLong(SP_BADGE_RECORD_SEVEN_DAY)) { + // 徽章领取弹窗每隔7天弹出一次,所以本次弹出后就记录7天后的时间戳 + setLong( + SP_BADGE_RECORD_SEVEN_DAY, + getStartTimeOfDay(System.currentTimeMillis() + 86400000 * 6) + ) + DialogUtils.showReceiveBadgeDialog( + requireContext(), badge,object :ConfirmListener{ + override fun onConfirm() { + mPersonalViewModel.applyOrReceiveBadge(badge.id, { + if ("self" == badge.receive?.type) { + showToast("领取成功") + } else { + showToast("申请成功") + } + // 跳转到徽章详情 + directToBadgeDetail( + requireContext(), + mUserInfoEntity?.userId, + badge.id + ) + }, { + if ("self" == badge.receive?.type) { + showToast("领取失败") + } else { + showToast("申请失败") + } + }) + } } - } - }) + ) + } + } mPersonalViewModel.haloAddData.observe( - this, - { datas: ArrayList -> - if (datas.isNotEmpty()) { - mPersonalFuncGroupAdapter.setListData(datas) - mPersonalViewModel.checkUpdate() - } - }) + this + ) { datas: ArrayList -> + if (datas.isNotEmpty()) { + mPersonalFuncGroupAdapter.setListData(datas) + mPersonalViewModel.checkUpdate() + } + } - mUnreadViewModel.liveData.observe(this, { messageUnread: MessageUnreadEntity? -> + mUnreadViewModel.liveData.observe(this) { messageUnread: MessageUnreadEntity? -> if (messageUnread != null && messageUnread.total > 0) { mStubBinding.personalNewFansTips.visibility = if (messageUnread.fans > 0) View.VISIBLE else View.GONE @@ -404,7 +406,7 @@ class PersonalFragment : BaseLazyFragment() { EventBus.getDefault() .post(EBReuse(MESSAGE_READ_OVER)) } - }) + } mUnreadViewModel.zixunConcernLiveData.observe(this, { hasConcern: Boolean -> notifyItemChange( @@ -449,8 +451,13 @@ class PersonalFragment : BaseLazyFragment() { "签到成功,获得经验:1", getString(R.string.sign_dialog_content, signEntity.serialSign), getString(R.string.sign_dialog_content2, signEntity.experience), - getSignSkipText(signEntity.title) - ) { mPersonalViewModel.signSkip(signEntity) } + getSignSkipText(signEntity.title), + object :ConfirmListener{ + override fun onConfirm() { + mPersonalViewModel.signSkip(signEntity) + } + } + ) signEntity.lastTime = System.currentTimeMillis() / 1000 } else { DialogUtils.showSignDialog( @@ -458,8 +465,11 @@ class PersonalFragment : BaseLazyFragment() { "今天已签到,明天再来吧~", getString(R.string.sign_dialog_content, signEntity.serialSign), getString(R.string.sign_dialog_content2, signEntity.experience), - getSignSkipText(signEntity.title) - ) { mPersonalViewModel.signSkip(signEntity) } + getSignSkipText(signEntity.title), object : ConfirmListener { + override fun onConfirm() { + mPersonalViewModel.signSkip(signEntity) + } + }) } signEntity.id = UserManager.getInstance().userId if (mDatabase.signDao().updateSignEntity(signEntity) <= 0) { @@ -665,78 +675,6 @@ class PersonalFragment : BaseLazyFragment() { loadMessageUnreadTotal(false) } }) - mUnreadViewModel.liveData.observe(this, { messageUnread: MessageUnreadEntity? -> - if (messageUnread != null && messageUnread.total > 0) { - // 第一次开启应用时检查消息中心看有没有未读消息确定需不需要弹 Notifier 通知 - showNotifier(messageUnread) - } - }) - } - - private fun showNotifier(messageUnread: MessageUnreadEntity) { - if (mUnreadViewModel.isFirstTimeInit) { - mUnreadViewModel.flagFirstTimeInit(false) - if (messageUnread.meta != null && messageUnread.meta?.user != null) { - if (messageUnread.meta != null) { - var displayText = StringUtils.shrinkStringWithDot( - messageUnread.meta?.user?.name, 8 - ) - val suffixText: String = if ("follow_question" == messageUnread.meta?.type) { - "回答了你关注的问题" - } else { - "回答了你的问题" - } - displayText += suffixText - val content = messageUnread.meta?.answerId + displayText - if (shouldShowNotifier(content)) { - create(activity) - .setText(displayText) - .setDuration(5000) - .setIcon(messageUnread.meta?.user?.icon) - .setOnClickListener { - val bundle = Bundle() - bundle.putString( - EntranceUtils.KEY_ANSWER_ID, - messageUnread.meta?.answerId - ) - bundle.putString( - EntranceUtils.KEY_ENTRANCE, - EntranceUtils.ENTRANCE_UMENG - ) - bundle.putString( - EntranceUtils.KEY_TO, - SimpleAnswerDetailActivity::class.java.name - ) - EntranceUtils.jumpActivity(activity, bundle) - onEvent("消息弹窗", suffixText, "Does not contains any parameter.") - - // 标记已读 - val jsonObject = JSONObject() - try { - jsonObject.put("type", messageUnread.meta?.type) - val body = RequestBody.create( - MediaType.parse("application/json"), - jsonObject.toString() - ) - messageUnread.meta?.messageId?.let { - mPersonalViewModel.postMessageRead( - it, - body - ) { - loadMessageUnreadData() - } - } - } catch (e: Exception) { - e.printStackTrace() - } - hide() - } - .show(true, 500L) - tagNotifierAsShowed(content) - } - } - } - } } // 连接上网络事件 @@ -767,7 +705,8 @@ class PersonalFragment : BaseLazyFragment() { } } - private fun getItemDecoration() = VerticalItemDecoration(requireContext(), 8F, false).apply { mItemDecoration = this } + private fun getItemDecoration() = VerticalItemDecoration(requireContext(), 8F, false) + .apply { mItemDecoration = this } override fun onNightModeChange() { super.onNightModeChange() diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionAdapter.kt b/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionAdapter.kt index 926b1e43a0..593bd0a49b 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionAdapter.kt @@ -8,11 +8,18 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView +import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.app.AppCompatDelegate import androidx.recyclerview.widget.RecyclerView import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.constant.Constants import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.* +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.db.GameTrendsDao import com.gh.gamecenter.entity.FunctionalGroupEntity import com.gh.gamecenter.entity.FunctionalLinkEntity @@ -117,6 +124,7 @@ class PersonalFunctionAdapter(val context: Context, val groupName: String, var m } MtaHelper.onEvent("我的光环_新", "功能入口", "$groupName+${linkEntity.name}") + NewLogUtils.logHaloSelfClick(groupName, linkEntity.name ?: "", linkEntity.type ?: "", linkEntity.link ?: "",linkEntity.text?:"") when (linkEntity.type) { "我的游戏" -> { if (UserManager.getInstance().isLoggedIn) { @@ -154,8 +162,10 @@ class PersonalFunctionAdapter(val context: Context, val groupName: String, var m if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH || BuildConfig.DEBUG) { context.startActivity(VideoManagerActivity.getIntent(context, "", "我的光环-视频投稿")) } else { - DialogHelper.showDialog(context, "提示", - "抱歉,您当前系统版本过低,暂不支持视频功能", "我知道了", "") + DialogHelper.showDialog( + context, "提示", + "抱歉,您当前系统版本过低,暂不支持视频功能", "我知道了", "" + ) } MtaHelper.onEvent("我的光环", "视频投稿") } else { @@ -219,7 +229,11 @@ class PersonalFunctionAdapter(val context: Context, val groupName: String, var m } "设置" -> { if (!checkPrivacyIsSame()) { - SPUtils.setString(Constants.SP_PRIVACY_SETTING_MD5, SPUtils.getString(Constants.SP_PRIVACY_CURRENT_MD5)) + SPUtils.setString( + Constants.SP_PRIVACY_SETTING_MD5, SPUtils.getString( + Constants.SP_PRIVACY_CURRENT_MD5 + ) + ) notifyDataSetChanged() } MtaHelper.onEvent("我的光环", "设置图标") @@ -299,6 +313,23 @@ class PersonalFunctionAdapter(val context: Context, val groupName: String, var m } } else -> { + if (PackageFlavorHelper.IS_TEST_FLAVOR) { + if (linkEntity.type == "night_mode") { + val isNightMode = NightModeUtils.getNightMode() + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + NightModeUtils.setNightMode(!isNightMode) + if (isNightMode) { + (context as AppCompatActivity).delegate.localNightMode = + AppCompatDelegate.MODE_NIGHT_NO + } else { + (context as AppCompatActivity).delegate.localNightMode = + AppCompatDelegate.MODE_NIGHT_YES + } + } + return + } + } DirectUtils.directToLinkPage(context, linkEntity, "", "我的光环") } } diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionGroupAdapter.kt b/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionGroupAdapter.kt index 1eda210f8d..a73a27ec9d 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionGroupAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionGroupAdapter.kt @@ -8,12 +8,12 @@ import android.widget.TextView import androidx.core.util.isEmpty import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R import com.gh.gamecenter.entity.FunctionalGroupEntity import com.lightgame.adapter.BaseRecyclerAdapter @@ -55,7 +55,14 @@ class PersonalFunctionGroupAdapter(val context: Context) : BaseRecyclerAdapter>() { override fun onSuccess(data: ArrayList) { + if (PackageFlavorHelper.IS_TEST_FLAVOR) { + data.firstOrNull()?.addons?.add( + FunctionalLinkEntity().apply { + icon = "https://dev-and-static.ghzs.com/image/game/icon/2022/05/17/6283180e5e90cb01b870b39e.gif" + name = "日夜切换" + type = "night_mode" + } + ) + } haloAddData.postValue(data) data.forEach loop@{ it.addons.forEach { link -> if (link.type == "设置") { - SPUtils.setString(Constants.SP_PRIVACY_CURRENT_MD5, link.checkSum?.privacyPolicy + SPUtils.setString( + Constants.SP_PRIVACY_CURRENT_MD5, link.checkSum?.privacyPolicy ?: "") return@loop } @@ -212,15 +225,12 @@ class PersonalViewModel(application: Application) : AndroidViewModel(application } when (data.type) { "game" -> { - DataUtils.onMtaEvent(context, "我的光环_签到跳转", "游戏", signEntity.title) GameDetailActivity.startGameDetailActivity(context, data.link, entrance) } "news" -> { - DataUtils.onMtaEvent(context, "我的光环_签到跳转", "文章", signEntity.title) context.startActivity(NewsDetailActivity.getIntentById(context, data.link, entrance)) } "column" -> { - DataUtils.onMtaEvent(context, "我的光环_签到跳转", "专题", signEntity.title) SubjectActivity.startSubjectActivity( context, data.link, diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt index e757f948a5..f1b2326f3b 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansAdapter.kt @@ -4,11 +4,18 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.FollowersOrFansItemBinding import com.gh.gamecenter.entity.FollowersOrFansEntity import com.gh.gamecenter.manager.UserManager @@ -105,10 +112,12 @@ class FollowersOrFansAdapter(context: Context, val mViewModel: FollowersOrFansVi } holder.binding.sdvUserBadge.setOnClickListener { v -> - DialogUtils.showViewBadgeDialog(mContext, entity.badge) { - onBadgeClickListener?.invoke(entity) - DirectUtils.directToBadgeWall(mContext, entity.id, entity.name, entity.icon) - } + DialogUtils.showViewBadgeDialog(mContext, entity.badge, object : ConfirmListener { + override fun onConfirm() { + onBadgeClickListener?.invoke(entity) + DirectUtils.directToBadgeWall(mContext, entity.id, entity.name, entity.icon) + } + }) } } else if (holder is FooterViewHolder) { holder.initFooterViewHolder(mViewModel, mIsLoading, mIsNetworkError, mIsOver) diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt index 80ff28d426..0cd01ac675 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/FollowersOrFansFragment.kt @@ -4,10 +4,10 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.common.util.EntranceUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.dip2px -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.entity.FollowersOrFansEntity import com.gh.gamecenter.manager.UserManager @@ -34,7 +34,7 @@ class FollowersOrFansFragment : ListFragment { - return Pair(targetFragment.arguments?.getString(EntranceUtils.KEY_USER_ID) ?: "", "") + return Pair(targetFragment.arguments?.getString(EntranceConsts.KEY_USER_ID) ?: "", "") } override fun isAutoResetViewBackgroundEnabled(): Boolean = true diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt index 8aa8bdcd2f..9146c4feee 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt @@ -1,7 +1,6 @@ package com.gh.gamecenter.personalhome import android.graphics.Bitmap -import android.graphics.Canvas import android.graphics.drawable.BitmapDrawable import android.os.Build import android.os.Bundle @@ -15,18 +14,25 @@ import androidx.constraintlayout.widget.ConstraintSet import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.lifecycle.Observer -import com.gh.base.adapter.FragmentAdapter -import com.gh.base.fragment.BaseFragment_TabLayout -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.adapter.FragmentAdapter +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout +import com.gh.gamecenter.common.constant.Constants import com.gh.common.databind.BindingAdapters import com.gh.common.util.* +import com.gh.common.util.DialogUtils import com.gh.common.util.DirectUtils.directToBadgeWall import com.gh.gamecenter.* +import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentHomeBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.message.MessageUnreadViewModel -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.personalhome.background.PersonalityBackgroundActivity import com.gh.gamecenter.personalhome.border.AvatarBorderActivity import com.gh.gamecenter.personalhome.fans.FansActivity @@ -40,7 +46,7 @@ import com.halo.assistant.HaloApp import com.lightgame.utils.Utils import kotlin.math.abs -class UserHomeFragment : NormalFragment() { +class UserHomeFragment : ToolbarFragment() { private var mPath = "" @@ -63,8 +69,8 @@ class UserHomeFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mPath = arguments?.getString(EntranceUtils.KEY_PATH) ?: "" - val userId = arguments?.getString(EntranceUtils.KEY_USER_ID) ?: "" + mPath = arguments?.getString(EntranceConsts.KEY_PATH) ?: "" + val userId = arguments?.getString(EntranceConsts.KEY_USER_ID) ?: "" mUserHomeViewModel = viewModelProvider(UserHomeViewModel.Factory(HaloApp.getInstance().application, userId)) @@ -126,17 +132,20 @@ class UserHomeFragment : NormalFragment() { mHomeBinding?.badgeIcon?.setOnClickListener { DialogUtils.showViewBadgeDialog( requireContext(), - Badge(badge.name, badge.icon, badge.actions) - ) { - if (::mPersonalEntity.isInitialized) { - directToBadgeWall( - requireContext(), - mPersonalEntity.id, - mPersonalEntity.name, - mPersonalEntity.icon - ) + Badge(badge.name, badge.icon, badge.actions), + object : ConfirmListener { + override fun onConfirm() { + if (::mPersonalEntity.isInitialized) { + directToBadgeWall( + requireContext(), + mPersonalEntity.id, + mPersonalEntity.name, + mPersonalEntity.icon + ) + } + } } - } + ) } return@outside } @@ -249,7 +258,7 @@ class UserHomeFragment : NormalFragment() { } userCountContainer.post { - if(!isAdded) return@post + if (!isAdded) return@post val newHeight = userCountContainer.bottom + (12F + 16F).dip2px() userBackgroundContainer.layoutParams = userBackgroundContainer.layoutParams.apply { @@ -325,8 +334,8 @@ class UserHomeFragment : NormalFragment() { } private fun updateTab(personalData: PersonalEntity) { - val keyPosition = arguments?.getInt(EntranceUtils.KEY_POSITION, -1) ?: -1 - val type = UserHistoryViewModel.TYPE.fromValue(arguments?.getString(EntranceUtils.KEY_TYPE)) + val keyPosition = arguments?.getInt(EntranceConsts.KEY_POSITION, -1) ?: -1 + val type = UserHistoryViewModel.TYPE.fromValue(arguments?.getString(EntranceConsts.KEY_TYPE)) val count = personalData.count val position = if (keyPosition > -1) { keyPosition @@ -357,7 +366,8 @@ class UserHomeFragment : NormalFragment() { val titleList = listOf("游戏", "发布") mHomeBinding?.viewpager?.offscreenPageLimit = mFragmentList.size - mHomeBinding?.viewpager?.adapter = FragmentAdapter(childFragmentManager, mFragmentList, titleList) + mHomeBinding?.viewpager?.adapter = + FragmentAdapter(childFragmentManager, mFragmentList, titleList) mHomeBinding?.viewpager?.currentItem = position mHomeBinding?.viewpager?.doOnPageSelected { MtaHelper.onEvent("个人主页详情", "个人主页详情", titleList[it]) diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt index 9a95d2fe2b..995623a62b 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeViewModel.kt @@ -9,13 +9,12 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.common.util.EnergyTaskHelper import com.gh.common.util.ErrorHelper -import com.gh.common.util.ToastUtils -import com.gh.common.util.createRequestBody +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.createRequestBody import com.gh.gamecenter.R import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBUserFollow -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.google.gson.JsonObject import com.halo.assistant.HaloApp @@ -24,7 +23,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import okhttp3.ResponseBody import org.greenrobot.eventbus.EventBus -import org.json.JSONObject import retrofit2.HttpException class UserHomeViewModel(application: Application, var userId: String) : AndroidViewModel(application) { @@ -45,7 +43,7 @@ class UserHomeViewModel(application: Application, var userId: String) : AndroidV .api.getPersonalData(userId, HaloApp.getInstance().channel, Utils.getTime(getApplication())) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { + .subscribe(object : com.gh.gamecenter.common.retrofit.Response() { override fun onResponse(response: PersonalEntity?) { userInfo.value = response } @@ -88,7 +86,7 @@ class UserHomeViewModel(application: Application, var userId: String) : AndroidV observable .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { + .subscribe(object : com.gh.gamecenter.common.retrofit.Response() { override fun onResponse(response: ResponseBody?) { super.onResponse(response) if (isFollow) { @@ -116,7 +114,7 @@ class UserHomeViewModel(application: Application, var userId: String) : AndroidV .api.getBadges(userId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response>() { + .subscribe(object : com.gh.gamecenter.common.retrofit.Response>() { override fun onResponse(response: List?) { super.onResponse(response) badges.postValue(response) @@ -129,7 +127,7 @@ class UserHomeViewModel(application: Application, var userId: String) : AndroidV .api.availableBadges(userId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response>() { + .subscribe(object : com.gh.gamecenter.common.retrofit.Response>() { override fun onResponse(response: List?) { super.onResponse(response) availableBadge.postValue(if (response.isNullOrEmpty()) null else response[0]) diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/ViewHolder.kt b/app/src/main/java/com/gh/gamecenter/personalhome/ViewHolder.kt index c6b535f97d..7b882464ef 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/ViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/ViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.personalhome -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.FollowersOrFansItemBinding class FollowersOrFansViewHolder(val binding: FollowersOrFansItemBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundClipActivity.kt b/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundClipActivity.kt index ced4ec51b9..def34d0805 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundClipActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundClipActivity.kt @@ -6,14 +6,14 @@ import android.content.Intent import android.graphics.Bitmap import android.os.Bundle import android.widget.ImageView -import com.gh.base.BaseActivity -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.runOnIoThread -import com.gh.common.util.BitmapUtils -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.utils.BitmapUtils +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.R +import com.gh.gamecenter.core.runOnIoThread import com.gh.gamecenter.databinding.ActivityBackgroundClipBinding import java.io.File import java.lang.ref.SoftReference @@ -57,7 +57,7 @@ class BackgroundClipActivity : BaseActivity() { super.onWindowFocusChanged(hasFocus) if (hasFocus && (reference == null || reference?.get() == null)) { val imageView: ImageView = mBinding.cropImageIv.cropImageZoomView - val bitmap = BitmapUtils.getBitmapByFile(intent.getStringExtra(EntranceUtils.KEY_PATH), + val bitmap = BitmapUtils.getBitmapByFile(intent.getStringExtra(EntranceConsts.KEY_PATH), imageView.width, imageView.height) if (bitmap != null) { reference = SoftReference(bitmap) @@ -77,8 +77,8 @@ class BackgroundClipActivity : BaseActivity() { companion object { fun getIntent(context: Context, picturePath: String, entrance: String = ""): Intent? { val intent = Intent(context, BackgroundClipActivity::class.java) - intent.putExtra(EntranceUtils.KEY_PATH, picturePath) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance) + intent.putExtra(EntranceConsts.KEY_PATH, picturePath) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewActivity.kt b/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewActivity.kt index b390b50727..a4677e66b3 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewActivity.kt @@ -3,14 +3,10 @@ package com.gh.gamecenter.personalhome.background import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.AppExecutor -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R -import com.gh.gamecenter.amway.AmwayFragment import com.gh.gamecenter.entity.BackgroundImageEntity class BackgroundPreviewActivity : BaseActivity() { @@ -34,7 +30,7 @@ class BackgroundPreviewActivity : BaseActivity() { companion object { fun getIntent(context: Context, localPath: String, entity: BackgroundImageEntity?): Intent { val intent = Intent(context, BackgroundPreviewActivity::class.java) - intent.putExtra(EntranceUtils.KEY_LOCAL_PATH, localPath) + intent.putExtra(EntranceConsts.KEY_LOCAL_PATH, localPath) if (entity != null) { intent.putExtra(BackgroundImageEntity::class.java.simpleName, entity) } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewFragment.kt index d385043922..1096c623ec 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewFragment.kt @@ -11,15 +11,18 @@ import android.view.View import androidx.annotation.RequiresApi import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentBackgroundPreviewBinding import com.gh.gamecenter.entity.BackgroundImageEntity import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.user.UserViewModel import com.halo.assistant.HaloApp import com.zhihu.matisse.Matisse @@ -31,7 +34,7 @@ import io.reactivex.schedulers.Schedulers import retrofit2.HttpException import java.io.File -class BackgroundPreviewFragment : NormalFragment() { +class BackgroundPreviewFragment : ToolbarFragment() { private var mOriginBitmap: Bitmap? = null private var mTempBitmap: Bitmap? = null @@ -53,7 +56,7 @@ class BackgroundPreviewFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mLocalPath = arguments?.getString(EntranceUtils.KEY_LOCAL_PATH) ?: "" + mLocalPath = arguments?.getString(EntranceConsts.KEY_LOCAL_PATH) ?: "" backgroundImageEntity = arguments?.getParcelable(BackgroundImageEntity::class.java.simpleName) @@ -106,7 +109,7 @@ class BackgroundPreviewFragment : NormalFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - mLocalPath = arguments?.getString(EntranceUtils.KEY_LOCAL_PATH) ?: "" + mLocalPath = arguments?.getString(EntranceConsts.KEY_LOCAL_PATH) ?: "" backgroundImageEntity = arguments?.getParcelable(BackgroundImageEntity::class.java.simpleName) mOriginBitmap = BitmapUtils.getBitmapByFile(mLocalPath, Bitmap.Config.ARGB_8888) diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundActivity.kt b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundActivity.kt index 5ce7b12a79..be368e20c1 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundActivity.kt @@ -3,15 +3,16 @@ package com.gh.gamecenter.personalhome.background import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor -class PersonalityBackgroundActivity : NormalActivity() { +class PersonalityBackgroundActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setNavigationTitle("个性背景") + updateStatusBarColor(R.color.black, R.color.white) } override fun isAutoResetViewBackgroundEnabled(): Boolean = true diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundAdapter.kt index 59eef008de..55884688dc 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundAdapter.kt @@ -3,9 +3,9 @@ package com.gh.gamecenter.personalhome.background import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.ImageUtils -import com.gh.common.util.visibleIf +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.visibleIf import com.gh.gamecenter.R import com.gh.gamecenter.databinding.AvatarBackgroundItemBinding import com.gh.gamecenter.entity.BackgroundImageEntity diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundFragment.kt index b7680901d8..03fdf39643 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundFragment.kt @@ -8,24 +8,24 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.Observer import androidx.recyclerview.widget.GridLayoutManager +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.utils.EmptyCallback import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.util.EmptyCallback import com.gh.common.util.GhMatisseFilter -import com.gh.common.util.PermissionHelper -import com.gh.common.util.viewModelProvider -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.utils.PermissionHelper +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.R import com.gh.gamecenter.databinding.PersonalityBackgroundFragmentBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.user.UserViewModel import com.halo.assistant.HaloApp import com.zhihu.matisse.Matisse import com.zhihu.matisse.MimeType import com.zhihu.matisse.engine.impl.PicassoEngine -class PersonalityBackgroundFragment : NormalFragment() { +class PersonalityBackgroundFragment : ToolbarFragment() { private var mAdapter: PersonalityBackgroundAdapter? = null private lateinit var mViewModel: PersonalityBackgroundViewModel private lateinit var mUserViewModel: UserViewModel diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundViewModel.kt index 459f08fdde..aade0b39cb 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundViewModel.kt @@ -4,25 +4,15 @@ import android.annotation.SuppressLint import android.app.Application import android.content.Context import android.graphics.Bitmap -import android.graphics.BitmapFactory -import android.net.Uri import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.facebook.binaryresource.BinaryResource -import com.facebook.binaryresource.FileBinaryResource -import com.facebook.cache.common.CacheKey -import com.facebook.imagepipeline.cache.DefaultCacheKeyFactory -import com.facebook.imagepipeline.core.ImagePipelineFactory -import com.facebook.imagepipeline.request.ImageRequest -import com.facebook.imagepipeline.request.ImageRequestBuilder -import com.gh.common.util.BiCallback -import com.gh.common.util.BitmapUtils -import com.gh.common.util.ImageUtils +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.utils.BitmapUtils +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.entity.BackgroundImageEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager -import com.squareup.picasso.Picasso import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderActivity.kt b/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderActivity.kt index d8667139e3..682a568c5a 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderActivity.kt @@ -3,10 +3,9 @@ package com.gh.gamecenter.personalhome.border import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R class AvatarBorderActivity : BaseActivity() { @@ -38,7 +37,7 @@ class AvatarBorderActivity : BaseActivity() { fun getIntent(context: Context, categoryId: String? = null): Intent { return Intent(context, AvatarBorderActivity::class.java).apply { categoryId?.let { - putExtra(EntranceUtils.KEY_CATEGORY_ID, it) + putExtra(EntranceConsts.KEY_CATEGORY_ID, it) } } } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderFragment.kt index 9cbba19c09..3fedd40c96 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderFragment.kt @@ -14,23 +14,26 @@ import androidx.core.view.ViewCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentStatePagerAdapter import androidx.lifecycle.Observer -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R import com.gh.gamecenter.SelectUserIconActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentAvatarBorderBinding import com.gh.gamecenter.entity.AvatarBorderCategoryEntity import com.gh.gamecenter.entity.AvatarBorderEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.user.UserViewModel import com.google.android.material.tabs.TabLayout import com.halo.assistant.HaloApp import org.json.JSONObject -class AvatarBorderFragment : NormalFragment() { +class AvatarBorderFragment : ToolbarFragment() { private var mUserViewModel: UserViewModel? = null private var mAvatarBorderViewModel: AvatarBorderViewModel? = null @@ -55,7 +58,7 @@ class AvatarBorderFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mInitCategoryId = arguments?.getString(EntranceUtils.KEY_CATEGORY_ID) ?: "" + mInitCategoryId = arguments?.getString(EntranceConsts.KEY_CATEGORY_ID) ?: "" mAvatarBorderViewModel = viewModelProvider() mUserViewModel = viewModelProvider(UserViewModel.Factory(HaloApp.getInstance().application)) mUserViewModel?.loginObsUserinfo?.observeNonNull(this) { @@ -203,8 +206,8 @@ class AvatarBorderFragment : NormalFragment() { mTitleList.add(entity.name) val chooseAvatarBorderFragment = childFragmentManager.findFragmentByTag("$tag$index") ?: ChooseAvatarBorderFragment().with(bundleOf( - EntranceUtils.KEY_CATEGORY_ID to entity.id, - EntranceUtils.KEY_IS_FREE to entity.isFree)) + EntranceConsts.KEY_CATEGORY_ID to entity.id, + EntranceConsts.KEY_IS_FREE to entity.isFree)) mFragments.add(chooseAvatarBorderFragment) } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderViewModel.kt index 522f358844..800f814027 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderViewModel.kt @@ -4,13 +4,8 @@ import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import com.gh.common.util.UrlFilterUtils import com.gh.gamecenter.entity.AvatarBorderCategoryEntity -import com.gh.gamecenter.entity.AvatarBorderEntity -import com.gh.gamecenter.personalhome.UserHomeViewModel -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderAdapter.kt index d55858a2d0..60a428b0b5 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderAdapter.kt @@ -4,11 +4,13 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.time.TimeUtil import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.AvatarItemBinding import com.gh.gamecenter.energy.EnergyHouseActivity import com.gh.gamecenter.entity.AvatarBorderEntity diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderFragment.kt index 8be8f89db3..fbe8514211 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderFragment.kt @@ -6,16 +6,16 @@ import android.view.View import android.widget.RelativeLayout import androidx.lifecycle.Observer import androidx.recyclerview.widget.GridLayoutManager -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px -import com.gh.common.util.viewModelProvider -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentAvatarListBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.halo.assistant.HaloApp -class ChooseAvatarBorderFragment : NormalFragment() { +class ChooseAvatarBorderFragment : ToolbarFragment() { private var mHaveLoad = false private lateinit var mBinding: FragmentAvatarListBinding private var mAdapter: ChooseAvatarBorderAdapter? = null @@ -28,8 +28,8 @@ class ChooseAvatarBorderFragment : NormalFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBinding = FragmentAvatarListBinding.bind(mCachedView) - mCategoryId = arguments?.getString(EntranceUtils.KEY_CATEGORY_ID) ?: "" - mIsFree = arguments?.getBoolean(EntranceUtils.KEY_IS_FREE) ?: true + mCategoryId = arguments?.getString(EntranceConsts.KEY_CATEGORY_ID) ?: "" + mIsFree = arguments?.getBoolean(EntranceConsts.KEY_IS_FREE) ?: true mViewModel = viewModelProvider(ChooseAvatarBorderViewModel.Factory(HaloApp.getInstance().application, mCategoryId)) mViewModel?.pendantsLiveData?.observe(this, Observer { mBinding.reuseLoading.root.visibility = View.GONE @@ -68,7 +68,14 @@ class ChooseAvatarBorderFragment : NormalFragment() { val avatarPendantFragment = parentFragment as? AvatarBorderFragment avatarPendantFragment?.choosePendant(entity, isSelected) } - addItemDecoration(GridSpacingItemColorDecoration(requireContext(), 8, 8, R.color.transparent)) + addItemDecoration( + GridSpacingItemColorDecoration( + requireContext(), + 8, + 8, + R.color.transparent + ) + ) adapter = mAdapter } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderViewModel.kt index 50b1c1a505..90dc0c7419 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/border/ChooseAvatarBorderViewModel.kt @@ -6,9 +6,9 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.AvatarBorderEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/fans/FansActivity.kt b/app/src/main/java/com/gh/gamecenter/personalhome/fans/FansActivity.kt index 009c3f2da7..d6ee60e83b 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/fans/FansActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/fans/FansActivity.kt @@ -3,14 +3,19 @@ package com.gh.gamecenter.personalhome.fans import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.personalhome.FollowersOrFansFragment -class FansActivity : NormalActivity() { +class FansActivity : ToolBarActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } override fun isAutoResetViewBackgroundEnabled(): Boolean = true @@ -22,8 +27,8 @@ class FansActivity : NormalActivity() { companion object { fun getIntent(context: Context, userId: String, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_USER_ID, userId) - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_USER_ID, userId) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) bundle.putString(FollowersOrFansFragment.PAGE_SOURCE, FansActivity::class.java.name) return getTargetIntent(context, FansActivity::class.java, FollowersOrFansFragment::class.java, bundle) } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/followers/FollowersActivity.kt b/app/src/main/java/com/gh/gamecenter/personalhome/followers/FollowersActivity.kt index 92f88fcfd2..0a5458b2ed 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/followers/FollowersActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/followers/FollowersActivity.kt @@ -3,14 +3,19 @@ package com.gh.gamecenter.personalhome.followers import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.personalhome.FollowersOrFansFragment -class FollowersActivity : NormalActivity() { +class FollowersActivity : ToolBarActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } override fun isAutoResetViewBackgroundEnabled(): Boolean = true @@ -21,8 +26,8 @@ class FollowersActivity : NormalActivity() { companion object { fun getIntent(context: Context, userId: String, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_USER_ID, userId) - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_USER_ID, userId) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) bundle.putString(FollowersOrFansFragment.PAGE_SOURCE, FollowersActivity::class.java.name) return getTargetIntent(context, FollowersActivity::class.java, FollowersOrFansFragment::class.java, bundle) } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt index 81ba6ed171..bbd8b88ea8 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt @@ -7,12 +7,16 @@ import android.util.SparseBooleanArray import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* +import com.gh.common.util.DialogUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.PersonalHomeRatingViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.databinding.PersonalHomeRatingBinding import com.gh.gamecenter.entity.ForumVideoEntity @@ -172,9 +176,11 @@ class UserHistoryAdapter( historyEntity.user?.run { userBadgeName.setOnClickListener { userBadgeIcon.performClick() } userBadgeIcon.setOnClickListener { - DialogUtils.showViewBadgeDialog(mContext, badge) { - DirectUtils.directToBadgeWall(mContext, id, name, icon) - } + DialogUtils.showViewBadgeDialog(mContext, badge, object : ConfirmListener { + override fun onConfirm() { + DirectUtils.directToBadgeWall(mContext, id, name, icon) + } + }) } } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt index ebc09646be..86f9a76899 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryFragment.kt @@ -7,11 +7,13 @@ import android.view.View import android.widget.TextView import androidx.core.os.bundleOf import androidx.recyclerview.widget.RecyclerView -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.databinding.FragmentUserPublishBinding import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.entity.PersonalEntity diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryViewModel.kt index 601a8afa45..c3d3c4dc37 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryViewModel.kt @@ -6,14 +6,18 @@ import android.text.TextUtils import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.util.* +import com.gh.common.util.EnergyTaskHelper +import com.gh.common.util.ErrorHelper +import com.gh.gamecenter.core.utils.UrlFilterUtils +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.utils.singleToMain import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.entity.PersonalHistoryEntity -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils @@ -64,7 +68,7 @@ class UserHistoryViewModel(application: Application, mApi.voteGameComment(gameId, commentId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { + .subscribe(object : com.gh.gamecenter.common.retrofit.Response() { override fun onResponse(response: ResponseBody?) { Utils.toast(getApplication(), "点赞成功") callback.invoke() @@ -88,7 +92,7 @@ class UserHistoryViewModel(application: Application, mApi.unvoteGameComment(gameId, commentId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { + .subscribe(object : com.gh.gamecenter.common.retrofit.Response() { override fun onResponse(response: ResponseBody?) { super.onResponse(response) Utils.toast(getApplication(), "取消点赞") diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt index 7d4caa20ed..0fb648bd31 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryAdapter.kt @@ -5,7 +5,7 @@ import android.view.View import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.DirectUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt index 76c2391e92..4e4c813b6b 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserVideoHistoryFragment.kt @@ -6,10 +6,10 @@ //import androidx.core.os.bundleOf //import androidx.recyclerview.widget.GridLayoutManager //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.util.dip2px -//import com.gh.common.util.viewModelProvider -//import com.gh.common.view.FixGridLayoutManager -//import com.gh.common.view.GridSpacingItemDecoration +//import com.gh.gamecenter.common.utils.dip2px +//import com.gh.gamecenter.common.utils.viewModelProvider +//import com.gh.gamecenter.common.view.FixGridLayoutManager +//import com.gh.gamecenter.common.view.GridSpacingItemDecoration //import com.gh.gamecenter.R //import com.gh.gamecenter.baselist.ListAdapter //import com.gh.gamecenter.baselist.ListFragment diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt index 37f9597335..e4e5083ef7 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryAdapter.kt @@ -7,12 +7,14 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemUserCommentHistoryBinding import com.gh.gamecenter.gamedetail.rating.RatingReplyActivity import com.gh.gamecenter.gamedetail.rating.edit.RatingEditActivity diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryFragment.kt index c7e37a49e2..9c7001bb37 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryFragment.kt @@ -6,10 +6,11 @@ import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat import androidx.core.os.bundleOf -import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.personalhome.home.UserHistoryFragment import com.gh.gamecenter.personalhome.rating.MyRating diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryViewModel.kt index 1de6a9d0ae..0f8f64c8ed 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserCommentHistoryViewModel.kt @@ -6,9 +6,11 @@ import androidx.lifecycle.ViewModelProvider import com.gh.common.util.* import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.personalhome.rating.MyRating -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameFragment.kt index 694da6c6ba..8d02631f09 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameFragment.kt @@ -9,16 +9,15 @@ import android.widget.PopupWindow import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.os.bundleOf -import com.gh.common.util.* -import com.gh.common.util.EntranceUtils.KEY_TYPE -import com.gh.common.util.EntranceUtils.KEY_USER_ID +import com.gh.gamecenter.common.constant.EntranceConsts.* import com.gh.gamecenter.R import com.gh.gamecenter.collection.GamesCollectionFragment import com.gh.gamecenter.databinding.FragmentUserGameBinding import com.gh.gamecenter.entity.PersonalEntity -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.* -class UserGameFragment : NormalFragment() { +class UserGameFragment : ToolbarFragment() { private var mBinding: FragmentUserGameBinding? = null private var mViewModel: UserGameViewModel? = null diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameViewModel.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameViewModel.kt index 9a66175526..66cb420070 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameViewModel.kt @@ -7,13 +7,14 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import okhttp3.ResponseBody +import retrofit2.Response class UserGameViewModel(application: Application, private val mUserId: String) : AndroidViewModel(application) { @@ -30,7 +31,7 @@ class UserGameViewModel(application: Application, private val mUserId: String) .api.getPlayedGamesCount(mUserId, Utils.getTime(getApplication())) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : BiResponse>() { + .subscribe(object : BiResponse>() { override fun onSuccess(data: retrofit2.Response) { val countContent = data.headers().get("Total") playedGameCount.postValue(if (TextUtils.isEmpty(countContent)) 0 else countContent?.toInt() ?: 0) diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameAdapter.kt index 5dfbd44201..13bc953088 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameAdapter.kt @@ -7,13 +7,17 @@ import android.view.ViewGroup import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.GameItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBDownloadStatus diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameFragment.kt index 310c24235b..be1a462caf 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserPlayedGameFragment.kt @@ -2,12 +2,12 @@ package com.gh.gamecenter.personalhome.home.game import android.os.Bundle import android.view.View -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.DialogUtils -import com.gh.common.util.EntranceUtils.KEY_USER_ID -import com.gh.common.util.SPUtils -import com.gh.common.util.toColor -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.common.constant.EntranceConsts.KEY_USER_ID +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingActivity.kt b/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingActivity.kt index 44fc0f361b..d4a5c1e969 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingActivity.kt @@ -4,12 +4,12 @@ import android.content.Context import android.content.Intent import android.os.Bundle import androidx.lifecycle.ViewModelProviders -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListActivity import com.gh.gamecenter.baselist.NormalListViewModel +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp @@ -21,13 +21,14 @@ class RatingActivity : ListActivity>() { private var mUserId: String? = null override fun onCreate(savedInstanceState: Bundle?) { - mUserId = intent.getStringExtra(EntranceUtils.KEY_USER_ID) + mUserId = intent.getStringExtra(EntranceConsts.KEY_USER_ID) super.onCreate(savedInstanceState) if (mUserId == UserManager.getInstance().userId) { setNavigationTitle("我的评分") } else { setNavigationTitle("Ta的评分") } + updateStatusBarColor(R.color.black, R.color.white) } override fun provideListAdapter(): RatingAdapter { @@ -55,8 +56,8 @@ class RatingActivity : ListActivity>() { companion object { fun getIntent(context: Context, userId: String, entrance: String, path: String): Intent { val intent = Intent(context, RatingActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_USER_ID, userId) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_USER_ID, userId) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingAdapter.kt index 6dd26c2b27..ddeda00f62 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingAdapter.kt @@ -4,11 +4,11 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.NewsUtils -import com.gh.common.util.NumberUtils -import com.gh.common.util.fromHtml -import com.gh.common.util.setTextWithHighlightedTextWrappedInsideWrapper +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.common.utils.fromHtml +import com.gh.gamecenter.common.utils.setTextWithHighlightedTextWrappedInsideWrapper import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt index 312b8c2f6f..8d281598c3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt @@ -20,8 +20,8 @@ //import androidx.lifecycle.ViewModelProviders //import androidx.viewpager.widget.PagerAdapter //import butterknife.OnClick -//import com.gh.base.fragment.BaseLazyTabFragment -//import com.gh.common.dialog.TrackableDialog +//import com.gh.gamecenter.common.base.fragment.BaseLazyTabFragment +//import com.gh.gamecenter.common.base.TrackableDialog //import com.gh.common.util.* //import com.gh.common.view.GameIconView //import com.gh.gamecenter.R diff --git a/app/src/main/java/com/gh/gamecenter/qa/all/AskAllFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/all/AskAllFragment.kt index 7c5e3b60bd..4d5049a723 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/all/AskAllFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/all/AskAllFragment.kt @@ -5,10 +5,10 @@ //import android.view.View //import androidx.fragment.app.Fragment //import androidx.viewpager.widget.ViewPager -//import com.gh.base.adapter.FragmentAdapter -//import com.gh.base.fragment.BaseFragment -//import com.gh.common.util.MtaHelper -//import com.gh.common.view.DrawableView +//import com.gh.gamecenter.common.base.adapter.FragmentAdapter +//import com.gh.gamecenter.common.base.fragment.BaseFragment +//import com.gh.gamecenter.core.utils.MtaHelper +//import com.gh.gamecenter.common.view.DrawableView //import com.gh.gamecenter.R //import com.gh.gamecenter.databinding.FragmentAskAllBinding //import com.gh.gamecenter.manager.UserManager diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/BaseAnswerOrArticleItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/BaseAnswerOrArticleItemViewHolder.kt index e300b3a4cc..42c5ff3e9d 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/BaseAnswerOrArticleItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/BaseAnswerOrArticleItemViewHolder.kt @@ -4,10 +4,14 @@ import android.annotation.SuppressLint import android.view.View import android.widget.TextView import com.airbnb.lottie.LottieAnimationView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* import com.gh.common.view.GameIconView import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.debounceActionWithInterval +import com.gh.gamecenter.common.utils.doOnAnimationEnd +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.VoteEntity import com.gh.gamecenter.forum.detail.ForumDetailActivity @@ -20,8 +24,8 @@ import com.gh.gamecenter.qa.entity.QuestionsDetailEntity import com.gh.gamecenter.qa.questions.invite.QuestionsInviteActivity import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import com.lightgame.view.CheckableImageView diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt index ec2660dfb4..f6dcc6c183 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt @@ -9,8 +9,14 @@ import android.widget.LinearLayout import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat import com.gh.common.util.* +import com.gh.common.util.DialogUtils import com.gh.gamecenter.CollectionActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.entity.AnswerEntity @@ -128,29 +134,31 @@ class CommunityAnswerItemViewHolder(val binding: CommunityAnswerItemBinding) : B val user = entity.user binding.userBadgeName.setOnClickListener { binding.userBadgeIcon.performClick() } binding.userBadgeIcon.setOnClickListener { - DialogUtils.showViewBadgeDialog(binding.root.context, user.badge) { - var key = "" - if (path == "标签专栏-热门") { - key = "问题标签详情-热门" - } else if (path == "标签专栏-精华") { - key = "问题标签详情-精华" - } else if (path == "专栏-热门") { - key = "问答-专栏详情-热门" - } else if (path == "专栏-精华") { - key = "问答-专栏详情-精华" - } else if (path == "游戏详情-动态") { - key = "游戏详情-热门回答" - } else if (path == "问答-推荐-按精选" || path == "问答-推荐-按时间") { - key = "问答-推荐" - } else if (path == "问题详情" || path == "折叠答案") { - key = path - } else { - key = path // 默认就使用path字段吧,总比为空的好 + DialogUtils.showViewBadgeDialog(binding.root.context, user.badge, object : ConfirmListener { + override fun onConfirm() { + var key = "" + if (path == "标签专栏-热门") { + key = "问题标签详情-热门" + } else if (path == "标签专栏-精华") { + key = "问题标签详情-精华" + } else if (path == "专栏-热门") { + key = "问答-专栏详情-热门" + } else if (path == "专栏-精华") { + key = "问答-专栏详情-精华" + } else if (path == "游戏详情-动态") { + key = "游戏详情-热门回答" + } else if (path == "问答-推荐-按精选" || path == "问答-推荐-按时间") { + key = "问答-推荐" + } else if (path == "问题详情" || path == "折叠答案") { + key = path + } else { + key = path // 默认就使用path字段吧,总比为空的好 + } + MtaHelper.onEvent("进入徽章墙_用户记录", key, user.name + "(" + user.id + ")") + MtaHelper.onEvent("徽章中心", "进入徽章中心", key) + DirectUtils.directToBadgeWall(binding.root.context, user.id, user.name, user.icon) } - MtaHelper.onEvent("进入徽章墙_用户记录", key, user.name + "(" + user.id + ")") - MtaHelper.onEvent("徽章中心", "进入徽章中心", key) - DirectUtils.directToBadgeWall(binding.root.context, user.id, user.name, user.icon) - } + }) } val userClick = View.OnClickListener { DirectUtils.directToHomeActivity(binding.root.context, entity.user.id, entrance, path) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailActivity.java b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailActivity.java index fa20a46393..24eaaf4ed3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailActivity.java @@ -1,23 +1,23 @@ package com.gh.gamecenter.qa.answer.detail; +import static com.gh.gamecenter.common.constant.Constants.GAME_DETAIL_COME_IN; + import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.EntranceUtils; -import com.gh.gamecenter.NormalActivity; -import com.gh.gamecenter.entity.SpecialColumn; -import com.halo.assistant.HaloApp; - import androidx.annotation.NonNull; -import static com.gh.common.constant.Constants.GAME_DETAIL_COME_IN; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.entity.SpecialColumn; +import com.halo.assistant.HaloApp; /** * Created by khy on 10/04/18. */ -public class AnswerDetailActivity extends NormalActivity { +public class AnswerDetailActivity extends ToolBarActivity { public static final String TAG = "AnswerDetailActivity"; @Override @@ -46,21 +46,21 @@ public class AnswerDetailActivity extends NormalActivity { @NonNull public static Intent getIntent(Context context, String answerId, String entrance, String path, boolean isOpenCommentManager, SpecialColumn specialColumn) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ANSWER_ID, answerId); - bundle.putString(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)); - bundle.putBoolean(EntranceUtils.KEY_SHOW_ANSWER_COMMENT, isOpenCommentManager); - bundle.putString(EntranceUtils.KEY_PATH, path); - bundle.putParcelable(EntranceUtils.KEY_DATA, specialColumn); + bundle.putString(EntranceConsts.KEY_ANSWER_ID, answerId); + bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)); + bundle.putBoolean(EntranceConsts.KEY_SHOW_ANSWER_COMMENT, isOpenCommentManager); + bundle.putString(EntranceConsts.KEY_PATH, path); + bundle.putParcelable(EntranceConsts.KEY_DATA, specialColumn); return getTargetIntent(context, AnswerDetailActivity.class, AnswerDetailContainerFragment.class, bundle); } @NonNull public static Intent getRecommendsIntent(Context context, String answerId, String entrance, String path) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ANSWER_ID, answerId); - bundle.putString(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)); - bundle.putBoolean(EntranceUtils.KEY_RECOMMENDS_CONTENTS, true); - bundle.putString(EntranceUtils.KEY_PATH, path); + bundle.putString(EntranceConsts.KEY_ANSWER_ID, answerId); + bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)); + bundle.putBoolean(EntranceConsts.KEY_RECOMMENDS_CONTENTS, true); + bundle.putString(EntranceConsts.KEY_PATH, path); return getTargetIntent(context, AnswerDetailActivity.class, AnswerDetailContainerFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt index 11166eb0db..658452957b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailContainerFragment.kt @@ -4,15 +4,15 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.MenuItem import android.view.View -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.common.util.SyncDataBetweenPageHelper -import com.gh.common.util.observeNonNull -import com.gh.common.util.viewModelProviderFromParent +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.viewModelProviderFromParent import com.gh.gamecenter.databinding.FragmentAnswerDetailContainerBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment -class AnswerDetailContainerFragment : NormalFragment() { +class AnswerDetailContainerFragment : ToolbarFragment() { private lateinit var mFragmentAdapter: AnswerDetailFragmentStatePagerAdapter private lateinit var mContainerViewModel: AnswerDetailContainerViewModel @@ -45,7 +45,7 @@ class AnswerDetailContainerFragment : NormalFragment() { mContainerViewModel = viewModelProviderFromParent() - val answerId = arguments?.getString(EntranceUtils.KEY_ANSWER_ID) ?: "" + val answerId = arguments?.getString(EntranceConsts.KEY_ANSWER_ID) ?: "" if (!mContainerViewModel.answerIdList.contains(answerId)) { mContainerViewModel.answerIdList.add(answerId) } @@ -55,13 +55,13 @@ class AnswerDetailContainerFragment : NormalFragment() { if (fragment == null) { fragment = AnswerDetailFragment().apply { if (mHasPassedOneTimeArgumentToChild) { - this@AnswerDetailContainerFragment.arguments?.putBoolean(EntranceUtils.KEY_SHOW_ANSWER_COMMENT, false) - this@AnswerDetailContainerFragment.arguments?.putBoolean(EntranceUtils.KEY_RECOMMENDS_CONTENTS, false) + this@AnswerDetailContainerFragment.arguments?.putBoolean(EntranceConsts.KEY_SHOW_ANSWER_COMMENT, false) + this@AnswerDetailContainerFragment.arguments?.putBoolean(EntranceConsts.KEY_RECOMMENDS_CONTENTS, false) } // 将外部的 argument 传给里面的 fragment this.arguments = this@AnswerDetailContainerFragment.arguments - this.arguments?.putString(EntranceUtils.KEY_ANSWER_ID, id) + this.arguments?.putString(EntranceConsts.KEY_ANSWER_ID, id) mHasPassedOneTimeArgumentToChild = true fragments.add(this) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt index 50ff995441..1cf2c01eb4 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt @@ -20,25 +20,30 @@ import androidx.lifecycle.Observer import com.ethanhua.skeleton.Skeleton import com.ethanhua.skeleton.SkeletonScreen import com.facebook.drawee.view.SimpleDraweeView -import com.gh.base.ToolBarActivity -import com.gh.base.fragment.BaseFragment -import com.gh.common.AppExecutor -import com.gh.common.TimeElapsedHelper -import com.gh.common.constant.Constants.GAME_DETAIL_COME_IN +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.common.history.HistoryHelper import com.gh.common.util.* -import com.gh.common.view.DrawableView +import com.gh.common.util.DialogUtils +import com.gh.common.util.LogUtils import com.gh.common.view.RichEditor import com.gh.gamecenter.ImageViewerActivity -import com.gh.gamecenter.NormalActivity import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.Constants.GAME_DETAIL_COME_IN +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.entity.NormalShareEntity +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.DrawableView +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentAnswerDetailBinding import com.gh.gamecenter.databinding.PieceQuestionContentBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment import com.gh.gamecenter.personal.PersonalFragment import com.gh.gamecenter.qa.answer.edit.AnswerEditActivity import com.gh.gamecenter.qa.comment.CommentActivity @@ -57,7 +62,7 @@ import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode import java.io.IOException -open class AnswerDetailFragment : NormalFragment() { +open class AnswerDetailFragment : ToolbarFragment() { private var mPath: String? = "" private var mAnswerId: String = "" @@ -93,15 +98,15 @@ open class AnswerDetailFragment : NormalFragment() { onClickView() arguments?.let { - mAnswerId = it.getString(EntranceUtils.KEY_ANSWER_ID) ?: "" + mAnswerId = it.getString(EntranceConsts.KEY_ANSWER_ID) ?: "" - mIsShowCommentManager = it.getBoolean(EntranceUtils.KEY_SHOW_ANSWER_COMMENT, false) - mIsRecommendsAnswer = it.getBoolean(EntranceUtils.KEY_RECOMMENDS_CONTENTS, false) - mPath = it.getString(EntranceUtils.KEY_PATH) - mSpecialColumn = it.getParcelable(EntranceUtils.KEY_DATA) + mIsShowCommentManager = it.getBoolean(EntranceConsts.KEY_SHOW_ANSWER_COMMENT, false) + mIsRecommendsAnswer = it.getBoolean(EntranceConsts.KEY_RECOMMENDS_CONTENTS, false) + mPath = it.getString(EntranceConsts.KEY_PATH) + mSpecialColumn = it.getParcelable(EntranceConsts.KEY_DATA) mViewModel.getAnswerDetail(mAnswerId, mEntrance) } - + mBinding.richEditor.enableForceDark(NightModeUtils.isNightMode(requireContext())) mBinding.richEditor.setInputEnabled(false) mBinding.richEditor.setPadding(20, 15, 20, 15) mBinding.bottomController.replyTv.text = "说点什么吧" @@ -180,8 +185,8 @@ open class AnswerDetailFragment : NormalFragment() { (requestCode == ANSWER_PATCH_REQUEST || requestCode == ANSWER_POST_REQUEST) ) { if (mViewModel.answerDetail != null && requestCode == ANSWER_PATCH_REQUEST) { - if (mAnswerId == data.getStringExtra(EntranceUtils.KEY_ANSWER_ID)) { - mViewModel.answerDetail?.content = data.getStringExtra(EntranceUtils.KEY_ANSWER_CONTENT) ?: "" + if (mAnswerId == data.getStringExtra(EntranceConsts.KEY_ANSWER_ID)) { + mViewModel.answerDetail?.content = data.getStringExtra(EntranceConsts.KEY_ANSWER_CONTENT) ?: "" bindView(mViewModel.answerDetail) } } @@ -197,7 +202,7 @@ open class AnswerDetailFragment : NormalFragment() { ?: 0 ) - if (EntranceUtils.ENTRANCE_WELCOME == mEntrance) { + if (EntranceConsts.ENTRANCE_WELCOME == mEntrance) { LogUtils.uploadCommentFromWelcomeDialog() } } @@ -211,7 +216,7 @@ open class AnswerDetailFragment : NormalFragment() { } } else if (requestCode == MoreFunctionPanelDialog.REQUEST_CODE && resultCode == Activity.RESULT_OK) { mViewModel.answerDetail?.run { - getItemClickCallback(this).invoke(data.getParcelableExtra(EntranceUtils.KEY_DATA)) + getItemClickCallback(this).invoke(data.getParcelableExtra(EntranceConsts.KEY_DATA)) } } } @@ -272,7 +277,7 @@ open class AnswerDetailFragment : NormalFragment() { val activity = activity if (activity != null) { val data = Intent() - data.putExtra(EntranceUtils.KEY_ANSWER_ID, mAnswerId) + data.putExtra(EntranceConsts.KEY_ANSWER_ID, mAnswerId) activity.setResult(Activity.RESULT_OK, data) DialogHelper.showDialog( requireContext(), @@ -295,8 +300,8 @@ open class AnswerDetailFragment : NormalFragment() { mBinding.bottomShadowView.visibility = View.GONE } - if (activity is NormalActivity && mIsVisibleToUser) { - val menu = (activity as NormalActivity).menu + if (activity is ToolBarActivity && mIsVisibleToUser) { + val menu = (activity as ToolBarActivity).menu if (menu != null) { for (i in 0 until menu.size()) { menu.getItem(i).isVisible = false @@ -781,16 +786,9 @@ open class AnswerDetailFragment : NormalFragment() { if (mViewModel.answerDetail != null && !mViewModel.answerDetail!!.me.isAnswerVoted) { mViewModel.like(mAnswerId) - if (EntranceUtils.ENTRANCE_WELCOME == mEntrance) { + if (EntranceConsts.ENTRANCE_WELCOME == mEntrance) { LogUtils.uploadLikeFromWelcomeDialog() } - - DataUtils.onMtaEvent( - context, - "答案点赞量_社区加位置", - mViewModel.answerDetail?.community?.name, - mPath - ) } else { mViewModel.cancelLike(mAnswerId) } @@ -804,7 +802,6 @@ open class AnswerDetailFragment : NormalFragment() { mBinding.bottomController.replyTv.setOnClickListener { mViewModel.answerDetail?.run { if (commentable) { - DataUtils.onMtaEvent(context, "详情页面", "答案评论详情", content.subStringIfPossible(30)) showCommentDialog(true) } else { toast("作者已关闭评论") @@ -1109,11 +1106,13 @@ open class AnswerDetailFragment : NormalFragment() { mBinding.tvBadgeName.visibility = View.GONE } mBinding.sdvUserBadge.setOnClickListener { - DialogUtils.showViewBadgeDialog(requireContext(), user.badge) { - MtaHelper.onEvent("进入徽章墙_用户记录", "回答详情", "${user.name}(${user.id})") - MtaHelper.onEvent("徽章中心", "进入徽章中心", "回答详情") - DirectUtils.directToBadgeWall(requireContext(), user.id, user.name, user.icon) - } + DialogUtils.showViewBadgeDialog(requireContext(), user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("进入徽章墙_用户记录", "回答详情", "${user.name}(${user.id})") + MtaHelper.onEvent("徽章中心", "进入徽章中心", "回答详情") + DirectUtils.directToBadgeWall(requireContext(), user.id, user.name, user.icon) + } + }) } mBinding.tvBadgeName.setOnClickListener { mBinding.sdvUserBadge.performClick() } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailViewModel.kt index 0ae2c1713a..e0a4ac93f6 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailViewModel.kt @@ -6,18 +6,20 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.gh.common.history.HistoryHelper -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.StringUtils import com.gh.gamecenter.entity.SpecialColumn import com.gh.gamecenter.entity.VoteEntity import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.qa.entity.AnswerDetailEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers @@ -64,7 +66,6 @@ class AnswerDetailViewModel(application: Application) : AndroidViewModel(applica mAnswerLiveData.postValue(apiResponse) val content = Html.fromHtml(response!!.content).toString() - DataUtils.onMtaEvent(getApplication(), "详情页面", "答案详情", StringUtils.combineTwoString(content, answerId)) } override fun onFailure(e: HttpException?) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt index 5c06d50528..202e33bf7b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt @@ -3,11 +3,18 @@ package com.gh.gamecenter.qa.answer.detail import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class SimpleAnswerDetailActivity : NormalActivity() { +class SimpleAnswerDetailActivity : ToolBarActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } override fun provideNormalIntent(): Intent? { return getTargetIntent( @@ -17,13 +24,20 @@ class SimpleAnswerDetailActivity : NormalActivity() { ) } + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { @JvmStatic fun getIntent(context: Context, answerId: String, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ANSWER_ID, answerId) - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) - bundle.putString(EntranceUtils.KEY_PATH, path) + bundle.putString(EntranceConsts.KEY_ANSWER_ID, answerId) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_PATH, path) return getTargetIntent(context, SimpleAnswerDetailActivity::class.java, SimpleAnswerDetailFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftActivity.kt index 530917188e..f2b4f335d8 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftActivity.kt @@ -3,15 +3,15 @@ package com.gh.gamecenter.qa.answer.draft import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts -class AnswerDraftActivity : NormalActivity() { +class AnswerDraftActivity : ToolBarActivity() { companion object { fun getIntent(context: Context, answerId: String? = null): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ANSWER_ID, answerId) + bundle.putString(EntranceConsts.KEY_ANSWER_ID, answerId) return getTargetIntent(context, AnswerDraftActivity::class.java, AnswerDraftFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftAdapter.java index 8b29a294e6..1f59afbc0b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftAdapter.java @@ -9,11 +9,11 @@ import android.view.ViewGroup; import androidx.recyclerview.widget.RecyclerView; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.PermissionHelper; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.PermissionHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; @@ -24,7 +24,7 @@ import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.answer.edit.AnswerEditActivity; import com.gh.gamecenter.qa.entity.AnswerEntity; import com.gh.gamecenter.qa.myqa.AnswerDraftViewHolder; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.utils.Utils; diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftFragment.java b/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftFragment.java index 7da118c6e4..eda0dc33e8 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/draft/AnswerDraftFragment.java @@ -5,9 +5,9 @@ import android.os.Bundle; import androidx.annotation.Nullable; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.UrlFilterUtils; -import com.gh.common.view.CustomDividerItemDecoration; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.UrlFilterUtils; +import com.gh.gamecenter.common.view.CustomDividerItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; @@ -42,7 +42,7 @@ public class AnswerDraftFragment extends ListFragment(), Keyboa setToolbarMenu(R.menu.menu_answer_post) mMenuDraft = mToolbar.menu.findItem(R.id.menu_draft) mMenuPost = mToolbar.menu.findItem(R.id.menu_answer_post) - mCommunityName = intent?.getStringExtra(EntranceUtils.KEY_COMMUNITY_NAME) - mOpenAnswerInNewPage = intent?.getBooleanExtra(EntranceUtils.KEY_ANSWER_OPEN_IN_NEW_PAGE, false)!! + mCommunityName = intent?.getStringExtra(EntranceConsts.KEY_COMMUNITY_NAME) + mOpenAnswerInNewPage = intent?.getBooleanExtra(EntranceConsts.KEY_ANSWER_OPEN_IN_NEW_PAGE, false)!! mBinding = FragmentAnswerEditBinding.bind(mContentView) onClickView() addObserver() @@ -102,7 +107,7 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa mViewModel.cacheAnswerContent = mViewModel.answerContent mMenuDraft.isVisible = true - if (intent.getBooleanExtra(EntranceUtils.KEY_SHOW_EDIT_DRAFT, false)) { + if (intent.getBooleanExtra(EntranceConsts.KEY_SHOW_EDIT_DRAFT, false)) { mViewModel.getUserAnswerDrafts() } else { mRichEditor.setHtml(mViewModel.answerContent, false) @@ -121,9 +126,9 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa override fun provideViewModel(): AnswerEditViewModel { val factory = AnswerEditViewModel.Factory( HaloApp.getInstance().application, - intent?.getStringExtra(EntranceUtils.KEY_ANSWER_ID), - intent?.getStringExtra(EntranceUtils.KEY_ANSWER_CONTENT), - intent?.getStringExtra(EntranceUtils.KEY_DRAFT_ID), + intent?.getStringExtra(EntranceConsts.KEY_ANSWER_ID), + intent?.getStringExtra(EntranceConsts.KEY_ANSWER_CONTENT), + intent?.getStringExtra(EntranceConsts.KEY_DRAFT_ID), intent?.getParcelableExtra(Questions::class.java.simpleName) ?: Questions() ) mViewModel = ViewModelProviders.of(this, factory).get(AnswerEditViewModel::class.java) @@ -165,8 +170,8 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa } val data = Intent() - data.putExtra(EntranceUtils.KEY_ANSWER_CONTENT, getReplaceRealContent()) - data.putExtra(EntranceUtils.KEY_ANSWER_ID, answerId ?: mViewModel.answerId) + data.putExtra(EntranceConsts.KEY_ANSWER_CONTENT, getReplaceRealContent()) + data.putExtra(EntranceConsts.KEY_ANSWER_ID, answerId ?: mViewModel.answerId) setResult(Activity.RESULT_OK, data) if (mOpenAnswerInNewPage) { val intent = AnswerDetailActivity @@ -211,12 +216,15 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa mProcessingDialog = WaitingDialogFragment.newInstance(it.msg, false) mProcessingDialog?.show(supportFragmentManager, null) { if (mViewModel.uploadImageSubscription != null && !mViewModel.uploadImageSubscription!!.isDisposed) { - mUploadImageCancelDialog = DialogUtils.showAlertDialog(this, "提示", "图片正在上传中,确定取消吗?", "确定", "取消", { - mViewModel.uploadImageSubscription?.dispose() - mUploadImageCancelDialog?.dismiss() - mProcessingDialog?.dismiss() - }, null) - + mUploadImageCancelDialog = DialogUtils.showAlertDialog(this, "提示", "图片正在上传中,确定取消吗?", + "确定", "取消", object : ConfirmListener { + override fun onConfirm() { + mViewModel.uploadImageSubscription?.dispose() + mUploadImageCancelDialog?.dismiss() + mProcessingDialog?.dismiss() + } + }, null + ) } } } @@ -242,7 +250,7 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa mViewModel.saveDraftsLiveData.observeNonNull(this) { if (it) { val data = Intent() - data.putExtra(EntranceUtils.KEY_ANSWER_CONTENT, getReplaceRealContent()) + data.putExtra(EntranceConsts.KEY_ANSWER_CONTENT, getReplaceRealContent()) setResult(SAVE_DRAFTS, data) finish() } else { @@ -501,9 +509,9 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa showHintBackground: Boolean = false ): Intent { val intent = Intent(context, AnswerEditActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_NAME, communityName) - intent.putExtra(EntranceUtils.KEY_HINT, showHintBackground) + intent.putExtra(EntranceConsts.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_NAME, communityName) + intent.putExtra(EntranceConsts.KEY_HINT, showHintBackground) intent.putExtra(Questions::class.java.simpleName, question) return intent } @@ -513,9 +521,9 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa */ fun getIntent(context: Context, question: Questions?, draftId: String?, showInNewPage: Boolean?, communityName: String?): Intent { val intent = Intent(context, AnswerEditActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage) - intent.putExtra(EntranceUtils.KEY_DRAFT_ID, draftId) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_NAME, communityName) + intent.putExtra(EntranceConsts.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage) + intent.putExtra(EntranceConsts.KEY_DRAFT_ID, draftId) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_NAME, communityName) intent.putExtra(Questions::class.java.simpleName, question) return intent } @@ -525,7 +533,7 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa */ fun getIntent(context: Context, question: Questions?, communityName: String?): Intent { val intent = Intent(context, AnswerEditActivity::class.java) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_NAME, communityName) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_NAME, communityName) intent.putExtra(Questions::class.java.simpleName, question) return intent } @@ -543,12 +551,12 @@ class AnswerEditActivity : BaseRichEditorActivity(), Keyboa showInNewPage: Boolean = false ): Intent { val intent = Intent(context, AnswerEditActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ANSWER_ID, answerId) - intent.putExtra(EntranceUtils.KEY_ANSWER_CONTENT, content) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_NAME, communityName) - intent.putExtra(EntranceUtils.KEY_SHOW_EDIT_DRAFT, showEditDraft) + intent.putExtra(EntranceConsts.KEY_ANSWER_ID, answerId) + intent.putExtra(EntranceConsts.KEY_ANSWER_CONTENT, content) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_NAME, communityName) + intent.putExtra(EntranceConsts.KEY_SHOW_EDIT_DRAFT, showEditDraft) intent.putExtra(Questions::class.java.simpleName, question) - intent.putExtra(EntranceUtils.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage) + intent.putExtra(EntranceConsts.KEY_ANSWER_OPEN_IN_NEW_PAGE, showInNewPage) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditViewModel.kt index 9c6ebae86f..d249b4a3ac 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditViewModel.kt @@ -3,10 +3,10 @@ package com.gh.gamecenter.qa.answer.edit import android.app.Application import android.text.TextUtils import androidx.lifecycle.* -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.eventbus.EBReuse @@ -14,9 +14,11 @@ import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mvvm.Resource import com.gh.base.BaseRichEditorViewModel import com.gh.base.RichType +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.qa.entity.AnswerDraftEntity import com.gh.gamecenter.qa.entity.Questions -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.lightgame.utils.Utils import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldActivity.java b/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldActivity.java index 688577ccde..a55d0c2b04 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldActivity.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldActivity.java @@ -4,19 +4,19 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.EntranceUtils; -import com.gh.gamecenter.NormalActivity; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.common.constant.EntranceConsts; /** * Created by khy on 10/04/18. */ -public class AnswerFoldActivity extends NormalActivity { +public class AnswerFoldActivity extends ToolBarActivity { public static Intent getIntent(Context context, String questionsId, String entrance) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_QUESTIONS_ID, questionsId); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_QUESTIONS_ID, questionsId); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, AnswerFoldActivity.class, AnswerFoldFragment.class, bundle); } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldAdapter.java index 27ae1d4164..f43eb6c06e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldAdapter.java @@ -4,9 +4,9 @@ import android.content.Context; import android.view.View; import android.view.ViewGroup; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.syncpage.ISyncAdapterHandler; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldFragment.java b/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldFragment.java index f9360e942d..7b1e18b1aa 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/fold/AnswerFoldFragment.java @@ -6,9 +6,9 @@ import android.view.View; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.UrlFilterUtils; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.UrlFilterUtils; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; @@ -35,8 +35,8 @@ public class AnswerFoldFragment extends ListFragment startActivity(NewsDetailActivity.getIntentById(getContext(), diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleActivity.kt index 4fccc24c72..95eb705b80 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleActivity.kt @@ -3,11 +3,11 @@ package com.gh.gamecenter.qa.article import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts -class MyArticleActivity : NormalActivity() { +class MyArticleActivity : ToolBarActivity() { companion object { const val PUBLISH_ARTICLE_REQUEST_CODE = 102 @@ -15,8 +15,8 @@ class MyArticleActivity : NormalActivity() { @JvmStatic fun getIntent(context: Context, userId: String, entrance: String, path: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_USER_ID, userId) - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_USER_ID, userId) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) return getTargetIntent(context, MyArticleActivity::class.java, MyArticleFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleAdapter.kt index 22639c0e41..66e451fd08 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleAdapter.kt @@ -4,12 +4,12 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.forum.home.ForumArticleAskItemViewHolder import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt index 2f6c3c986e..afdb776163 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/MyArticleFragment.kt @@ -7,12 +7,16 @@ import android.view.MenuItem import android.view.View import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.* -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.baselist.NormalListViewModel +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.checkStoragePermissionBeforeAction +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.article.edit.ArticleEditActivity import com.gh.gamecenter.qa.entity.AnswerEntity @@ -41,15 +45,13 @@ class MyArticleFragment : ListFragment>? { return RetrofitManager.getInstance().api.getMyArticleAndQuestion(mTargetUserId, page) - .flatMap(object :Function, Observable>>{ - override fun apply(list: List): Observable> { - return Observable.create { emitter-> - val articleList = list.map { it.transformArticleEntity() }.toMutableList() - emitter.onNext(articleList) - emitter.onComplete() - } - } - }) + .flatMap { list -> + Observable.create { emitter -> + val articleList = list.map { it.transformArticleEntity() }.toMutableList() + emitter.onNext(articleList) + emitter.onComplete() + } + } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -65,7 +67,7 @@ class MyArticleFragment : ListFragment 0) { + mListRv.removeItemDecorationAt(0) + mListRv.addItemDecoration(itemDecoration) + } + } + companion object { @JvmStatic fun getInstance(entrance: String?, userId: String): MyArticleFragment { val fragment = MyArticleFragment() val args = Bundle() - args.putString(EntranceUtils.KEY_ENTRANCE, entrance) - args.putString(EntranceUtils.KEY_USER_ID, userId) + args.putString(EntranceConsts.KEY_ENTRANCE, entrance) + args.putString(EntranceConsts.KEY_USER_ID, userId) fragment.arguments = args return fragment } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListActivity.kt index 880a3b2834..bd1e9fc3c3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListActivity.kt @@ -3,7 +3,7 @@ //import android.content.Context //import android.content.Intent //import android.os.Bundle -//import com.gh.base.BaseActivity +//import com.gh.gamecenter.common.base.BaseActivity //import com.gh.common.util.EntranceUtils //import com.gh.gamecenter.NormalActivity // diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListAdapter.kt index 1329ba3392..31c1041d39 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListAdapter.kt @@ -4,8 +4,8 @@ //import android.view.View //import android.view.ViewGroup //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.constant.ItemViewType -//import com.gh.common.syncpage.ISyncAdapterHandler +//import com.gh.gamecenter.common.constant.ItemViewType +//import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler //import com.gh.gamecenter.R //import com.gh.gamecenter.adapter.viewholder.FooterViewHolder //import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListFragment.kt index ba7705e2d0..24867d07b6 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/SimpleArticleListFragment.kt @@ -4,10 +4,10 @@ //import android.os.Bundle //import android.view.View //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.constant.Constants +//import com.gh.gamecenter.common.constant.Constants //import com.gh.common.util.EntranceUtils -//import com.gh.common.util.viewModelProvider -//import com.gh.common.view.VerticalItemDecoration +//import com.gh.gamecenter.common.utils.viewModelProvider +//import com.gh.gamecenter.common.view.VerticalItemDecoration //import com.gh.gamecenter.baselist.ListFragment //import com.gh.gamecenter.baselist.LoadStatus //import com.gh.gamecenter.baselist.LoadType diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt index 7c36df7aea..306e5492fd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt @@ -3,14 +3,14 @@ package com.gh.gamecenter.qa.article.detail import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.SpecialColumn -class ArticleDetailActivity : NormalActivity() { +class ArticleDetailActivity : ToolBarActivity() { override fun getLayoutId() = R.layout.activity_amway @@ -21,7 +21,7 @@ class ArticleDetailActivity : NormalActivity() { // TODO 让状态栏透明 // DisplayUtils.transparentStatusBar(this) - DisplayUtils.setLightStatusBar(this, true) + updateStatusBarColor(R.color.black, R.color.white) } override fun provideNormalIntent(): Intent { @@ -30,10 +30,19 @@ class ArticleDetailActivity : NormalActivity() { override fun getBusinessId(): Pair { return Pair( - targetFragment.arguments?.getString(EntranceUtils.KEY_COMMUNITY_ARTICLE_ID) ?: "", - targetFragment.arguments?.getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)?.id ?: "") + targetFragment.arguments?.getString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID) ?: "", + targetFragment.arguments?.getParcelable(EntranceConsts.KEY_COMMUNITY_DATA)?.id ?: "" + ) } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + + companion object { const val ARTICLE_PATCH_REQUEST = 123 @@ -47,11 +56,11 @@ class ArticleDetailActivity : NormalActivity() { specialColumn: SpecialColumn? = null ): Intent { val intent = Intent(context, ArticleDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_ARTICLE_ID, articleId) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_DATA, community) - intent.putExtra(EntranceUtils.KEY_PATH, path) - intent.putExtra(EntranceUtils.KEY_DATA, specialColumn) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community) + intent.putExtra(EntranceConsts.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_DATA, specialColumn) return intent } @@ -67,11 +76,11 @@ class ArticleDetailActivity : NormalActivity() { path: String ): Intent { val intent = Intent(context, ArticleDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_ARTICLE_ID, articleId) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_DATA, community) - intent.putExtra(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, true) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community) + intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } @@ -85,11 +94,33 @@ class ArticleDetailActivity : NormalActivity() { path: String, ): Intent { val intent = Intent(context, ArticleDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_ARTICLE_ID, articleId) - intent.putExtra(EntranceUtils.KEY_RECOMMEND_ID, recommendId) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_DATA, community) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) + intent.putExtra(EntranceConsts.KEY_RECOMMEND_ID, recommendId) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community) + intent.putExtra(EntranceConsts.KEY_PATH, path) + return intent + } + + /** + * 定位到指定的评论并置顶 + */ + @JvmStatic + fun getSpecifiedCommentIntent( + context: Context, + community: CommunityEntity, + articleId: String, + topCommentId: String, + entrance: String, + path: String + ): Intent { + val intent = Intent(context, ArticleDetailActivity::class.java) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community) + intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true) + intent.putExtra(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt index 910b923532..9b1a978a7f 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailContentViewHolder.kt @@ -9,11 +9,17 @@ import android.widget.LinearLayout import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.gh.common.DefaultUrlHandler -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.common.view.RichEditor import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemArticleDetailContentBinding import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.editor.OnLinkClickListener @@ -31,6 +37,7 @@ class ArticleDetailContentViewHolder( @SuppressLint("AddJavascriptInterface") fun bindView(article: ArticleDetailEntity) { binding.run { + richEditor.enableForceDark(NightModeUtils.isNightMode(binding.root.context)) richEditor.setInputEnabled(false) richEditor.setPadding(16, 4, 16, 4) richEditor.addJavascriptInterface(JsInterface(article.status ?: ""), "imagelistener") @@ -134,7 +141,7 @@ class ArticleDetailContentViewHolder( ) } labelIv.goneIf(article.getSimplifyChoicenessStatus() != "pass") - if (article.getSimplifyChoicenessStatus() == "pass"){ + if (article.getSimplifyChoicenessStatus() == "pass") { labelIv.setImageDrawable(R.drawable.ic_essence_label.toDrawable()) } titleTv.text = article.title @@ -194,20 +201,22 @@ class ArticleDetailContentViewHolder( badgeTv.text = article.user.badge?.name ImageUtils.display(badgeIv, article.user.badge?.icon) badgeIv.setOnClickListener { - DialogUtils.showViewBadgeDialog(root.context, article.user.badge) { - MtaHelper.onEvent( - "进入徽章墙_用户记录", - "帖子详情", - "${article.user.name}(${article.user.id})" - ) - MtaHelper.onEvent("徽章中心", "进入徽章中心", "帖子详情") - DirectUtils.directToBadgeWall( - root.context, - viewModel.detailEntity?.user?.id, - article.user.name, - article.user.icon - ) - } + DialogUtils.showViewBadgeDialog(root.context, article.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent( + "进入徽章墙_用户记录", + "帖子详情", + "${article.user.name}(${article.user.id})" + ) + MtaHelper.onEvent("徽章中心", "进入徽章中心", "帖子详情") + DirectUtils.directToBadgeWall( + root.context, + viewModel.detailEntity?.user?.id, + article.user.name, + article.user.icon + ) + } + }) } badgeTv.setOnClickListener { badgeIv.performClick() } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt index 682f91fb70..8c678a9301 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt @@ -16,17 +16,24 @@ import androidx.core.view.ViewCompat import androidx.lifecycle.Lifecycle import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.TimeElapsedHelper -import com.gh.common.constant.Constants +import com.gh.gamecenter.core.utils.TimeElapsedHelper +import com.gh.gamecenter.common.constant.Constants import com.gh.common.history.HistoryHelper -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.entity.AdditionalParamsEntity +import com.gh.gamecenter.common.entity.NormalShareEntity +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentArticleDetailBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBDeleteCommentDetail @@ -78,9 +85,9 @@ class ArticleDetailFragment : BaseCommentFragment(EntranceUtils.KEY_COMMUNITY_DATA)?.id ?: "", - arguments?.getString(EntranceUtils.KEY_RECOMMEND_ID) ?: "" + arguments?.getString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID) ?: "", + arguments?.getParcelable(EntranceConsts.KEY_COMMUNITY_DATA)?.id ?: "", + arguments?.getString(EntranceConsts.KEY_RECOMMEND_ID) ?: "", + arguments?.getString(EntranceConsts.KEY_TOP_COMMENT_ID) ?: "" ) ) } @@ -239,7 +247,7 @@ class ArticleDetailFragment : BaseCommentFragment() override fun provideDataObservable(page: Int): Observable> { + val map = hashMapOf() + if (topCommentId.isNotEmpty()) { + map["top_comment_id"] = topCommentId + } return RetrofitManager.getInstance().api.getCommunityArticleCommentList( communityId, articleId, currentSortType.value, - page + page, + map ) } @@ -405,7 +415,8 @@ class ArticleDetailViewModel( private val application: Application, private val articleId: String = "", private val communityId: String = "", - private val recommendId: String = "" + private val recommendId: String = "", + private val topCommentId: String = "" ) : ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { @@ -413,7 +424,8 @@ class ArticleDetailViewModel( application = application, articleId = articleId, communityId = communityId, - recommendId = recommendId + recommendId = recommendId, + topCommentId = topCommentId ) as T } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentActivity.kt index dcaad9334f..b45162e564 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentActivity.kt @@ -3,14 +3,14 @@ package com.gh.gamecenter.qa.article.detail.comment import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.DisplayUtils // 帖子评论详情 @Deprecated("废弃") -class ArticleDetailCommentActivity : NormalActivity() { +class ArticleDetailCommentActivity : ToolBarActivity() { override fun getLayoutId() = R.layout.activity_amway @@ -38,13 +38,13 @@ class ArticleDetailCommentActivity : NormalActivity() { entrance: String, path: String): Intent { val intent = Intent(context, ArticleDetailCommentActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_ARTICLE_ID, articleId) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_ID, communityId) - intent.putExtra(EntranceUtils.KEY_POSITION, position) - intent.putExtra(EntranceUtils.KEY_ARTICLE_COMMENT_ID, commentId) - intent.putExtra(EntranceUtils.KEY_SHOW_KEYBOARD_IF_NEEDED, showKeyboard) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ID, communityId) + intent.putExtra(EntranceConsts.KEY_POSITION, position) + intent.putExtra(EntranceConsts.KEY_ARTICLE_COMMENT_ID, commentId) + intent.putExtra(EntranceConsts.KEY_SHOW_KEYBOARD_IF_NEEDED, showKeyboard) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt index 39044b4f74..3c57e997ee 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentAdapter.kt @@ -6,7 +6,7 @@ import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.databinding.ItemArticleDetailCommentBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.qa.comment.base.BaseCommentAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt index 267ffb7bdc..49c6923b87 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt @@ -6,11 +6,16 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import com.ethanhua.skeleton.Skeleton -import com.gh.common.AppExecutor -import com.gh.common.util.* +import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.setDebouncedClickListener +import com.gh.gamecenter.common.utils.setRoundedColorBackground +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.FragmentArticleDetailCommentBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.manager.UserManager @@ -33,7 +38,7 @@ class ArticleDetailCommentFragment : BaseCommentFragment { @@ -114,8 +119,12 @@ class ArticleDetailCommentFragment : BaseCommentFragment { mReuseNoConn?.visibility = View.GONE mListLoading?.visibility = View.GONE - val showKeyboard = arguments?.getBoolean(EntranceUtils.KEY_SHOW_KEYBOARD_IF_NEEDED) - ?: false + +// GdtHelper.logAction(ActionType.PAGE_VIEW, +// GdtHelper.CONTENT_TYPE, "QA_ARTICLE", +// GdtHelper.CONTENT_ID, mViewModel.articleId) + + val showKeyboard = arguments?.getBoolean(EntranceConsts.KEY_SHOW_KEYBOARD_IF_NEEDED)?: false if (showKeyboard) { mBinding.inputContainer.replyTv.performClick() } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentViewModel.kt index 810ee373f2..e8e920496d 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentViewModel.kt @@ -7,7 +7,7 @@ import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.qa.comment.base.BaseCommentViewModel import com.gh.gamecenter.qa.article.detail.CommentItemData -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.Single @@ -31,7 +31,7 @@ class ArticleDetailCommentViewModel(application: Application, } override fun provideDataSingle(page: Int): Single> { - return RetrofitManager.getInstance().api.getCommunityArticleCommentReply(communityId, articleId, commentId, currentSortType.value, page) + return RetrofitManager.getInstance().api.getCommunityArticleCommentReply(communityId, articleId, commentId, currentSortType.value, page, mapOf()) } @SuppressLint("CheckResult") diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftActivity.kt index ec7139bdce..46ad558982 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftActivity.kt @@ -3,16 +3,30 @@ package com.gh.gamecenter.qa.article.draft import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class ArticleDraftActivity : NormalActivity() { +class ArticleDraftActivity : ToolBarActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } + + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } companion object { fun getIntent(context: Context, articleId: String? = null, onlyCreateDraft: Boolean = false): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_COMMUNITY_ARTICLE_ID, articleId) - bundle.putBoolean(EntranceUtils.KEY_ONLY_CREATE_DRAFT, onlyCreateDraft) + bundle.putString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) + bundle.putBoolean(EntranceConsts.KEY_ONLY_CREATE_DRAFT, onlyCreateDraft) return getTargetIntent(context, ArticleDraftActivity::class.java, ArticleDraftFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt index d36202597c..94e48d0840 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt @@ -5,9 +5,9 @@ import android.text.TextUtils import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat -import com.gh.common.constant.ItemViewType -import com.gh.common.util.DialogHelper -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftFragment.kt index 104b93081b..1666d9b1cd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftFragment.kt @@ -6,10 +6,10 @@ import android.os.Bundle import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.EntranceUtils -import com.gh.common.util.UrlFilterUtils -import com.gh.common.util.checkStoragePermissionBeforeAction -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.UrlFilterUtils +import com.gh.gamecenter.common.utils.checkStoragePermissionBeforeAction +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType @@ -18,9 +18,8 @@ import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.article.edit.ArticleEditActivity import com.gh.gamecenter.qa.draft.CommunityDraftWrapperActivity -import com.gh.gamecenter.qa.entity.ArticleDetailEntity import com.gh.gamecenter.qa.entity.ArticleDraftEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.Observable @@ -39,9 +38,7 @@ class ArticleDraftFragment : ListFragment() { - override fun onResponse(response: ResponseBody?) { - val index = mAdapter?.entityList?.indexOf(entity) ?: -1 - if (index >= 0) { - mAdapter?.entityList?.remove(entity) - if (mAdapter?.entityList.isNullOrEmpty()) { - mListViewModel.load(LoadType.REFRESH) - } else { - mAdapter?.notifyItemRemoved(index) - } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Response() { + override fun onResponse(response: ResponseBody?) { + val index = mAdapter?.entityList?.indexOf(entity) ?: -1 + if (index >= 0) { + mAdapter?.entityList?.remove(entity) + if (mAdapter?.entityList.isNullOrEmpty()) { + mListViewModel.load(LoadType.REFRESH) + } else { + mAdapter?.notifyItemRemoved(index) } } + } - override fun onFailure(e: HttpException?) { - toast(R.string.post_failure_hint) - } - }) + override fun onFailure(e: HttpException?) { + toast(R.string.post_failure_hint) + } + }) } @Subscribe(threadMode = ThreadMode.MAIN) @@ -129,4 +127,12 @@ class ArticleDraftFragment : ListFragment 0) { + mListRv?.removeItemDecorationAt(0) + mListRv?.addItemDecoration(itemDecoration) + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftViewHolder.kt index 857c5d4917..c755a0d02e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.qa.article.draft -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.CommunityArticleDraftItemBinding class ArticleDraftViewHolder(val binding: CommunityArticleDraftItemBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt index 749e555c07..c784489c61 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt @@ -15,11 +15,16 @@ import androidx.core.widget.doOnTextChanged import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import com.gh.base.BaseRichEditorActivity -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants -import com.gh.common.util.* +import com.gh.common.util.ErrorHelper +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ActivityCommunityArticleEditBinding import com.gh.gamecenter.entity.ActivityLabelEntity import com.gh.gamecenter.entity.CommunityEntity @@ -83,7 +88,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), Keyb setArticleDraft() } } else if (requestCode == ChooseForumActivity.CHOOSE_FORUM_REQUEST) { - val community = data.getParcelableExtra(EntranceUtils.KEY_COMMUNITY_DATA) + val community = data.getParcelableExtra(EntranceConsts.KEY_COMMUNITY_DATA) mViewModel.type = community?.type ?: "" mViewModel.mSelectCommunityData = community if (mViewModel.type == BbsType.GAME_BBS.value) { @@ -101,7 +106,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), Keyb override fun onActivityDialogResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == ChooseActivityDialogFragment.REQUEST_CODE && resultCode == Activity.RESULT_OK) { - getChooseSelectCallback().invoke(data?.getParcelableExtra(EntranceUtils.KEY_DATA)) + getChooseSelectCallback().invoke(data?.getParcelableExtra(EntranceConsts.KEY_DATA)) } } @@ -157,7 +162,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), Keyb mViewModel = ViewModelProviders.of(this).get(ArticleEditViewModel::class.java) mViewModel.detailEntity = intent.getParcelableExtra(ArticleDetailEntity::class.java.simpleName) mViewModel.draftEntity = intent.getParcelableExtra(ArticleDraftEntity::class.java.simpleName) - mViewModel.openArticleInNewPage = intent.getBooleanExtra(EntranceUtils.KEY_ARTICLE_OPEN_IN_NEW_PAGE, false) + mViewModel.openArticleInNewPage = intent.getBooleanExtra(EntranceConsts.KEY_ARTICLE_OPEN_IN_NEW_PAGE, false) return mViewModel } @@ -220,11 +225,14 @@ class ArticleEditActivity : BaseRichEditorActivity(), Keyb mProcessingDialog = WaitingDialogFragment.newInstance(it.msg, false) mProcessingDialog?.show(supportFragmentManager, null) { if (mViewModel.uploadImageSubscription != null && !mViewModel?.uploadImageSubscription!!.isDisposed) { - mUploadImageCancelDialog = DialogUtils.showAlertDialog(this, "提示", "图片正在上传中,确定取消吗?", "确定", "取消", { - mViewModel.uploadImageSubscription!!.dispose() - mUploadImageCancelDialog?.dismiss() - mProcessingDialog?.dismiss() - }, null) + mUploadImageCancelDialog = DialogUtils.showAlertDialog(this, "提示", "图片正在上传中,确定取消吗?", + "确定", "取消", object :ConfirmListener{ + override fun onConfirm() { + mViewModel.uploadImageSubscription!!.dispose() + mUploadImageCancelDialog?.dismiss() + mProcessingDialog?.dismiss() + } + }, null) } } } @@ -607,7 +615,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), Keyb val intent = Intent(context, ArticleEditActivity::class.java) intent.putExtra(ArticleDetailEntity::class.java.simpleName, detailEntity) intent.putExtra(ArticleDraftEntity::class.java.simpleName, draftEntity) - intent.putExtra(EntranceUtils.KEY_ARTICLE_OPEN_IN_NEW_PAGE, showInNewPage) + intent.putExtra(EntranceConsts.KEY_ARTICLE_OPEN_IN_NEW_PAGE, showInNewPage) return intent } @@ -615,7 +623,7 @@ class ArticleEditActivity : BaseRichEditorActivity(), Keyb fun getDraftIntent(context: Context, draftEntity: ArticleDraftEntity, showInNewPage: Boolean = true): Intent { val intent = Intent(context, ArticleEditActivity::class.java) intent.putExtra(ArticleDraftEntity::class.java.simpleName, draftEntity) - intent.putExtra(EntranceUtils.KEY_ARTICLE_OPEN_IN_NEW_PAGE, showInNewPage) + intent.putExtra(EntranceConsts.KEY_ARTICLE_OPEN_IN_NEW_PAGE, showInNewPage) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt index e0cd7e334d..6a7ecc131e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditViewModel.kt @@ -5,7 +5,7 @@ import android.text.TextUtils import android.view.Gravity import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.entity.CommunityEntity @@ -13,13 +13,16 @@ import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.manager.UserManager import com.gh.base.BaseRichEditorViewModel import com.gh.base.RichType +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.HtmlUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.ActivityLabelEntity import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.qa.BbsType import com.gh.gamecenter.qa.entity.ArticleDetailEntity import com.gh.gamecenter.qa.entity.ArticleDraftEntity import com.gh.gamecenter.qa.questions.edit.QuestionEditViewModel -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleSelectGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleSelectGameAdapter.kt deleted file mode 100644 index 569830a18e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleSelectGameAdapter.kt +++ /dev/null @@ -1,60 +0,0 @@ -package com.gh.gamecenter.qa.article.edit - -import android.content.Context -import android.view.View -import android.view.ViewGroup -import android.widget.ProgressBar -import com.gh.common.util.CommunityHelper -import com.gh.common.util.UrlFilterUtils -import com.gh.gamecenter.databinding.DialogSelectGameItemBinding -import com.gh.gamecenter.qa.entity.CommunitySelectEntity -import com.gh.gamecenter.retrofit.Response -import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.suggest.SelectGameViewHolder -import com.halo.assistant.HaloApp -import com.lightgame.adapter.BaseRecyclerAdapter -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.schedulers.Schedulers - -class ArticleSelectGameAdapter(context: Context, loading: ProgressBar, - private val callback: (CommunitySelectEntity) -> Unit) : BaseRecyclerAdapter(context) { - - private val mList = ArrayList() - - init { - RetrofitManager.getInstance().api - .getAskGameSelect(HaloApp.getInstance().channel - , UrlFilterUtils.getFilterQuery("status", "opened"), 1, 1000) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response>() { - override fun onResponse(response: List?) { - if (response != null) { - loading.visibility = View.GONE - - val sortedList = CommunityHelper.sortOpenedCommunity(response) - - mList.clear() - mList.addAll(sortedList) - notifyDataSetChanged() - } - } - }) - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SelectGameViewHolder { - return SelectGameViewHolder(DialogSelectGameItemBinding.inflate(mLayoutInflater, parent, false)) - } - - override fun getItemCount(): Int { - return mList.size - } - - override fun onBindViewHolder(holder: SelectGameViewHolder, position: Int) { - val entity = mList[position] - holder.binding.gameIcon.displayGameIcon(entity.game.getRawIconIfExisted(), entity.game.iconSubscript) - holder.binding.gameName.text = entity.name - holder.binding.root.setOnClickListener { callback.invoke(entity) } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt index 9c79cdd7ec..6d74b381ec 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleTagsSelectFragment.kt @@ -14,12 +14,12 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.base.fragment.BaseFragment -import com.gh.common.AppExecutor +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.NotificationHelper -import com.gh.common.util.TextHelper -import com.gh.common.util.dip2px -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.R import com.gh.gamecenter.databinding.QuestionsEditTagBinding import com.gh.gamecenter.entity.NotificationUgc diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnAdapter.kt index 50c785f29a..7fcdb734a9 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnAdapter.kt @@ -2,7 +2,7 @@ // //import android.content.Context //import android.view.ViewGroup -//import com.gh.base.BaseRecyclerViewHolder +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder //import com.gh.common.util.DataUtils //import com.gh.gamecenter.R //import com.gh.gamecenter.databinding.AskColumnTagItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnFragment.kt index c042d0c3bc..9720f4d8d2 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnFragment.kt @@ -6,8 +6,8 @@ //import androidx.lifecycle.Observer //import androidx.lifecycle.ViewModelProviders //import androidx.recyclerview.widget.GridLayoutManager -//import com.gh.base.fragment.BaseFragment -//import com.gh.common.view.GridDivider +//import com.gh.gamecenter.common.base.fragment.BaseFragment +//import com.gh.gamecenter.common.view.GridDivider //import com.gh.gamecenter.R //import com.gh.gamecenter.databinding.FragmentAskColumnBinding //import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnRepository.java b/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnRepository.java index 6558be0b26..a350eeb5fb 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnRepository.java +++ b/app/src/main/java/com/gh/gamecenter/qa/column/AskColumnRepository.java @@ -5,12 +5,12 @@ import android.content.Context; import android.text.TextUtils; import com.gh.common.util.ErrorHelper; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.entity.AskTagGroupsEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; -import com.gh.gamecenter.user.ApiResponse; +import com.gh.gamecenter.common.retrofit.ApiResponse; import com.halo.assistant.HaloApp; import java.util.ArrayList; diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt index 42e0e09ba6..e6eab50d75 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/AskColumnDetailActivity.kt @@ -8,10 +8,10 @@ //import android.view.ViewGroup //import android.widget.LinearLayout //import androidx.fragment.app.Fragment -//import com.gh.base.ToolBarActivity -//import com.gh.base.adapter.FragmentAdapter -//import com.gh.base.fragment.BaseFragment_TabLayout -//import com.gh.common.util.DisplayUtils +//import com.gh.gamecenter.common.base.ToolBarActivity +//import com.gh.gamecenter.common.base.adapter.FragmentAdapter +//import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout +//import com.gh.gamecenter.core.utils.DisplayUtils //import com.gh.common.util.EntranceUtils //import com.gh.gamecenter.R //import com.gh.gamecenter.databinding.ActivityAskColumnDetailBinding diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotAdapter.kt index 49a8a54739..b2acc41341 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotAdapter.kt @@ -3,8 +3,8 @@ //import android.content.Context //import android.view.ViewGroup //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.constant.ItemViewType -//import com.gh.common.syncpage.ISyncAdapterHandler +//import com.gh.gamecenter.common.constant.ItemViewType +//import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler //import com.gh.gamecenter.R //import com.gh.gamecenter.adapter.viewholder.FooterViewHolder //import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsAdapter.kt index cebc6c0e68..888350cacd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsAdapter.kt @@ -3,8 +3,8 @@ package com.gh.gamecenter.qa.column.detail.recommends import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsFragment.kt index 37dbcee5b4..014918e481 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/recommends/RecommendsFragment.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.qa.column.detail.recommends import androidx.lifecycle.ViewModelProviders import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.SpecialColumn @@ -33,10 +33,10 @@ class RecommendsFragment : ListFragment() { } override fun provideListViewModel(): RecommendsViewModel { - val tag = requireArguments().getString(EntranceUtils.KEY_ASK_TAG) - val entity = requireArguments().getParcelable(EntranceUtils.KEY_ASK_COLUMN_TAG) + val tag = requireArguments().getString(EntranceConsts.KEY_ASK_TAG) + val entity = requireArguments().getParcelable(EntranceConsts.KEY_ASK_COLUMN_TAG) val factory = RecommendsViewModel.Factory(HaloApp.getInstance().application - , if (tag.isNullOrEmpty()) entity as Any else tag, requireArguments().getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)?: CommunityEntity()) + , if (tag.isNullOrEmpty()) entity as Any else tag, requireArguments().getParcelable(EntranceConsts.KEY_COMMUNITY_DATA)?: CommunityEntity()) return ViewModelProviders.of(this, factory).get(RecommendsViewModel::class.java) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt index 813827c4b6..85e4db16dc 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredAdapter.kt @@ -3,8 +3,8 @@ package com.gh.gamecenter.qa.column.detail.unanswered import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredFragment.kt index 695f762ca1..2a0f2e7495 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredFragment.kt @@ -2,8 +2,7 @@ package com.gh.gamecenter.qa.column.detail.unanswered import android.view.View import androidx.lifecycle.ViewModelProviders -import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.SpecialColumn @@ -33,10 +32,10 @@ class UnansweredFragment : ListFragment() { } override fun provideListViewModel(): UnansweredViewModel { - val tag = requireArguments().getString(EntranceUtils.KEY_ASK_TAG) - val entity = requireArguments().getParcelable(EntranceUtils.KEY_ASK_COLUMN_TAG) + val tag = requireArguments().getString(EntranceConsts.KEY_ASK_TAG) + val entity = requireArguments().getParcelable(EntranceConsts.KEY_ASK_COLUMN_TAG) val factory = UnansweredViewModel.Factory(HaloApp.getInstance().application - , if (tag.isNullOrEmpty()) entity as Any else tag, requireArguments().getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)?: CommunityEntity()) + , if (tag.isNullOrEmpty()) entity as Any else tag, requireArguments().getParcelable(EntranceConsts.KEY_COMMUNITY_DATA)?: CommunityEntity()) return ViewModelProviders.of(this, factory).get(UnansweredViewModel::class.java) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderAdapter.java index 0ba9e4d351..91666e8017 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderAdapter.java @@ -9,7 +9,7 @@ //import android.view.View; //import android.view.ViewGroup; // -//import com.gh.common.util.ImageUtils; +//import com.gh.gamecenter.common.utils.ImageUtils; //import com.gh.gamecenter.R; //import com.gh.gamecenter.adapter.viewholder.AskTabItemViewHolder; //import com.gh.gamecenter.databinding.AskOrderTabItemBinding; diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderFragment.java b/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderFragment.java index 6e30aab604..8efa4b76a1 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/column/order/AskTabOrderFragment.java @@ -17,12 +17,12 @@ //import androidx.recyclerview.widget.ItemTouchHelper; //import androidx.recyclerview.widget.RecyclerView; // -//import com.gh.base.fragment.WaitingDialogFragment; -//import com.gh.common.util.DialogHelper; -//import com.gh.common.view.GridDivider; +//import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment; +//import com.gh.gamecenter.common.utils.DialogHelper; +//import com.gh.gamecenter.common.view.GridDivider; //import com.gh.gamecenter.R; //import com.gh.gamecenter.databinding.ActivityAsktabOrderBinding; -//import com.gh.gamecenter.normal.NormalFragment; +//import com.gh.gamecenter.common.base.fragment.NormalFragment; //import com.gh.gamecenter.qa.column.AskColumnViewModel; //import com.gh.gamecenter.qa.entity.AskTagGroupsEntity; //import com.halo.assistant.HaloApp; diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt index d8ab2c1cec..76bb218147 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentActivity.kt @@ -6,13 +6,13 @@ import android.content.Intent import android.content.pm.ActivityInfo import android.os.Build import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.EntranceUtils.KEY_COMMENT_ID -import com.gh.common.util.doOnEnd -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.EntranceConsts.KEY_COMMENT_ID +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.doOnEnd import com.gh.gamecenter.databinding.ActivityCommentBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.gamecollection.detail.conversation.GameCollectionCommentConversationFragment @@ -37,7 +37,7 @@ class CommentActivity : BaseActivity() { DisplayUtils.transparentStatusBar(this) val commentCount = intent.getIntExtra(COMMENT_COUNT, 0) val showKeyboard = intent.getBooleanExtra(SHOW_KEYBOARD, false) - val isCommentConversation = intent.getBooleanExtra(EntranceUtils.KEY_IS_COMMENT_CONVERSATION, false) + val isCommentConversation = intent.getBooleanExtra(EntranceConsts.KEY_IS_COMMENT_CONVERSATION, false) val answerId = intent.getStringExtra(ANSWER_ID) ?: "" val articleId = intent.getStringExtra(ARTICLE_ID) ?: "" @@ -270,16 +270,16 @@ class CommentActivity : BaseActivity() { path: String ): Intent { val intent = Intent(context, CommentActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, NormalActivity.mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_ARTICLE_ID, articleId) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) intent.putExtra(VIDEO_ID, videoId) intent.putExtra(QUESTION_ID, questionId) - intent.putExtra(EntranceUtils.KEY_COMMUNITY_ID, communityId) - intent.putExtra(EntranceUtils.KEY_POSITION, position) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_ID, communityId) + intent.putExtra(EntranceConsts.KEY_POSITION, position) intent.putExtra(KEY_COMMENT_ID, commentId) - intent.putExtra(EntranceUtils.KEY_SHOW_KEYBOARD_IF_NEEDED, showKeyboard) - intent.putExtra(EntranceUtils.KEY_PATH, path) - intent.putExtra(EntranceUtils.KEY_IS_COMMENT_CONVERSATION, true) + intent.putExtra(EntranceConsts.KEY_SHOW_KEYBOARD_IF_NEEDED, showKeyboard) + intent.putExtra(EntranceConsts.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_IS_COMMENT_CONVERSATION, true) return intent } @@ -441,12 +441,12 @@ class CommentActivity : BaseActivity() { path: String ): Intent { val intent = Intent(context, CommentActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, NormalActivity.mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) intent.putExtra(GAME_COLLECTION_ID, gameCollectionId) intent.putExtra(KEY_COMMENT_ID, commentId) - intent.putExtra(EntranceUtils.KEY_SHOW_KEYBOARD_IF_NEEDED, showKeyboard) - intent.putExtra(EntranceUtils.KEY_PATH, path) - intent.putExtra(EntranceUtils.KEY_IS_COMMENT_CONVERSATION, true) + intent.putExtra(EntranceConsts.KEY_SHOW_KEYBOARD_IF_NEEDED, showKeyboard) + intent.putExtra(EntranceConsts.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_IS_COMMENT_CONVERSATION, true) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentPictureAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentPictureAdapter.kt index 0eca59e805..84b3a74f01 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/CommentPictureAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/CommentPictureAdapter.kt @@ -4,8 +4,8 @@ import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.util.ImageUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.databinding.ItemCommentPictureBinding import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt index c430fc5406..d6796f9af5 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentAdapter.kt @@ -6,13 +6,18 @@ import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.OnCommentCallBackListener import com.gh.gamecenter.adapter.viewholder.AnswerCommentViewHolder import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.utils.copyTextAndToast +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.NewCommentItemBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.gamedetail.rating.edit.RatingEditActivity @@ -119,37 +124,41 @@ class NewCommentAdapter( } holder.userBadgeSdv.setOnClickListener { v -> - DialogUtils.showViewBadgeDialog(mContext, commentEntity.user.badge) { - MtaHelper.onEvent( - "进入徽章墙_用户记录", - key, - commentEntity.user.name + "(" + commentEntity.user.id + ")" - ) - MtaHelper.onEvent("徽章中心", "进入徽章中心", key) - DirectUtils.directToBadgeWall( - mContext, - commentEntity.user.id, - commentEntity.user.name, - commentEntity.user.icon - ) - } + DialogUtils.showViewBadgeDialog(mContext, commentEntity.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent( + "进入徽章墙_用户记录", + key, + commentEntity.user.name + "(" + commentEntity.user.id + ")" + ) + MtaHelper.onEvent("徽章中心", "进入徽章中心", key) + DirectUtils.directToBadgeWall( + mContext, + commentEntity.user.id, + commentEntity.user.name, + commentEntity.user.icon + ) + } + }) } holder.badgeNameTv.setOnClickListener { v -> holder.userBadgeSdv.performClick() } holder.quoteAuthorBadgeSdv.setOnClickListener { v -> - DialogUtils.showViewBadgeDialog(mContext, commentEntity.parentUser!!.badge) { - MtaHelper.onEvent( - "进入徽章墙_用户记录", - key, - commentEntity.parentUser!!.name + "(" + commentEntity.parentUser!!.id + ")" - ) - MtaHelper.onEvent("徽章中心", "进入徽章中心", key) - DirectUtils.directToBadgeWall( - mContext, - commentEntity.parentUser!!.id, - commentEntity.parentUser!!.name, - commentEntity.parentUser!!.icon - ) - } + DialogUtils.showViewBadgeDialog(mContext, commentEntity.parentUser!!.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent( + "进入徽章墙_用户记录", + key, + commentEntity.parentUser!!.name + "(" + commentEntity.parentUser!!.id + ")" + ) + MtaHelper.onEvent("徽章中心", "进入徽章中心", key) + DirectUtils.directToBadgeWall( + mContext, + commentEntity.parentUser!!.id, + commentEntity.parentUser!!.name, + commentEntity.parentUser!!.icon + ) + } + }) } holder.commentLikeContainer.setOnClickListener { diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentConversationFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentConversationFragment.kt index 27e429bbbe..4c3960ae74 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentConversationFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentConversationFragment.kt @@ -4,9 +4,9 @@ import android.annotation.SuppressLint import android.os.Bundle import android.text.TextUtils import android.view.View -import com.gh.common.AppExecutor +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.DirectUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.databinding.FragmentAnswerCommentConversationBinding @@ -35,8 +35,8 @@ class NewCommentConversationFragment : NewCommentFragment() { } override fun onCreate(savedInstanceState: Bundle?) { - mCommentId = arguments?.getString(EntranceUtils.KEY_COMMENTID) ?: "" - mAnswerId = arguments?.getString(EntranceUtils.KEY_ANSWER_ID) ?: "" + mCommentId = arguments?.getString(EntranceConsts.KEY_COMMENTID) ?: "" + mAnswerId = arguments?.getString(EntranceConsts.KEY_ANSWER_ID) ?: "" mArticleId = arguments?.getString(CommentActivity.ARTICLE_ID) ?: "" mCommunityId = arguments?.getString(CommentActivity.COMMUNITY_ID) ?: "" @@ -50,7 +50,7 @@ class NewCommentConversationFragment : NewCommentFragment() { else -> CommentType.VIDEO_CONVERSATION } - mLinkEntity = arguments?.getParcelable(EntranceUtils.KEY_LINK) + mLinkEntity = arguments?.getParcelable(EntranceConsts.KEY_LINK) super.onCreate(savedInstanceState) mBinding = FragmentAnswerCommentConversationBinding.bind(mCachedView) commentContainer = mBinding.pieceCommentTypingContainer.answerCommentContentContainer diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentDetailActivity.kt new file mode 100644 index 0000000000..28362f7445 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentDetailActivity.kt @@ -0,0 +1,144 @@ +package com.gh.gamecenter.qa.comment + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.qa.comment.conversation.CommentConversationFragment + +class NewCommentDetailActivity: ToolBarActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setNavigationTitle("评论详情") + } + + companion object { + + @JvmStatic + fun getArticleCommentIntent( + context: Context, + commentId: String, + communityId: String, + articleId: String, + topCommentId: String, + entrance: String, + path: String + ): Intent { + return getIntent( + context, + commentId, + communityId, + articleId, + "", + "", + "", + topCommentId, + entrance, + path + ) + } + + @JvmStatic + fun getAnswerCommentIntent( + context: Context, + commentId: String, + questionId: String, + topCommentId: String, + entrance: String, + path: String + ): Intent { + return getIntent( + context, + commentId, + "", + "", + "", + questionId, + "", + topCommentId, + entrance, + path + ) + } + + @JvmStatic + fun getVideoCommentIntent( + context: Context, + commentId: String, + videoId: String, + topCommentId: String, + entrance: String, + path: String + ): Intent { + return getIntent( + context, + commentId, + "", + "", + videoId, + "", + "", + topCommentId, + entrance, + path + ) + } + + @JvmStatic + fun getGameCollectionCommentIntent( + context: Context, + commentId: String, + gameCollectionId: String, + topCommentId: String, + entrance: String, + path: String + ): Intent { + return getIntent( + context, + commentId, + "", + "", + "", + "", + gameCollectionId, + topCommentId, + entrance, + path + ) + } + + @JvmStatic + fun getIntent( + context: Context, + commentId: String, + communityId: String, + articleId: String, + videoId: String, + questionId: String, + gameCollectionId: String, + topCommentId: String, + entrance: String, + path: String + ): Intent { + val bundle = Bundle() + bundle.putString(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + bundle.putInt(EntranceConsts.KEY_POSITION, 1) + bundle.putString(EntranceConsts.KEY_COMMENT_ID, commentId) + bundle.putString(EntranceConsts.KEY_COMMUNITY_ID, communityId) + bundle.putString(EntranceConsts.KEY_COMMUNITY_ARTICLE_ID, articleId) + bundle.putString(CommentActivity.VIDEO_ID, videoId) + bundle.putString(CommentActivity.QUESTION_ID, questionId) + bundle.putString(CommentActivity.GAME_COLLECTION_ID, gameCollectionId) + bundle.putString(EntranceConsts.KEY_TOP_COMMENT_ID, topCommentId) + bundle.putString(EntranceConsts.KEY_PATH, path) + return getTargetIntent( + context, + NewCommentDetailActivity::class.java, + CommentConversationFragment::class.java, + bundle + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentFragment.kt index bf606e6bb3..c765106154 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentFragment.kt @@ -16,18 +16,21 @@ import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.BaseDialogWrapperFragment -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.base.fragment.BaseDialogWrapperFragment +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* -import com.gh.common.util.EntranceUtils.KEY_COMMENT_ID -import com.gh.common.view.VerticalItemDecoration +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.constant.EntranceConsts.KEY_COMMENT_ID +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.CommentDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.OnCommentCallBackListener import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemCommentEditImageBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.eventbus.EBCommentSuccess @@ -49,7 +52,8 @@ import java.io.File import java.util.ArrayList import kotlin.math.abs -open class NewCommentFragment : ListFragment(), OnCommentCallBackListener, KeyboardHeightObserver, +open class NewCommentFragment : ListFragment(), OnCommentCallBackListener, + KeyboardHeightObserver, OnCommentOptionClickListener { private lateinit var commentEt: EditText @@ -233,7 +237,7 @@ open class NewCommentFragment : ListFragment if (mShowInputOnly) { if (mCommentEntity != null) { - commentEt.hint = "回复:${mCommentEntity?.user?.name}" + commentEt.hint = "回复 @${mCommentEntity?.user?.name}" } commentContainer?.visibility = View.GONE commentEt.requestFocus() diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentViewModel.kt index 9bcf72a7ad..7da5eda265 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentViewModel.kt @@ -6,18 +6,21 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* import com.gh.gamecenter.baselist.ListViewModel +import com.gh.gamecenter.common.utils.createRequestBodyAny +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.entity.CommentDraft import com.gh.gamecenter.entity.CommentEntity -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.dao.CommentDraftDao -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.lightgame.utils.Utils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -62,7 +65,7 @@ open class NewCommentViewModel( CommentType.ANSWER -> api.getAnswerCommentList(answerId, page) CommentType.ANSWER_CONVERSATION -> api.getAnswerCommentConversationList(answerId, commentId, page) - CommentType.COMMUNITY_ARTICLE -> api.getCommunityArticleCommentList(communityId, articleId, "time.create:1", page) + CommentType.COMMUNITY_ARTICLE -> api.getCommunityArticleCommentList(communityId, articleId, "time.create:1", page, mapOf()) CommentType.COMMUNITY_ARTICLE_CONVERSATION -> api.getCommunityArticleCommentConversation(communityId, articleId, commentId, page) CommentType.VIDEO -> api.getVideoCommentList(videoId, page, mapOf()) diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentAdapter.kt index e4a037a8bd..9715630502 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentAdapter.kt @@ -1,20 +1,16 @@ package com.gh.gamecenter.qa.comment import android.content.Context -import android.text.TextUtils import android.view.View import android.view.ViewGroup -import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.util.* +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.gamecenter.R import com.gh.gamecenter.adapter.OnCommentCallBackListener import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.databinding.StairsCommentItemBinding import com.gh.gamecenter.entity.CommentEntity -import com.gh.gamecenter.gamedetail.rating.edit.RatingEditActivity class StairsCommentAdapter(context: Context, var mViewModel: NewCommentViewModel, diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentFragment.kt index 477b033f4f..483a586799 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentFragment.kt @@ -6,8 +6,8 @@ import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout import androidx.core.content.ContextCompat -import com.gh.common.util.DisplayUtils -import com.gh.common.util.goneIf +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.CommentDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentReplyAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentReplyAdapter.kt index 6ea35eb320..04a4964aa4 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentReplyAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentReplyAdapter.kt @@ -6,7 +6,7 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.RelativeLayout import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.R import com.gh.gamecenter.adapter.OnCommentCallBackListener import com.gh.gamecenter.databinding.StairsCommentItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentViewHolder.kt index 46b04749c1..350b6cb3d9 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/StairsCommentViewHolder.kt @@ -7,13 +7,20 @@ import android.view.View import android.widget.LinearLayout import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* -import com.gh.common.util.ImageUtils.display -import com.gh.common.util.NumberUtils.transSimpleCount -import com.gh.common.view.CenterImageSpan +import com.gh.gamecenter.common.utils.ImageUtils.display +import com.gh.gamecenter.core.utils.NumberUtils.transSimpleCount +import com.gh.gamecenter.core.utils.CenterImageSpan import com.gh.gamecenter.R import com.gh.gamecenter.adapter.OnCommentCallBackListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.FastClickUtils +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.StairsCommentItemBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.manager.UserManager @@ -170,20 +177,22 @@ class StairsCommentViewHolder( } holder.binding.sdvUserBadge.setOnClickListener { v -> - DialogUtils.showViewBadgeDialog(binding.root.context, commentEntity.user.badge) { - MtaHelper.onEvent( - "进入徽章墙_用户记录", - key, - commentEntity.user.name + "(" + commentEntity.user.id + ")" - ) - MtaHelper.onEvent("徽章中心", "进入徽章中心", key) - DirectUtils.directToBadgeWall( - binding.root.context, - commentEntity.user.id, - commentEntity.user.name, - commentEntity.user.icon - ) - } + DialogUtils.showViewBadgeDialog(binding.root.context, commentEntity.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent( + "进入徽章墙_用户记录", + key, + commentEntity.user.name + "(" + commentEntity.user.id + ")" + ) + MtaHelper.onEvent("徽章中心", "进入徽章中心", key) + DirectUtils.directToBadgeWall( + binding.root.context, + commentEntity.user.id, + commentEntity.user.name, + commentEntity.user.icon + ) + } + }) } var isVote = holder.binding.commentLikeCount.currentTextColor == ContextCompat.getColor( diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt index 0ada54b148..18bbb98458 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt @@ -3,6 +3,7 @@ package com.gh.gamecenter.qa.comment.base import android.annotation.SuppressLint import android.content.Context import android.text.SpannableStringBuilder +import android.text.TextUtils import android.view.View import android.view.ViewGroup import androidx.annotation.StringRes @@ -10,18 +11,23 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.syncpage.ISyncAdapterHandler -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemColorDecoration -import com.gh.common.view.SegmentedFilterView +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.SegmentedFilterView +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemArticleDetailCommentBinding import com.gh.gamecenter.databinding.ItemArticleDetailCommentEmptyBinding import com.gh.gamecenter.databinding.ItemArticleDetailCommentFooterBinding @@ -198,6 +204,7 @@ abstract class BaseCommentAdapter( } is CommentFooterViewHolder -> { + holder.itemView.setBackgroundColor(R.color.background_white.toColor(mContext)) holder.bindView(mIsLoading, mIsNetworkError, mIsOver) } @@ -246,7 +253,8 @@ abstract class BaseCommentAdapter( article: ArticleDetailEntity? = null, questions: QuestionsDetailEntity? = null, comment: CommentEntity? = null, - gameCollection: Boolean? = null + gameCollection: Boolean? = null, + commentDetail: Boolean? = null ) { binding.run { filterView.setBackgroundColor(R.color.background_white.toColor(mContext)) @@ -273,6 +281,9 @@ abstract class BaseCommentAdapter( gameCollection != null -> { "玩家评论" } + commentDetail != null -> { + "全部讨论" + } else -> { "" } @@ -284,7 +295,7 @@ abstract class BaseCommentAdapter( commentCount.toSimpleCount() } - divider.goneIf(gameCollection == true) + divider.goneIf(gameCollection == true || commentDetail == true) if (orderSfv.getItemList().isEmpty()) { orderSfv.setItemList(listOf("正序", "倒序"), 0) } @@ -322,14 +333,6 @@ abstract class BaseCommentAdapter( var type: AdapterType ) : RecyclerView.ViewHolder(binding.root) { - init { - if (type == AdapterType.SUB_COMMENT) { - binding.userNameTv.textSize = 12F - binding.contentTv.textSize = 14F - binding.timeTv.visibility = View.GONE - } - } - @SuppressLint("SetTextI18n") fun bindComment( comment: CommentEntity, @@ -426,27 +429,26 @@ abstract class BaseCommentAdapter( binding.commentCountTv.text = viewModel.getCommentText(comment.reply, "回复") } else { // 评论详情用的样式 - binding.floorHintTv.text = CommentUtils.getCommentTime(comment.time) + binding.floorHintTv.visibility = View.GONE binding.commentCountTv.setOnClickListener { commentClosure?.invoke(comment) } - binding.commentCountTv.setCompoundDrawables(null, null, null, null) +// binding.commentCountTv.setCompoundDrawables(null, null, null, null) binding.commentCountTv.text = "回复" binding.likeCountTv.text = viewModel.getLikeText(comment.vote, "") binding.root.setOnClickListener { binding.commentCountTv.performClick() } - if (comment.parentUser != null) { + if (comment.parentUser != null && !TextUtils.isEmpty(comment.parentUser!!.id)) { val prefix = "回复" val colon = " :" - val parentUserName = " ${comment.parentUser?.name} " + val parentUserName = " @${comment.parentUser?.name} " val prefixSpan = SpanBuilder(prefix).color( binding.root.context, 0, prefix.length, - R.color.text_subtitleDesc + R.color.text_4D4D4D ).build() val parentUserNameSpan = SpanBuilder(parentUserName) - .bold(0, parentUserName.length) - .click(0, parentUserName.length, R.color.text_subtitle) { + .click(0, parentUserName.length, R.color.text_subtitleDesc) { DirectUtils.directToHomeActivity( binding.root.context, comment.user.id, @@ -460,7 +462,7 @@ abstract class BaseCommentAdapter( binding.root.context, 0, colon.length, - R.color.text_subtitleDesc + R.color.text_4D4D4D ).build() val authorSpan = if (comment.parentUser?.me?.isCommentOwner == true) { SpanBuilder("作者").image(0, "作者".length, R.drawable.ic_hint_author).build() @@ -591,6 +593,18 @@ abstract class BaseCommentAdapter( } val mtaKey = if (viewModel is ArticleDetailViewModel) "全部评论" else "评论详情-全部回复" + if (comment.isHighlight) { + comment.isHighlight = false + binding.highlightBg.run { + visibility = View.VISIBLE + postDelayed({ + tryWithDefaultCatch { + visibility = View.GONE + } + }, 3000) + } + } + if (!comment.images.isNullOrEmpty()) { if (binding.commentPictureRv.adapter == null) { binding.commentPictureRv.apply { @@ -608,9 +622,18 @@ abstract class BaseCommentAdapter( binding.commentPictureRv.visibility = View.GONE } bindView(binding, comment) - binding.contentTv.setExpandMaxLines(if (comment.isExpand) Int.MAX_VALUE else 4) - binding.contentTv.setIsExpanded(comment.isExpand) - binding.collapseTv.goneIf(!comment.isExpand) + if (comment.isForceExpand) { + comment.isForceExpand = false + binding.contentTv.setExpandMaxLines(Int.MAX_VALUE) + binding.contentTv.setIsExpanded(true) + binding.contentTv.post { + binding.collapseTv.goneIf(binding.contentTv.lineCount <= 4) + } + } else { + binding.contentTv.setExpandMaxLines(if (comment.isExpand) Int.MAX_VALUE else 4) + binding.contentTv.setIsExpanded(comment.isExpand) + binding.collapseTv.goneIf(!comment.isExpand) + } binding.contentTv.setExpandCallback { comment.isExpand = true binding.collapseTv.visibility = View.VISIBLE @@ -659,7 +682,7 @@ abstract class BaseCommentAdapter( ) } - binding.likeCountTv.text = viewModel.getLikeText(comment.vote) + binding.likeCountTv.text = viewModel.getLikeText(comment.vote, if (viewModel is CommentConversationViewModel) "" else "赞同") if (comment.me?.isCommentVoted == true) { binding.likeCountTv.setCompoundDrawablesWithIntrinsicBounds( @@ -701,20 +724,22 @@ abstract class BaseCommentAdapter( } binding.badgeTv.setOnClickListener { - DialogUtils.showViewBadgeDialog(binding.root.context, comment.user.badge) { - MtaHelper.onEvent( - "进入徽章墙_用户记录", - "帖子详情-评论管理", - comment.user.name + "(" + comment.user.id + ")" - ) - MtaHelper.onEvent("徽章中心", "进入徽章中心", "帖子详情-评论管理") - DirectUtils.directToBadgeWall( - binding.root.context, - comment.user.id, - comment.user.name, - comment.user.icon - ) - } + DialogUtils.showViewBadgeDialog(binding.root.context, comment.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent( + "进入徽章墙_用户记录", + "帖子详情-评论管理", + comment.user.name + "(" + comment.user.id + ")" + ) + MtaHelper.onEvent("徽章中心", "进入徽章中心", "帖子详情-评论管理") + DirectUtils.directToBadgeWall( + binding.root.context, + comment.user.id, + comment.user.name, + comment.user.icon + ) + } + }) } binding.badgeIv.setOnClickListener { binding.badgeTv.performClick() } diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentFragment.kt index f83e8d4f36..5104ae73c5 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentFragment.kt @@ -5,9 +5,9 @@ import android.view.View import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.view.CustomDividerItemDecoration -import com.gh.common.view.SegmentedFilterView -import com.gh.common.view.vertical_recycler.SnappingLinearLayoutManager +import com.gh.gamecenter.common.view.SegmentedFilterView +import com.gh.gamecenter.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.view.vertical_recycler.SnappingLinearLayoutManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.gamecollection.detail.conversation.GameCollectionCommentConversationFragment @@ -98,10 +98,13 @@ abstract class BaseCommentFragment : ListFragment< override fun getItemDecoration(): RecyclerView.ItemDecoration { val drawable = ContextCompat.getDrawable(requireContext(), R.drawable.divider_article_detail_comment) - val itemDecoration = if (this !is CommentConversationFragment) { - CustomDividerItemDecoration(requireContext(), notDecorateTheFirstTwoItems = true, notDecorateTheLastItem = true) - } else { - CustomDividerItemDecoration(requireContext(), notDecorateTheFirstItem = true, notDecorateTheLastItem = true) + val itemDecoration = when { + this !is CommentConversationFragment || mListViewModel.topCommentId.isNotBlank() -> { + CustomDividerItemDecoration(requireContext(), notDecorateTheFirstTwoItems = true, notDecorateTheLastItem = true) + } + else -> { + CustomDividerItemDecoration(requireContext(), notDecorateTheFirstItem = true, notDecorateTheLastItem = true) + } } itemDecoration.setDrawable(drawable!!) diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentViewModel.kt index 0317c513d9..6d16d77393 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentViewModel.kt @@ -3,21 +3,24 @@ package com.gh.gamecenter.qa.comment.base import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.MutableLiveData -import com.gh.common.json.json -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadParams import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.toRequestBody import com.gh.gamecenter.entity.CommentDraft import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.entity.MeEntity import com.gh.gamecenter.entity.Permissions import com.gh.gamecenter.qa.article.detail.CommentItemData -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.retrofit.service.ApiService import com.lightgame.utils.Utils @@ -32,7 +35,8 @@ abstract class BaseCommentViewModel( var articleId: String, var videoId: String, var questionId: String, - var communityId: String + var communityId: String, + var topCommentId: String = "" ) : ListViewModel(application) { protected val mApi: ApiService = RetrofitManager.getInstance().api var currentSortType: SortType = SortType.OLDEST @@ -43,6 +47,8 @@ abstract class BaseCommentViewModel( var commentCount = 0 + var isHandleTopComment = false + override fun loadStatusControl(size: Int) { if (mCurLoadParams.loadOffset == LoadParams.DEFAULT_OFFSET) { // 初始化列表 when { @@ -86,7 +92,7 @@ abstract class BaseCommentViewModel( fun mergeListData( commentList: List?, displayFloor: Boolean = false, - hasFilter: Boolean = true + hasFilter: Boolean = true, ) { topItemData?.let { val mergedList = arrayListOf().apply { @@ -109,15 +115,16 @@ abstract class BaseCommentViewModel( } else { //从第二楼开始 var floor = 2 - commentList?.forEach { + commentList?.forEachIndexed { index, entity -> if (displayFloor) { - it.floor = floor + entity.floor = floor } // 没有 me 会导致不能跨页面更新点赞 - if (it.me == null) { - it.me = MeEntity() + if (entity.me == null) { + entity.me = MeEntity() } - add(CommentItemData(commentNormal = it)) + handleTopComment(index, entity) + add(CommentItemData(commentNormal = entity)) if (displayFloor) { floor++ } @@ -129,6 +136,14 @@ abstract class BaseCommentViewModel( } } + open fun handleTopComment(index: Int, entity: CommentEntity) { + if (!isHandleTopComment && topItemData != null && topCommentId.isNotBlank() && index == 0) { + isHandleTopComment = true + entity.isHighlight = true + entity.isForceExpand = true + } + } + fun getCommentDraft(id: String): CommentDraft? { return CommentDraftContainer.commentDraftDao.getDraftById(id) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationAdapter.kt index 25b79d02f8..6219851c05 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationAdapter.kt @@ -6,7 +6,10 @@ import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px +import com.gh.common.util.CommentUtils +import com.gh.common.util.DirectUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.goneIf import com.gh.gamecenter.databinding.ItemArticleDetailCommentBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.qa.comment.base.BaseCommentAdapter @@ -39,6 +42,10 @@ class CommentConversationAdapter( holder.bindView(mEntityList[position].commentTop!!) } + is CommentFilterViewHolder -> { + holder.bindView(commentDetail = true) + } + else -> super.onBindViewHolder(holder, position) } } @@ -54,8 +61,8 @@ class CommentConversationAdapter( clear(binding.commentPictureRv.id, ConstraintSet.START) connect(binding.commentPictureRv.id, ConstraintSet.START, binding.userIconIv.id, ConstraintSet.START) - clear(binding.timeTv.id, ConstraintSet.START) - connect(binding.timeTv.id, ConstraintSet.START, binding.userIconIv.id, ConstraintSet.START) + clear(binding.bottomContainer.id, ConstraintSet.START) + connect(binding.bottomContainer.id, ConstraintSet.START, binding.userIconIv.id, ConstraintSet.START) applyTo(binding.contentTv.parent as ConstraintLayout) } @@ -70,17 +77,64 @@ class CommentConversationAdapter( binding.commentPictureRv.layoutParams = this } - (binding.timeTv.layoutParams as ConstraintLayout.LayoutParams).apply { + (binding.bottomContainer.layoutParams as ConstraintLayout.LayoutParams).apply { leftMargin = 9F.dip2px() - binding.timeTv.layoutParams = this + binding.bottomContainer.layoutParams = this } - binding.moreIv.visibility = View.GONE - binding.divider.visibility = View.VISIBLE - binding.commentCountTv.visibility = View.GONE - binding.floorHintTv.text = if (comment.floor != 0) "${comment.floor}楼" else "" - binding.contentTv.text = comment.content - binding.contentTv.maxLines = Int.MAX_VALUE + binding.run { + moreIv.visibility = View.GONE + divider.visibility = View.VISIBLE + commentCountTv.visibility = View.GONE + floorHintTv.text = if (comment.floor != 0) "${comment.floor}楼" else "" + contentTv.text = comment.content + contentTv.maxLines = Int.MAX_VALUE + commentTopTimeTv.goneIf(mViewModelCommunity.topCommentId.isBlank()) + commentTopTimeTv.text = CommentUtils.getCommentTime(comment.time) + timeTv.goneIf(mViewModelCommunity.topCommentId.isNotBlank()) + originalTv.goneIf(mViewModelCommunity.topCommentId.isBlank()) + originalTv.text = if (mViewModelCommunity.gameCollectionId.isNotEmpty()) "查看游戏单" else "查看原文" + originalTv.setOnClickListener { + mViewModelCommunity.run { + val path = if (gameCollectionId.isNotEmpty()) "评论详情-查看游戏单" else "评论详情-查看原文" + when { + articleId.isNotEmpty() -> { + DirectUtils.directToCommunityArticle( + mContext, + articleId, + communityId, + mEntrance, + path + ) + } + videoId.isNotEmpty() -> { + DirectUtils.directToVideoDetail( + mContext, + videoId, + mEntrance, + path + ) + } + questionId.isNotEmpty() -> { + DirectUtils.directToQuestionDetail( + mContext, + questionId, + mEntrance, + path + ) + } + gameCollectionId.isNotEmpty() -> { + DirectUtils.directToGameCollectionDetail( + mContext, + gameCollectionId, + mEntrance, + path + ) + } + } + } + } + } CommentItemViewHolder.bindComment(binding, mViewModelCommunity, comment, mEntrance, null) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationFragment.kt index b4062c022d..7e2b6a17dc 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/conversation/CommentConversationFragment.kt @@ -5,16 +5,21 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import android.view.LayoutInflater +import android.view.MenuItem import android.view.View +import android.view.ViewGroup import com.ethanhua.skeleton.Skeleton -import com.gh.common.AppExecutor -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository -import com.gh.common.util.* +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.common.util.CommentHelper +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.databinding.FragmentArticleDetailCommentBinding import com.gh.gamecenter.entity.CommentEntity import com.gh.gamecenter.manager.UserManager @@ -25,19 +30,20 @@ import com.gh.gamecenter.qa.article.detail.CommentItemData import com.gh.gamecenter.qa.comment.CommentActivity import com.halo.assistant.HaloApp -class CommentConversationFragment : BaseCommentFragment() { +class CommentConversationFragment : + BaseCommentFragment() { private lateinit var mViewModel: CommentConversationViewModel private lateinit var mBinding: FragmentArticleDetailCommentBinding private var mAdapterCommunity: CommentConversationAdapter? = null - override fun getLayoutId() = R.layout.fragment_article_detail_comment + override fun getLayoutId() = 0 override fun onCreate(savedInstanceState: Bundle?) { mViewModel = provideListViewModel() super.onCreate(savedInstanceState) mViewModel.getComment() - mViewModel.positionInOriginList = arguments?.getInt(EntranceUtils.KEY_POSITION) - ?: -1 + mViewModel.positionInOriginList = arguments?.getInt(EntranceConsts.KEY_POSITION) + ?: -1 } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -47,20 +53,29 @@ class CommentConversationFragment : BaseCommentFragment { return mAdapterCommunity - ?: CommentConversationAdapter(requireContext(), mViewModel, BaseCommentAdapter.AdapterType.SUB_COMMENT, mEntrance) { - if (it.user.id == UserManager.getInstance().userId) { - toast("不能回复自己") - } else { - startCommentActivity(it) - } - }.apply { - mAdapterCommunity = this + ?: CommentConversationAdapter( + requireContext(), + mViewModel, + BaseCommentAdapter.AdapterType.SUB_COMMENT, + mEntrance + ) { + if (it.user.id == UserManager.getInstance().userId) { + toast("不能回复自己") + } else { + startCommentActivity(it) } + }.apply { + mAdapterCommunity = this + } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -71,27 +86,67 @@ class CommentConversationFragment : BaseCommentFragment 2) { mListRv.smoothScrollToPosition(1) @@ -142,14 +200,17 @@ class CommentConversationFragment : BaseCommentFragment>? = null override fun provideDataSingle(page: Int): Single>? { + val map = hashMapOf() + if (topCommentId.isNotEmpty()) { + map["top_comment_id"] = topCommentId + } return when { articleId.isNotEmpty() -> { - mApi.getCommunityArticleCommentReply(communityId, articleId, commentId, currentSortType.value, page) + mApi.getCommunityArticleCommentReply( + communityId, + articleId, + commentId, + currentSortType.value, + page, + map + ) } videoId.isNotEmpty() -> { - mApi.getVideoCommentReply(videoId, commentId, currentSortType.value, page) + mApi.getVideoCommentReply(videoId, commentId, currentSortType.value, page, map) } questionId.isNotEmpty() -> { - mApi.getQuestionCommentReply(questionId, commentId, currentSortType.value, page) + mApi.getQuestionCommentReply(questionId, commentId, currentSortType.value, page, map) } gameCollectionId.isNotEmpty() -> { - mApi.getGameCollectionCommentReply(gameCollectionId, commentId, page) + mApi.getGameCollectionCommentReply(gameCollectionId, commentId, page, map) } else -> null } @@ -63,49 +75,54 @@ class CommentConversationViewModel(application: Application, else -> null } ?: return single.subscribeOn(Schedulers.io()) - .subscribe(object : BiResponse() { - @SuppressLint("CheckResult") - override fun onSuccess(data: CommentEntity) { - commentDetail = data - commentDetail?.floor = positionInOriginList - commentCount = data.reply - topItemData = CommentItemData(commentTop = data) - loadResultLiveData.postValue(LoadResult.SUCCESS) - mergeListData(mListLiveData.value, hasFilter = false) - } + .subscribe(object : BiResponse() { + @SuppressLint("CheckResult") + override fun onSuccess(data: CommentEntity) { + commentDetail = data + commentDetail?.floor = positionInOriginList + commentCount = data.reply + topItemData = CommentItemData(commentTop = data) + loadResultLiveData.postValue(LoadResult.SUCCESS) + mergeListData(mListLiveData.value, hasFilter = topCommentId.isNotBlank()) + } - override fun onFailure(exception: Exception) { - if (exception is HttpException && exception.code().toString().contains("404")) { - loadResultLiveData.postValue(LoadResult.DELETED) - } else { - loadResultLiveData.postValue(LoadResult.NETWORK_ERROR) - } + override fun onFailure(exception: Exception) { + if (exception is HttpException && exception.code().toString().contains("404")) { + loadResultLiveData.postValue(LoadResult.DELETED) + } else { + loadResultLiveData.postValue(LoadResult.NETWORK_ERROR) } - }) + } + }) } override fun mergeResultLiveData() { - mResultLiveData.addSource(mListLiveData) { mergeListData(it, hasFilter = false) } + mResultLiveData.addSource(mListLiveData) { mergeListData(it, hasFilter = topCommentId.isNotBlank()) } } - class Factory(private val application: Application, - private val articleId: String = "", - private val videoId: String = "", - private val questionId: String = "", - private val communityId: String = "", - private val gameCollectionId: String = "", - private val commentId: String) : ViewModelProvider.NewInstanceFactory() { + class Factory( + private val application: Application, + private val articleId: String = "", + private val videoId: String = "", + private val questionId: String = "", + private val communityId: String = "", + private val gameCollectionId: String = "", + private val commentId: String, + private val topCommentId: String + ) : ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { return CommentConversationViewModel( - application = application, - articleId = articleId, - videoId = videoId, - questionId = questionId, - communityId = communityId, - gameCollectionId = gameCollectionId, - commentId = commentId) as T + application = application, + articleId = articleId, + videoId = videoId, + questionId = questionId, + communityId = communityId, + gameCollectionId = gameCollectionId, + commentId = commentId, + topCommentId = topCommentId + ) as T } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt index 4664d3a962..9e3508a024 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseActivityDialogFragment.kt @@ -11,8 +11,8 @@ import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.core.os.bundleOf import com.gh.base.BaseRichEditorActivity -import com.gh.base.fragment.BaseDialogFragment -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R import com.gh.gamecenter.databinding.DialogChooseActivityBinding import com.gh.gamecenter.entity.ActivityLabelEntity @@ -39,9 +39,9 @@ class ChooseActivityDialogFragment : BaseDialogFragment() { beginTransaction.commitAllowingStateLoss() binding.confirmTv.setOnClickListener { val activityLabelEntity = fragment.getSelectedActivity() - val tag = requireArguments().getString(EntranceUtils.KEY_PARENT_TAG) + val tag = requireArguments().getString(EntranceConsts.KEY_PARENT_TAG) val intent = Intent().apply { - putExtra(EntranceUtils.KEY_DATA, activityLabelEntity) + putExtra(EntranceConsts.KEY_DATA, activityLabelEntity) } if (tag == "editorActivity") { (activity as? BaseRichEditorActivity<*>) @@ -98,9 +98,9 @@ class ChooseActivityDialogFragment : BaseDialogFragment() { ChooseActivityDialogFragment().apply { arguments = bundleOf( TAG_ACTIVITY_ID to tagActivityId, - EntranceUtils.KEY_BBS_ID to bbsId, - EntranceUtils.KEY_LOCATION to location.value, - EntranceUtils.KEY_PARENT_TAG to parentTag + EntranceConsts.KEY_BBS_ID to bbsId, + EntranceConsts.KEY_LOCATION to location.value, + EntranceConsts.KEY_PARENT_TAG to parentTag ) }.show(activity.supportFragmentManager, ChooseActivityDialogFragment::class.java.name) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt index ceab2aae64..837d15eb9b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumActivity.kt @@ -10,10 +10,14 @@ import android.view.MotionEvent import android.view.View import androidx.core.widget.doOnTextChanged import androidx.fragment.app.Fragment -import com.gh.base.BaseActivity -import com.gh.base.adapter.FragmentAdapter +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.adapter.FragmentAdapter import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.doOnPageSelected +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.doOnEnd import com.gh.gamecenter.databinding.DialogChooseForumBinding import com.gh.gamecenter.entity.CommunityEntity @@ -66,7 +70,8 @@ class ChooseForumActivity : BaseActivity() { mFragmentsList.add(ChooseForumContainerFragment.getInstance(ChooseForumContainerFragment.ChooseForumType.ATTENTION)) mFragmentsList.add(ChooseForumContainerFragment.getInstance(ChooseForumContainerFragment.ChooseForumType.HOT)) binding.viewPager.offscreenPageLimit = mFragmentsList.size - binding.viewPager.adapter = FragmentAdapter(supportFragmentManager, mFragmentsList, mTabTitleList) + binding.viewPager.adapter = + FragmentAdapter(supportFragmentManager, mFragmentsList, mTabTitleList) binding.tabLayout.setupWithViewPager(binding.viewPager) binding.tabIndicator.setupWithTabLayout(binding.tabLayout) binding.tabIndicator.setupWithViewPager(binding.viewPager) @@ -85,9 +90,14 @@ class ChooseForumActivity : BaseActivity() { if (mSearchResultFragment == null || mSearchResultFragment?.isAdded == false) { val beginTransaction = supportFragmentManager.beginTransaction() - mSearchResultFragment = supportFragmentManager.findFragmentByTag(ChooseForumContainerFragment::class.java.simpleName) as? ChooseForumContainerFragment + mSearchResultFragment = + supportFragmentManager.findFragmentByTag(ChooseForumContainerFragment::class.java.simpleName) as? ChooseForumContainerFragment ?: ChooseForumContainerFragment.getInstance(ChooseForumContainerFragment.ChooseForumType.SEARCH) as ChooseForumContainerFragment - beginTransaction.replace(binding.searchResultContainer.id, mSearchResultFragment!!, ChooseForumContainerFragment::class.java.simpleName) + beginTransaction.replace( + binding.searchResultContainer.id, + mSearchResultFragment!!, + ChooseForumContainerFragment::class.java.simpleName + ) beginTransaction.commitAllowingStateLoss() } } else { @@ -100,7 +110,7 @@ class ChooseForumActivity : BaseActivity() { fun chooseSuccess(community: CommunityEntity) { val intent = Intent() - intent.putExtra(EntranceUtils.KEY_COMMUNITY_DATA, community) + intent.putExtra(EntranceConsts.KEY_COMMUNITY_DATA, community) setResult(Activity.RESULT_OK, intent) finish() } @@ -113,14 +123,16 @@ class ChooseForumActivity : BaseActivity() { overridePendingTransition(0, 0) binding.maskView.animate().alpha(0f).setDuration(300).start() binding.forumContainer.animate() - .translationY(DisplayUtils.getScreenHeight().toFloat()) - .setDuration(300) - .doOnEnd { - super.finish() - } - .start() + .translationY(DisplayUtils.getScreenHeight().toFloat()) + .setDuration(300) + .doOnEnd { + super.finish() + } + .start() } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + companion object { const val CHOOSE_FORUM_REQUEST = 10 diff --git a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerAdapter.kt index b6c0a51784..1f11b79381 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerAdapter.kt @@ -1,22 +1,24 @@ package com.gh.gamecenter.qa.dialog import android.content.Context -import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.fromHtml +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.HtmlUtils import com.gh.gamecenter.databinding.ForumItemBinding import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.ForumEntity -import com.gh.gamecenter.forum.detail.ForumDetailActivity -import com.gh.gamecenter.qa.entity.CommunitySelectEntity class ChooseForumContainerAdapter(content: Context, val type: String, val onSelectCallback: ((entity: CommunityEntity) -> Unit)? = null) : ListAdapter(content) { diff --git a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerFragment.kt index 1ca818801e..5df3344841 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/dialog/ChooseForumContainerFragment.kt @@ -5,12 +5,11 @@ import android.view.View import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.common.util.NewLogUtils -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment -import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.ForumEntity import com.gh.gamecenter.forum.detail.ForumDetailActivity @@ -22,7 +21,7 @@ class ChooseForumContainerFragment : ListFragment) { @@ -28,6 +31,13 @@ class CommunityDraftWrapperActivity : BaseActivity_TabLayout() { tabTitleList.add("视频草稿") } + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { @JvmStatic fun getIntent(context: Context): Intent { diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerAdapter.kt index 759b6a1a08..c1936a718c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerAdapter.kt @@ -5,7 +5,7 @@ import android.content.Context import android.content.Intent import android.view.View import android.view.ViewGroup -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerFragment.kt index 165647890b..98fb3d2707 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/AnswerFragment.kt @@ -3,8 +3,8 @@ package com.gh.gamecenter.qa.editor import android.os.Bundle import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView.ItemDecoration -import com.gh.common.util.viewModelProvider -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.qa.entity.AnswerEntity @@ -35,4 +35,15 @@ class AnswerFragment : ListFragment() { return itemDecoration } + + override fun onNightModeChange() { + super.onNightModeChange() + if ((mListRv?.itemDecorationCount ?: 0) > 0) { + mListRv?.removeItemDecorationAt(0) + itemDecoration?.let { + mListRv?.addItemDecoration(it) + } + } + } + } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt index e7f814ae21..7d3459e878 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleAdapter.kt @@ -6,12 +6,17 @@ import android.content.Intent import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.collection.CollectionCommunityArticleViewHolder +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.CollectionComunityArticleItemBinding import com.gh.gamecenter.qa.entity.ArticleEntity @@ -50,7 +55,7 @@ class ArticleAdapter(context: Context, private val mEntrance: String?) : ListAda articleHolder.binding.image.goneIf(entity.images.isNullOrEmpty() && entity.getPassVideos().isNullOrEmpty()) articleHolder.binding.videoPlay.goneIf(entity.getPassVideos().isNullOrEmpty()) articleHolder.binding.voteCount.text = - "${entity.count.comment} 评论 · ${entity.count.vote} 点赞 · ${NewsUtils.getFormattedTime(entity.time?.create?:0)}" + "${entity.count.comment} 评论 · ${entity.count.vote} 点赞 · ${NewsUtils.getFormattedTime(entity.time?.create ?: 0)}" articleHolder.binding.communityName.text = entity.community.name if (entity.images.isNotEmpty()) { ImageUtils.display(articleHolder.binding.image, entity.images.safelyGetInRelease(0)) @@ -68,11 +73,13 @@ class ArticleAdapter(context: Context, private val mEntrance: String?) : ListAda articleHolder.binding.tvBadgeName.visibility = View.GONE } articleHolder.binding.sdvUserBadge.setOnClickListener { v -> - DialogUtils.showViewBadgeDialog(mContext, entity.user.badge) { - MtaHelper.onEvent("进入徽章墙_用户记录", "插入文章-收藏文章列表", entity.user.name + "(" + entity.user.id + ")") - MtaHelper.onEvent("徽章中心", "进入徽章中心", "插入文章-收藏文章列表") - DirectUtils.directToBadgeWall(mContext, entity.user.id, entity.user.name, entity.user.icon) - } + DialogUtils.showViewBadgeDialog(mContext, entity.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("进入徽章墙_用户记录", "插入文章-收藏文章列表", entity.user.name + "(" + entity.user.id + ")") + MtaHelper.onEvent("徽章中心", "进入徽章中心", "插入文章-收藏文章列表") + DirectUtils.directToBadgeWall(mContext, entity.user.id, entity.user.name, entity.user.icon) + } + }) } articleHolder.binding.tvBadgeName.setOnClickListener { v -> articleHolder.binding.sdvUserBadge.performClick() } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleFragment.kt index 5fc9acc787..7ce11fe440 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/ArticleFragment.kt @@ -3,8 +3,8 @@ package com.gh.gamecenter.qa.editor import android.os.Bundle import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.viewModelProvider -import com.gh.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.qa.entity.ArticleEntity @@ -28,10 +28,18 @@ class ArticleFragment : ListFragment() { return mAdapter!! } - override fun getItemDecoration(): RecyclerView.ItemDecoration? { + override fun getItemDecoration(): RecyclerView.ItemDecoration { val insetDivider = ContextCompat.getDrawable(requireContext(), R.drawable.divider_item_line_space_20) val itemDecoration = CustomDividerItemDecoration(requireContext(), notDecorateTheLastItem = true) itemDecoration.setDrawable(insetDivider!!) return itemDecoration } + + override fun onNightModeChange() { + super.onNightModeChange() + if ((mListRv?.itemDecorationCount ?: 0) > 0) { + mListRv?.removeItemDecorationAt(0) + mListRv?.addItemDecoration(itemDecoration) + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoActivity.kt index be6996de33..7e42a2aa68 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoActivity.kt @@ -5,11 +5,11 @@ import android.content.Intent import android.content.pm.ActivityInfo import android.os.Build import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.MD5Utils -import com.gh.common.util.NetworkUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.common.utils.NetworkUtils import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ActivityFullScreenVideoBinding import com.gh.gamecenter.forum.home.ForumScrollCalculatorHelper @@ -31,9 +31,9 @@ class FullScreenVideoActivity : BaseActivity() { DisplayUtils.hideNavigationBar(this) mBinding = ActivityFullScreenVideoBinding.bind(mContentView) - mVideoUrl = intent.getStringExtra(EntranceUtils.KEY_URL) ?: "" - val poster = intent.getStringExtra(EntranceUtils.KEY_POSTER_PATH) ?: "" - val title = intent.getStringExtra(EntranceUtils.KEY_NAVIGATION_TITLE) ?: "" + mVideoUrl = intent.getStringExtra(EntranceConsts.KEY_URL) ?: "" + val poster = intent.getStringExtra(EntranceConsts.KEY_POSTER_PATH) ?: "" + val title = intent.getStringExtra(EntranceConsts.KEY_NAVIGATION_TITLE) ?: "" mBinding.videoView.backBtn.setOnClickListener { finish() } setUpTopVideo(title, mVideoUrl, poster) } @@ -79,9 +79,9 @@ class FullScreenVideoActivity : BaseActivity() { companion object { fun start(context: Context, title: String, url: String, poster: String) { val intent = Intent(context, FullScreenVideoActivity::class.java) - intent.putExtra(EntranceUtils.KEY_URL, url) - intent.putExtra(EntranceUtils.KEY_NAVIGATION_TITLE, title) - intent.putExtra(EntranceUtils.KEY_POSTER_PATH, poster) + intent.putExtra(EntranceConsts.KEY_URL, url) + intent.putExtra(EntranceConsts.KEY_NAVIGATION_TITLE, title) + intent.putExtra(EntranceConsts.KEY_POSTER_PATH, poster) context.startActivity(intent) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoView.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoView.kt index 148ef3b8f5..083fe92e58 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/FullScreenVideoView.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.app.Application import android.content.Context import android.os.Bundle +import android.provider.Settings import android.util.AttributeSet import android.view.GestureDetector import android.view.MotionEvent @@ -12,11 +13,16 @@ import android.view.View import android.widget.ImageView import android.widget.SeekBar import androidx.core.content.ContextCompat -import com.gh.common.constant.Constants -import com.gh.common.observer.MuteCallback -import com.gh.common.observer.VolumeObserver -import com.gh.common.util.* +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.observer.MuteCallback +import com.gh.gamecenter.common.observer.VolumeObserver import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.debounceActionWithInterval +import com.gh.gamecenter.common.utils.rxTimer +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.databinding.LayoutFullScreenDetailVideoPortraitBinding import com.gh.gamecenter.forum.home.ForumScrollCalculatorHelper import com.gh.gamecenter.video.detail.CustomManager @@ -76,8 +82,8 @@ class FullScreenVideoView @JvmOverloads constructor(context: Context, attrs: Att debounceActionWithInterval(mBinding.errorBtn.id, 1000) { if (!NetworkUtils.isAvailable(mContext)) { Utils.toast(context, "网络异常,请检查手机网络状态") - setViewShowState(mStartButton, View.INVISIBLE) - mBinding.errorContainer.visibility = View.VISIBLE + setViewShowState(mStartButton, INVISIBLE) + mBinding.errorContainer.visibility = VISIBLE return@debounceActionWithInterval } startPlayLogic(false) @@ -98,7 +104,7 @@ class FullScreenVideoView @JvmOverloads constructor(context: Context, attrs: Att fun observeVolume(activity: Activity?) { tryWithDefaultCatch { activity?.applicationContext?.contentResolver?.registerContentObserver( - android.provider.Settings.System.CONTENT_URI, true, mVolumeObserver + Settings.System.CONTENT_URI, true, mVolumeObserver ) activity?.application?.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks { @@ -217,7 +223,7 @@ class FullScreenVideoView @JvmOverloads constructor(context: Context, attrs: Att // 这个库的 NetworkUtils.isWifiConnected 可能会触发空指针,这里换为我们自己的 if (!com.shuyu.gsyvideoplayer.utils.NetworkUtils.isAvailable(mContext) && !gsyVideoManager.isCacheFile) { Utils.toast(context, "网络异常,请检查手机网络状态") - } else if (!com.gh.common.util.NetworkUtils.isWifiConnected(mContext) && !gsyVideoManager.isCacheFile) { + } else if (!com.gh.gamecenter.common.utils.NetworkUtils.isWifiConnected(mContext) && !gsyVideoManager.isCacheFile) { Utils.toast(context, "当前为非Wi-Fi环境,请注意流量消耗") } }, 100) diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/GameActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/GameActivity.kt index bddaa7d784..9efbbfe0a3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/GameActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/GameActivity.kt @@ -2,20 +2,34 @@ package com.gh.gamecenter.qa.editor import android.content.Context import android.content.Intent +import android.os.Bundle import androidx.core.os.bundleOf -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class GameActivity : NormalActivity() { +class GameActivity : ToolBarActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } override fun provideNormalIntent(): Intent { return getTargetIntent(this, GameActivity::class.java, GameFragment::class.java) } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { fun getIntent(context: Context, title: String): Intent { val bundle = bundleOf( - EntranceUtils.KEY_NAVIGATION_TITLE to title + EntranceConsts.KEY_NAVIGATION_TITLE to title ) return getTargetIntent(context, GameActivity::class.java, GameFragment::class.java, bundle) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultAdapter.kt index 29e3173fd3..f663ae300b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultAdapter.kt @@ -4,7 +4,7 @@ import android.app.Activity import android.content.Context import android.content.Intent import android.view.ViewGroup -import com.gh.common.util.ImageUtils +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.R import com.gh.gamecenter.databinding.EditorInsertDefaultItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultItemViewHolder.kt index 7a2bf32fff..1886e5deee 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/GameDefaultItemViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.qa.editor -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.EditorInsertDefaultItemBinding class GameDefaultItemViewHolder(val binding: EditorInsertDefaultItemBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/GameFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/GameFragment.kt index a2ec7f0ef8..fe4511fa48 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/GameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/GameFragment.kt @@ -11,9 +11,9 @@ import android.widget.TextView import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.Config -import com.gh.common.util.EntranceUtils -import com.gh.common.view.FixLinearLayoutManager -import com.gh.common.view.VerticalItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment @@ -21,7 +21,7 @@ import com.gh.gamecenter.baselist.NormalListViewModel import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.entity.EditorInsertDefaultEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Util_System_Keyboard @@ -76,7 +76,7 @@ open class GameFragment : ListFragment 0) { + mListRv?.removeItemDecorationAt(0) + itemDecoration?.let { + mListRv?.addItemDecoration(it) + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertAnswerWrapperActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertAnswerWrapperActivity.kt index 05ebef7ec4..749fa027ac 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertAnswerWrapperActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertAnswerWrapperActivity.kt @@ -7,9 +7,15 @@ import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import com.gh.base.BaseActivity_TabLayout import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor class InsertAnswerWrapperActivity : BaseActivity_TabLayout() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } + override fun getLayoutId(): Int = R.layout.activity_tablayout_no_title_viewpager override fun initFragmentList(fragments: MutableList?) { @@ -22,6 +28,13 @@ class InsertAnswerWrapperActivity : BaseActivity_TabLayout() { tabTitleList?.add("收藏回答") } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { const val KEY_ANSWER_TYPE = "AnswerType" diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertArticleWrapperActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertArticleWrapperActivity.kt index 44cfdce631..8d54bf94fc 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertArticleWrapperActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertArticleWrapperActivity.kt @@ -7,9 +7,14 @@ import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import com.gh.base.BaseActivity_TabLayout import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor class InsertArticleWrapperActivity : BaseActivity_TabLayout() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } override fun getLayoutId(): Int = R.layout.activity_tablayout_no_title_viewpager override fun initFragmentList(fragments: MutableList?) { @@ -22,6 +27,12 @@ class InsertArticleWrapperActivity : BaseActivity_TabLayout() { tabTitleList?.add("收藏帖子") } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } companion object { const val KEY_ARTICLE_TYPE = "ArticleType" diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt index 0baf3555ef..0ef68f138f 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt @@ -2,34 +2,41 @@ package com.gh.gamecenter.qa.editor import android.content.Context import android.content.Intent +import android.os.Bundle import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import com.gh.base.BaseActivity_TabLayout -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R import com.gh.gamecenter.collection.GamesCollectionFragment +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.manager.UserManager class InsertGameCollectionWrapperActivity : BaseActivity_TabLayout() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } + override fun getLayoutId(): Int = R.layout.activity_tablayout_no_title_viewpager override fun initFragmentList(fragments: MutableList?) { fragments?.add( GamesCollectionFragment().with( bundleOf( - EntranceUtils.KEY_USER_ID to UserManager.getInstance().userId, - EntranceUtils.KEY_TYPE to GamesCollectionFragment.TYPE_USER, - EntranceUtils.KEY_INSERT_GAME_COLLECTION to true + EntranceConsts.KEY_USER_ID to UserManager.getInstance().userId, + EntranceConsts.KEY_TYPE to GamesCollectionFragment.TYPE_USER, + EntranceConsts.KEY_INSERT_GAME_COLLECTION to true ) ) ) fragments?.add( GamesCollectionFragment().with( bundleOf( - EntranceUtils.KEY_USER_ID to UserManager.getInstance().userId, - EntranceUtils.KEY_TYPE to GamesCollectionFragment.TYPE_COLLECT, - EntranceUtils.KEY_INSERT_GAME_COLLECTION to true + EntranceConsts.KEY_USER_ID to UserManager.getInstance().userId, + EntranceConsts.KEY_TYPE to GamesCollectionFragment.TYPE_COLLECT, + EntranceConsts.KEY_INSERT_GAME_COLLECTION to true ) ) ) @@ -40,6 +47,14 @@ class InsertGameCollectionWrapperActivity : BaseActivity_TabLayout() { tabTitleList?.add("收藏游戏单") } + + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { fun getIntent(context: Context): Intent { return Intent(context, InsertGameCollectionWrapperActivity::class.java) diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertVideoWrapperActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertVideoWrapperActivity.kt index aab641d485..0b79ee39d3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/InsertVideoWrapperActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/InsertVideoWrapperActivity.kt @@ -2,15 +2,22 @@ package com.gh.gamecenter.qa.editor import android.content.Context import android.content.Intent +import android.os.Bundle import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import com.gh.base.BaseActivity_TabLayout -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R import com.gh.gamecenter.collection.VideoFragment +import com.gh.gamecenter.common.utils.updateStatusBarColor class InsertVideoWrapperActivity : BaseActivity_TabLayout() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) + } + override fun getLayoutId(): Int = R.layout.activity_tablayout_no_title_viewpager override fun initFragmentList(fragments: MutableList?) { @@ -18,7 +25,7 @@ class InsertVideoWrapperActivity : BaseActivity_TabLayout() { VideoFragment().with( bundleOf( "videoStyle" to VideoFragment.VideoStyle.MINE.value, - EntranceUtils.KEY_INSERT_BBS_VIDEO to true + EntranceConsts.KEY_INSERT_BBS_VIDEO to true ) ) ) @@ -26,7 +33,7 @@ class InsertVideoWrapperActivity : BaseActivity_TabLayout() { VideoFragment().with( bundleOf( "videoStyle" to VideoFragment.VideoStyle.COLLECT.value, - EntranceUtils.KEY_INSERT_BBS_VIDEO to true + EntranceConsts.KEY_INSERT_BBS_VIDEO to true ) ) ) @@ -37,6 +44,13 @@ class InsertVideoWrapperActivity : BaseActivity_TabLayout() { tabTitleList?.add("收藏视频帖") } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { fun getIntent(context: Context): Intent { return Intent(context, InsertVideoWrapperActivity::class.java) diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/LinkFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/LinkFragment.kt index 9cb582c92e..79b333f2c7 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/LinkFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/LinkFragment.kt @@ -8,8 +8,8 @@ //import android.view.View //import android.widget.EditText //import android.widget.TextView -//import com.gh.base.fragment.BaseFragment -//import com.gh.base.fragment.WaitingDialogFragment +//import com.gh.gamecenter.common.base.fragment.BaseFragment +//import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment //import com.gh.gamecenter.R //import com.gh.gamecenter.qa.entity.AnswerEntity //import com.gh.gamecenter.qa.entity.ArticleEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/LinkViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/LinkViewModel.kt index 0049463380..b611fae80c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/LinkViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/LinkViewModel.kt @@ -4,7 +4,7 @@ //import androidx.lifecycle.AndroidViewModel //import androidx.lifecycle.MediatorLiveData //import androidx.lifecycle.MutableLiveData -//import com.gh.base.fragment.WaitingDialogFragment +//import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment //import com.gh.gamecenter.qa.entity.AnswerEntity //import com.gh.gamecenter.qa.entity.ArticleEntity //import com.gh.gamecenter.retrofit.Response diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaActivity.kt index 6f98c70ff3..9be29dd378 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaActivity.kt @@ -9,9 +9,10 @@ import android.widget.AdapterView import android.widget.ImageView import android.widget.PopupWindow import androidx.core.content.ContextCompat -import com.gh.base.ToolBarActivity -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.halo.assistant.HaloApp import com.zhihu.matisse.Matisse import com.zhihu.matisse.MimeType @@ -31,7 +32,7 @@ class LocalMediaActivity : ToolBarActivity(), AlbumCollection.AlbumCallbacks { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mChooseType = intent.getStringExtra(EntranceUtils.KEY_TYPE) ?: "" + mChooseType = intent.getStringExtra(EntranceConsts.KEY_TYPE) ?: "" if (mChooseType == ChooseType.VIDEO.value) { setNavigationTitle("本地视频") } else { @@ -79,7 +80,7 @@ class LocalMediaActivity : ToolBarActivity(), AlbumCollection.AlbumCallbacks { } else { MimeType.ofImage() } - val maxChooseCount = intent.getIntExtra(EntranceUtils.KEY_CHOOSE_MAX_COUNT, 1) + val maxChooseCount = intent.getIntExtra(EntranceConsts.KEY_CHOOSE_MAX_COUNT, 1) Matisse.from(this).choose(mimeType).showSingleMediaType(true).maxSelectable(maxChooseCount) mAlbumCollection.onCreate(this, this) mAlbumCollection.loadAlbums() @@ -114,12 +115,19 @@ class LocalMediaActivity : ToolBarActivity(), AlbumCollection.AlbumCallbacks { arrowIv?.setImageDrawable(drawable) } + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { fun getIntent(context: Context, chooseType: ChooseType, maxChooseCount: Int = 1, entrance: String): Intent { return Intent(context, LocalMediaActivity::class.java).apply { - putExtra(EntranceUtils.KEY_TYPE, chooseType.value) - putExtra(EntranceUtils.KEY_CHOOSE_MAX_COUNT, maxChooseCount) - putExtra(EntranceUtils.KEY_ENTRANCE, entrance) + putExtra(EntranceConsts.KEY_TYPE, chooseType.value) + putExtra(EntranceConsts.KEY_CHOOSE_MAX_COUNT, maxChooseCount) + putExtra(EntranceConsts.KEY_ENTRANCE, entrance) } } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaAdapter.kt index 7eaa0b08ea..b8edd75364 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaAdapter.kt @@ -5,9 +5,14 @@ import android.database.Cursor import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.LocalVideoItemBinding import com.zhihu.matisse.internal.entity.Item import com.zhihu.matisse.internal.ui.adapter.RecyclerViewCursorAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaFragment.kt index bd4ca27bf0..9fbd389a2c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaFragment.kt @@ -9,10 +9,15 @@ import android.view.LayoutInflater import android.view.View import androidx.core.os.bundleOf import androidx.recyclerview.widget.GridLayoutManager -import com.gh.base.fragment.BaseFragment +import com.gh.gamecenter.common.base.fragment.BaseFragment import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.view.GridSpacingItemDecoration import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.MD5Utils import com.gh.gamecenter.databinding.FragmentLocalMediaBinding import com.gh.gamecenter.entity.LocalVideoEntity import com.zhihu.matisse.internal.entity.Album @@ -39,11 +44,11 @@ class LocalMediaFragment : BaseFragment(), AlbumMediaCollection.AlbumMediaC override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mChooseType = arguments?.getString(EntranceUtils.KEY_TYPE) ?: "" + mChooseType = arguments?.getString(EntranceConsts.KEY_TYPE) ?: "" mBinding.reuseTvNoneData.text = "暂无数据~" mBinding.listRv.layoutManager = GridLayoutManager(requireContext(), 3) mBinding.listRv.addItemDecoration(GridSpacingItemDecoration(3, 4F.dip2px(), false)) - val maxChooseCount = arguments?.getInt(EntranceUtils.KEY_CHOOSE_MAX_COUNT, 1) + val maxChooseCount = arguments?.getInt(EntranceConsts.KEY_CHOOSE_MAX_COUNT, 1) mAdapter = LocalMediaAdapter( requireContext(), mChooseType, maxChooseCount ?: 1, mEntrance diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt index 2800d52a81..da5e78b7d7 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/OnLinkClickListener.kt @@ -2,10 +2,14 @@ package com.gh.gamecenter.qa.editor import android.content.Context import android.webkit.JavascriptInterface -import com.gh.base.BaseActivity -import com.gh.common.AppExecutor +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* import com.gh.gamecenter.GameDetailActivity +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.common.utils.clickToastByStatus +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.MtaEvent import com.gh.gamecenter.entity.MyVideoEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/OnlineVideoFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/OnlineVideoFragment.kt index 8f944f01ad..0afb34c3e7 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/OnlineVideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/OnlineVideoFragment.kt @@ -6,9 +6,10 @@ import android.view.LayoutInflater import android.view.View import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.view.GridSpacingItemDecoration import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.databinding.FragmentLocalMediaBinding import com.gh.gamecenter.entity.MyVideoEntity import com.gh.gamecenter.video.upload.view.UploadVideoActivity diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt index 45421caa37..c4f44e954e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoActivity.kt @@ -3,9 +3,9 @@ package com.gh.gamecenter.qa.editor import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R import com.zhihu.matisse.internal.entity.Item @@ -27,7 +27,7 @@ class PreviewVideoActivity : BaseActivity() { companion object { fun getIntent(context: Context,videos:ArrayList): Intent { val intent = Intent(context, PreviewVideoActivity::class.java) - intent.putExtra(EntranceUtils.KEY_VIDEO_LIST,videos) + intent.putExtra(EntranceConsts.KEY_VIDEO_LIST,videos) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoFragment.kt index 82eb2fad4a..d5cd681cf8 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoFragment.kt @@ -12,19 +12,21 @@ import androidx.recyclerview.widget.RecyclerView import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder import com.facebook.drawee.generic.RoundingParams import com.facebook.drawee.view.SimpleDraweeView -import com.gh.base.fragment.BaseFragment -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* -import com.gh.common.view.GridSpacingItemColorDecoration +import com.gh.gamecenter.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentPreviewVideoBinding import com.gh.gamecenter.databinding.ItemVideoSelectorBinding import com.gh.gamecenter.entity.LocalVideoEntity import com.gh.gamecenter.video.poster.PosterEditActivity import com.gh.gamecenter.video.upload.view.UploadVideoActivity import com.lightgame.adapter.BaseRecyclerAdapter -import com.lightgame.download.FileUtils import com.shuyu.gsyvideoplayer.GSYVideoManager import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder import com.zhihu.matisse.internal.entity.Item @@ -45,7 +47,7 @@ class PreviewVideoFragment : BaseFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - mVideoItems = arguments?.getParcelableArrayList(EntranceUtils.KEY_VIDEO_LIST) + mVideoItems = arguments?.getParcelableArrayList(EntranceConsts.KEY_VIDEO_LIST) ?: arrayListOf() if (mVideoItems.isNotEmpty()) { mVideoItems.forEach { @@ -72,7 +74,14 @@ class PreviewVideoFragment : BaseFragment() { } mBinding.videoSelectorRv.adapter = mVideoSelectorAdapter mBinding.videoSelectorRv.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) - mBinding.videoSelectorRv.addItemDecoration(GridSpacingItemColorDecoration(requireContext(), 4, 0, R.color.transparent)) + mBinding.videoSelectorRv.addItemDecoration( + GridSpacingItemColorDecoration( + requireContext(), + 4, + 0, + R.color.transparent + ) + ) mBinding.confirmTv.setOnClickListener { val intent = Intent() intent.putExtra(LocalVideoEntity::class.java.name, mLocalVideoList) diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoView.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoView.kt index b9aaf54735..40711a9c06 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/PreviewVideoView.kt @@ -2,14 +2,12 @@ package com.gh.gamecenter.qa.editor import android.content.Context import android.util.AttributeSet -import android.view.GestureDetector -import android.view.GestureDetector.SimpleOnGestureListener import android.view.MotionEvent import android.view.Surface import android.view.View import android.widget.ImageView import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.util.ImageUtils +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.R import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer import com.shuyu.gsyvideoplayer.video.base.GSYVideoView diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAdapter.kt index bcb515912a..91db64a311 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAdapter.kt @@ -6,12 +6,14 @@ import android.content.Intent import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.util.* +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter -import com.gh.gamecenter.baselist.NormalListViewModel +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.toSimpleCount +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.VideoStatusItemBinding import com.gh.gamecenter.entity.MyVideoEntity import com.gh.gamecenter.video.VideoStatusItemViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAlbumsSpanner.kt b/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAlbumsSpanner.kt index 132356a44b..f033d07d5a 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAlbumsSpanner.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/editor/VideoAlbumsSpanner.kt @@ -1,14 +1,16 @@ package com.gh.gamecenter.qa.editor -import android.animation.ValueAnimator import android.content.Context import android.graphics.drawable.ColorDrawable import android.view.View import android.view.ViewGroup -import android.widget.* +import android.widget.AdapterView +import android.widget.CursorAdapter +import android.widget.FrameLayout +import android.widget.PopupWindow import androidx.appcompat.widget.ListPopupWindow import androidx.core.content.ContextCompat -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.R class VideoAlbumsSpanner(val context: Context) { @@ -51,7 +53,7 @@ class VideoAlbumsSpanner(val context: Context) { val containerView = mListPopupWindow.listView as? ViewGroup val params = containerView?.layoutParams as ViewGroup.LayoutParams params.height = 280f.dip2px() - containerView.background = ColorDrawable(ContextCompat.getColor(context, R.color.white)) + containerView.background = ColorDrawable(ContextCompat.getColor(context, R.color.background_white)) containerView.layoutParams = params val parentContainer = containerView.parent as FrameLayout diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/AnswerEntity.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/AnswerEntity.kt index 88b76e931a..bee277b9c9 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/entity/AnswerEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/entity/AnswerEntity.kt @@ -7,12 +7,12 @@ import androidx.room.Entity import androidx.room.Ignore import androidx.room.PrimaryKey import androidx.room.TypeConverters -import com.gh.common.annotation.SyncIgnore -import com.gh.common.annotation.SyncPage -import com.gh.common.constant.Constants -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.util.SPUtils -import com.gh.common.util.TimeUtils +import com.gh.gamecenter.common.annotation.SyncIgnore +import com.gh.gamecenter.common.annotation.SyncPage +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.TimeUtils import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.room.converter.* diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/ArticleEntity.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/ArticleEntity.kt index aa7d9d534b..a5474ec9ad 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/entity/ArticleEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/entity/ArticleEntity.kt @@ -6,12 +6,12 @@ import androidx.room.Entity import androidx.room.Ignore import androidx.room.PrimaryKey import androidx.room.TypeConverters -import com.gh.common.annotation.SyncIgnore -import com.gh.common.annotation.SyncPage -import com.gh.common.constant.Constants -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.util.SPUtils -import com.gh.common.util.TimeUtils +import com.gh.gamecenter.common.annotation.SyncIgnore +import com.gh.gamecenter.common.annotation.SyncPage +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.TimeUtils import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.room.converter.* diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt index d5ef98465e..455dc8d14d 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/entity/EditorInsertEntity.kt @@ -1,7 +1,7 @@ package com.gh.gamecenter.qa.entity import android.os.Parcelable -import com.gh.common.util.eliminateDoubleQuote +import com.gh.gamecenter.common.utils.eliminateDoubleQuote import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.GamesCollectionEntity import com.gh.gamecenter.entity.MyVideoEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/Questions.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/Questions.kt index 1748e8982d..de4b39c69e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/entity/Questions.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/entity/Questions.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.qa.entity import android.os.Parcelable -import com.gh.common.annotation.SyncPage -import com.gh.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.annotation.SyncPage +import com.gh.gamecenter.common.syncpage.SyncFieldConstants import com.gh.gamecenter.entity.MeEntity import com.google.gson.annotations.SerializedName import kotlinx.parcelize.Parcelize diff --git a/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowAdapter.kt index 022dae5d5e..9555bd5fc5 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowAdapter.kt @@ -5,8 +5,8 @@ package com.gh.gamecenter.qa.follow //import android.view.ViewGroup //import androidx.appcompat.app.AppCompatActivity //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.constant.ItemViewType -//import com.gh.common.syncpage.ISyncAdapterHandler +//import com.gh.gamecenter.common.constant.ItemViewType +//import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler //import com.gh.common.util.* //import com.gh.gamecenter.R //import com.gh.gamecenter.adapter.viewholder.FooterViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowFragment.kt index dc0a339228..f20aa4bf9a 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowFragment.kt @@ -13,7 +13,7 @@ package com.gh.gamecenter.qa.follow //import butterknife.BindView //import butterknife.OnClick //import com.facebook.drawee.view.SimpleDraweeView -//import com.gh.common.constant.Constants +//import com.gh.gamecenter.common.constant.Constants //import com.gh.common.util.* //import com.gh.gamecenter.R //import com.gh.gamecenter.baselist.ListFragment diff --git a/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowMoreDialog.kt b/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowMoreDialog.kt index f6d929b1fd..1e532529b9 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowMoreDialog.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/follow/AskFollowMoreDialog.kt @@ -9,11 +9,11 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.BaseDialogFragment +import com.gh.gamecenter.common.base.fragment.BaseDialogFragment import com.gh.common.util.DirectUtils -import com.gh.common.util.ImageUtils +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.common.util.NewsUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.databinding.DialogAskFollowMoreBinding import com.gh.gamecenter.databinding.ItemAskFollowMoreBinding import com.gh.gamecenter.entity.UserEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/AnswerDraftViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/myqa/AnswerDraftViewHolder.kt index 72893f3464..7570277168 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/AnswerDraftViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/AnswerDraftViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.qa.myqa -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.AnswerDraftItemBinding class AnswerDraftViewHolder(val binding: AnswerDraftItemBinding): BaseRecyclerViewHolder(binding.root) diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java index 8243ee9c5d..8a6f013bab 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsAdapter.java @@ -7,9 +7,9 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.syncpage.ISyncAdapterHandler; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java index adcaf10844..218cffbc82 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/ConcernQuestionsFragment.java @@ -8,7 +8,7 @@ import android.view.View; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; @@ -42,7 +42,7 @@ public class ConcernQuestionsFragment extends ListFragment 0) { + mListRv.removeItemDecorationAt(0); + mListRv.addItemDecoration(getItemDecoration()); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskActivity.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskActivity.java index 8e4c651ccf..b1b91f4273 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskActivity.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskActivity.java @@ -4,18 +4,37 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.EntranceUtils; -import com.gh.gamecenter.NormalActivity; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; /** * Created by khy on 10/04/18. */ -public class MyAskActivity extends NormalActivity { +public class MyAskActivity extends ToolBarActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); + } + + @Override + protected boolean isAutoResetViewBackgroundEnabled() { + return true; + } + + @Override + protected void onNightModeChange() { + super.onNightModeChange(); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); + } public static Intent getIntent(Context context) { Bundle bundle = new Bundle(); - bundle.putString(EntranceUtils.KEY_ENTRANCE, "(我的光环)+(我的问答)"); + bundle.putString(EntranceConsts.KEY_ENTRANCE, "(我的光环)+(我的问答)"); return getTargetIntent(context, MyAskActivity.class, MyAskWrapperFragment.class, bundle); } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java index 39ff742def..0d8b35b179 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskWrapperFragment.java @@ -4,9 +4,9 @@ import android.os.Bundle; import android.view.MenuItem; import android.view.View; -import com.gh.base.fragment.BaseFragment_TabLayout; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.R; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.qa.article.MyArticleFragment; @@ -26,7 +26,7 @@ public class MyAskWrapperFragment extends BaseFragment_TabLayout { @Override protected void initFragmentList(List fragments) { String entrance = null; - if (getArguments() != null) entrance = getArguments().getString(EntranceUtils.KEY_ENTRANCE); + if (getArguments() != null) entrance = getArguments().getString(EntranceConsts.KEY_ENTRANCE); // fragments.add(ConcernQuestionsFragment.getInstance(entrance)); // fragments.add(MyQuestionsFragment.getInstance(entrance)); diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java index 0c6c3ad23a..793160578b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsAdapter.java @@ -7,9 +7,9 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.syncpage.ISyncAdapterHandler; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; diff --git a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java index 53845217a9..823097350b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/myqa/MyQuestionsFragment.java @@ -6,7 +6,7 @@ import android.view.View; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; @@ -33,7 +33,7 @@ public class MyQuestionsFragment extends ListFragment 0) { + mListRv?.removeItemDecorationAt(0) + mListRv?.addItemDecoration(itemDecoration) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/draft/QuestionDraftViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/draft/QuestionDraftViewModel.kt index d5bc50cdad..69d6e49aa2 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/draft/QuestionDraftViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/draft/QuestionDraftViewModel.kt @@ -3,11 +3,11 @@ package com.gh.gamecenter.qa.questions.draft import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.MutableLiveData -import com.gh.common.util.observableToMain +import com.gh.gamecenter.common.utils.observableToMain import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.entity.QuestionDraftEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import okhttp3.ResponseBody @@ -29,7 +29,7 @@ class QuestionDraftViewModel(application: Application) : ListViewModel(){ + .subscribe(object : Response(){ override fun onResponse(response: ResponseBody?) { super.onResponse(response) deleteDraftSuccess.postValue(Pair(draftId, true)) diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt index 1524562cd4..3bf078aebc 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditActivity.kt @@ -19,11 +19,18 @@ import androidx.core.widget.addTextChangedListener import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import com.gh.base.BaseRichEditorActivity -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants -import com.gh.common.util.* +import com.gh.common.util.NewLogUtils +import com.gh.common.util.NotificationHelper +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.core.utils.KeyboardHeightObserver +import com.gh.gamecenter.core.utils.PatternUtils import com.gh.gamecenter.databinding.ActivityQuestionsEditBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBReuse @@ -85,7 +92,7 @@ class QuestionEditActivity : BaseRichEditorActivity(), } } else if (requestCode == ChooseForumActivity.CHOOSE_FORUM_REQUEST) { val community = - data.getParcelableExtra(EntranceUtils.KEY_COMMUNITY_DATA) + data.getParcelableExtra(EntranceConsts.KEY_COMMUNITY_DATA) mViewModel.communityEntity = community mViewModel.type = community?.type ?: "" if (mViewModel.questionEntity != null) { @@ -108,7 +115,7 @@ class QuestionEditActivity : BaseRichEditorActivity(), override fun onActivityDialogResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == ChooseActivityDialogFragment.REQUEST_CODE && resultCode == Activity.RESULT_OK) { - getChooseSelectCallback().invoke(data?.getParcelableExtra(EntranceUtils.KEY_DATA)) + getChooseSelectCallback().invoke(data?.getParcelableExtra(EntranceConsts.KEY_DATA)) } } @@ -250,7 +257,7 @@ class QuestionEditActivity : BaseRichEditorActivity(), mBaseHandler.sendEmptyMessageDelayed(1, SAVE_DRAFTS_INTERVAL_TIME.toLong()) } else -> { // 新增问题 - var searchKey = intent.getStringExtra(EntranceUtils.KEY_QUESTIONS_SEARCH_KEY) + var searchKey = intent.getStringExtra(EntranceConsts.KEY_QUESTIONS_SEARCH_KEY) if (!searchKey.isNullOrEmpty() && searchKey.length > QuestionEditViewModel.QUESTION_TITLE_MAX_LENGTH) searchKey = searchKey.substring(0, QuestionEditViewModel.QUESTION_TITLE_MAX_LENGTH) @@ -313,7 +320,7 @@ class QuestionEditActivity : BaseRichEditorActivity(), mBinding.chooseForumTv.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null) mViewModel.isModeratorPatch = - intent.getBooleanExtra(EntranceUtils.KEY_QUESTION_MODERATOR_PATCH, false) + intent.getBooleanExtra(EntranceConsts.KEY_QUESTION_MODERATOR_PATCH, false) // 编辑问题时可能存在草稿 if (mViewModel.questionDraftEntity != null) { @@ -456,10 +463,12 @@ class QuestionEditActivity : BaseRichEditorActivity(), "图片正在上传中,确定取消吗?", "确定", "取消", - { - mViewModel.uploadImageSubscription!!.dispose() - mUploadImageCancelDialog?.dismiss() - mProcessingDialog?.dismiss() + object :ConfirmListener{ + override fun onConfirm() { + mViewModel.uploadImageSubscription!!.dispose() + mUploadImageCancelDialog?.dismiss() + mProcessingDialog?.dismiss() + } }, null ) @@ -803,7 +812,7 @@ class QuestionEditActivity : BaseRichEditorActivity(), // searchKey 补充到标题(新增问题) fun getIntent(context: Context, searchKey: String?): Intent { val intent = Intent(context, QuestionEditActivity::class.java) - intent.putExtra(EntranceUtils.KEY_QUESTIONS_SEARCH_KEY, searchKey) + intent.putExtra(EntranceConsts.KEY_QUESTIONS_SEARCH_KEY, searchKey) intent.putExtra(QuestionEditViewModel.QUESTION_FORM_SEARCH, true) return intent } @@ -838,7 +847,7 @@ class QuestionEditActivity : BaseRichEditorActivity(), fun getManagerIntent(context: Context, entity: QuestionsDetailEntity): Intent { val intent = Intent(context, QuestionEditActivity::class.java) intent.putExtra(QuestionsDetailEntity::class.java.simpleName, entity) - intent.putExtra(EntranceUtils.KEY_QUESTION_MODERATOR_PATCH, true) + intent.putExtra(EntranceConsts.KEY_QUESTION_MODERATOR_PATCH, true) return intent } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt index 70ef6ed91a..e48ebf0568 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/QuestionEditViewModel.kt @@ -8,9 +8,14 @@ import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData import com.gh.base.BaseRichEditorViewModel import com.gh.base.RichType -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.ActivityLabelEntity import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.GameEntity @@ -18,11 +23,10 @@ import com.gh.gamecenter.entity.Permissions import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.qa.BbsType import com.gh.gamecenter.qa.entity.QuestionDraftEntity import com.gh.gamecenter.qa.entity.QuestionsDetailEntity -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt index 43432d9a45..a171c76976 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/TagsSelectFragment.kt @@ -14,11 +14,20 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.base.fragment.BaseDialogWrapperFragment -import com.gh.base.fragment.BaseFragment -import com.gh.common.AppExecutor +import com.gh.gamecenter.common.base.fragment.BaseDialogWrapperFragment +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.checkSameFromStringArray +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.QuestionsEditTagBinding import com.gh.gamecenter.entity.ErrorEntity import com.gh.gamecenter.entity.NotificationUgc @@ -47,7 +56,7 @@ class TagsSelectFragment : BaseFragment() { fun getInstance(detail: QuestionsDetailEntity): TagsSelectFragment { val bundle = Bundle() bundle.putParcelable(QuestionsDetailEntity::class.java.simpleName, detail) - bundle.putBoolean(EntranceUtils.KEY_QUESTION_MODERATOR_PATCH, true) + bundle.putBoolean(EntranceConsts.KEY_QUESTION_MODERATOR_PATCH, true) val fragment = TagsSelectFragment() fragment.arguments = bundle return fragment @@ -68,7 +77,7 @@ class TagsSelectFragment : BaseFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBinding = QuestionsEditTagBinding.bind(mCachedView) - val isModeratorPatch = arguments?.getBoolean(EntranceUtils.KEY_QUESTION_MODERATOR_PATCH) + val isModeratorPatch = arguments?.getBoolean(EntranceConsts.KEY_QUESTION_MODERATOR_PATCH) if (isModeratorPatch != null && isModeratorPatch) { mViewModel = ViewModelProviders.of(this).get(QuestionEditViewModel::class.java) mViewModel?.isModeratorPatch = isModeratorPatch @@ -145,14 +154,17 @@ class TagsSelectFragment : BaseFragment() { data?.questionTitle, data?.getFollowCount().toString() + " 关注 · " + data?.answerCount + " 回答", "继续提交", "去看看", - { - mViewModel?.uploadPicAndPostQuestion(true) - MtaHelper.onEvent("提交相似问题弹窗", UserManager.getInstance().community.name, "问题相似-继续提交") - }, - { - MtaHelper.onEvent("提交相似问题弹窗", UserManager.getInstance().community.name, "问题相似-去看看") - val intent = NewQuestionDetailActivity.getIntent(requireContext(), data?.questionId ?: "", mEntrance, "相似问题") - context?.startActivity(intent) + object : CancelListener { + override fun onCancel() { + mViewModel?.uploadPicAndPostQuestion(true) + MtaHelper.onEvent("提交相似问题弹窗", UserManager.getInstance().community.name, "问题相似-继续提交") + } + }, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("提交相似问题弹窗", UserManager.getInstance().community.name, "问题相似-去看看") + val intent = NewQuestionDetailActivity.getIntent(requireContext(), data?.questionId ?: "", mEntrance, "相似问题") + context?.startActivity(intent) + } }) } errorEntity?.code == 403067 -> { @@ -162,10 +174,12 @@ class TagsSelectFragment : BaseFragment() { data?.questionTitle, data?.getFollowCount().toString() + " 关注 · " + data?.answerCount + " 回答", null, "去看看", null, - { - MtaHelper.onEvent("提交重复问题弹窗", UserManager.getInstance().community.name, "问题重复-去看看") - val intent = NewQuestionDetailActivity.getIntent(requireContext(), data?.questionId ?: "", mEntrance, "重复问题") - context?.startActivity(intent) + object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("提交重复问题弹窗", UserManager.getInstance().community.name, "问题重复-去看看") + val intent = NewQuestionDetailActivity.getIntent(requireContext(), data?.questionId ?: "", mEntrance, "重复问题") + context?.startActivity(intent) + } }) } else -> { diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/tip/QuestionTitleTipAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/tip/QuestionTitleTipAdapter.kt index cc799840ec..3896ddf85e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/tip/QuestionTitleTipAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/tip/QuestionTitleTipAdapter.kt @@ -10,11 +10,11 @@ import android.widget.AutoCompleteTextView import android.widget.BaseAdapter import android.widget.Filter import android.widget.Filterable -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.QuestionEditTitleSearchItemBinding import com.gh.gamecenter.qa.entity.QuestionsIndexEntity import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteActivity.java b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteActivity.java index 80fdbe2bef..b10a8e0000 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteActivity.java +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteActivity.java @@ -4,20 +4,33 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.common.util.EntranceUtils; -import com.gh.gamecenter.NormalActivity; +import com.gh.gamecenter.common.base.ToolBarActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.qa.entity.QuestionsDetailEntity; /** * Created by khy on 10/04/18. */ -public class QuestionsInviteActivity extends NormalActivity { +public class QuestionsInviteActivity extends ToolBarActivity { + + @Override + protected boolean isAutoResetViewBackgroundEnabled() { + return true; + } + + @Override + protected void onNightModeChange() { + super.onNightModeChange(); + ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); + } public static Intent getIntent(Context context, QuestionsDetailEntity entity, String entrance) { Bundle bundle = new Bundle(); bundle.putParcelable(QuestionsDetailEntity.class.getSimpleName(), entity); - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance); + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance); return getTargetIntent(context, QuestionsInviteActivity.class, QuestionsInviteWrapperFragment.class, bundle); } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt index 72865e6955..9489d5d865 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt @@ -4,8 +4,8 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.OnListClickListener -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.callback.OnListClickListener +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.DirectUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt index 328679b4b8..39f746be44 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt @@ -3,11 +3,15 @@ package com.gh.gamecenter.qa.questions.invite import android.os.Bundle import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.ifLogin +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.qa.answer.detail.SimpleAnswerDetailActivity import com.gh.gamecenter.qa.entity.InviteEntity import com.gh.gamecenter.qa.entity.QuestionsDetailEntity @@ -25,7 +29,7 @@ class QuestionsInviteFragment : ListFragment { return Pair( - targetFragment.arguments?.getString(EntranceUtils.KEY_QUESTIONS_ID) ?: "", - targetFragment.arguments?.getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)?.id + targetFragment.arguments?.getString(EntranceConsts.KEY_QUESTIONS_ID) ?: "", + targetFragment.arguments?.getParcelable(EntranceConsts.KEY_COMMUNITY_DATA)?.id ?: "") } + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { @JvmStatic fun getIntent( @@ -44,9 +51,9 @@ class NewQuestionDetailActivity : NormalActivity() { path: String ): Intent { val intent = Intent(context, NewQuestionDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_QUESTIONS_ID, questionId) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } @@ -61,10 +68,10 @@ class NewQuestionDetailActivity : NormalActivity() { path: String ): Intent { val intent = Intent(context, NewQuestionDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_QUESTIONS_ID, questionId) - intent.putExtra(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, true) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId) + intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } @@ -77,11 +84,11 @@ class NewQuestionDetailActivity : NormalActivity() { path: String ): Intent { val intent = Intent(context, NewQuestionDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_QUESTIONS_ID, questionId) - intent.putExtra(EntranceUtils.KEY_ANSWER_ID, answerId) - intent.putExtra(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, true) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId) + intent.putExtra(EntranceConsts.KEY_ANSWER_ID, answerId) + intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } @@ -96,12 +103,30 @@ class NewQuestionDetailActivity : NormalActivity() { scrollToComment: Boolean = false ): Intent { val intent = Intent(context, NewQuestionDetailActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_QUESTIONS_ID, questionId) - intent.putExtra(EntranceUtils.KEY_ANSWER_ID, answerId) - intent.putExtra(EntranceUtils.KEY_RECOMMEND_ID, recommendId) - intent.putExtra(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, scrollToComment) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId) + intent.putExtra(EntranceConsts.KEY_ANSWER_ID, answerId) + intent.putExtra(EntranceConsts.KEY_RECOMMEND_ID, recommendId) + intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, scrollToComment) + intent.putExtra(EntranceConsts.KEY_PATH, path) + return intent + } + + @JvmStatic + fun getSpecifiedCommentIntent( + context: Context, + questionId: String, + answerId: String, + entrance: String, + path: String + ): Intent { + val intent = Intent(context, NewQuestionDetailActivity::class.java) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_QUESTIONS_ID, questionId) + intent.putExtra(EntranceConsts.KEY_ANSWER_ID, answerId) + intent.putExtra(EntranceConsts.KEY_TOP_COMMENT_ID, answerId) + intent.putExtra(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, true) + intent.putExtra(EntranceConsts.KEY_PATH, path) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailAdapter.kt index 128082c565..9a239aaa48 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailAdapter.kt @@ -4,8 +4,8 @@ import android.content.Context import android.text.SpannableStringBuilder import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.SpanBuilder -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.databinding.ItemArticleDetailContentBinding diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt index 62f528c8bd..0117a31281 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt @@ -15,12 +15,19 @@ import androidx.core.view.ViewCompat import androidx.lifecycle.Lifecycle import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.entity.AdditionalParamsEntity +import com.gh.gamecenter.common.entity.NormalShareEntity +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.FragmentArticleDetailBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBDeleteDetail @@ -66,9 +73,9 @@ class NewQuestionDetailFragment : super.onCreate(savedInstanceState) mScrollToCommentArea = - arguments?.getBoolean(EntranceUtils.KEY_SCROLL_TO_COMMENT_AREA, false) + arguments?.getBoolean(EntranceConsts.KEY_SCROLL_TO_COMMENT_AREA, false) ?: false - mIsRecommendsContent = arguments?.getBoolean(EntranceUtils.KEY_RECOMMENDS_CONTENTS, false) + mIsRecommendsContent = arguments?.getBoolean(EntranceConsts.KEY_RECOMMENDS_CONTENTS, false) ?: false NewLogUtils.logQuestionDetailClick("view_question_detail") } @@ -121,14 +128,14 @@ class NewQuestionDetailFragment : ?: 0, "回答" ) updateFilterView() - if (EntranceUtils.ENTRANCE_WELCOME == mEntrance) { + if (EntranceConsts.ENTRANCE_WELCOME == mEntrance) { LogUtils.uploadCommentFromWelcomeDialog() } mViewModel.load(LoadType.REFRESH) } } else if (requestCode == MoreFunctionPanelDialog.REQUEST_CODE && resultCode == Activity.RESULT_OK) { mViewModel.questionDetail?.run { - getItemClickCallback(this).invoke(data.getParcelableExtra(EntranceUtils.KEY_DATA)) + getItemClickCallback(this).invoke(data.getParcelableExtra(EntranceConsts.KEY_DATA)) } } } @@ -244,7 +251,7 @@ class NewQuestionDetailFragment : mReuseNoData?.visibility = View.VISIBLE if (mIsRecommendsContent) { val data = Intent() - data.putExtra(EntranceUtils.KEY_ANSWER_ID, mViewModel.questionId) + data.putExtra(EntranceConsts.KEY_ANSWER_ID, mViewModel.questionId) requireActivity().setResult(Activity.RESULT_OK, data) DialogHelper.showDialog( requireContext(), @@ -442,11 +449,11 @@ class NewQuestionDetailFragment : return viewModelProvider( NewQuestionDetailViewModel.Factory( HaloApp.getInstance().application, - arguments?.getString(EntranceUtils.KEY_QUESTIONS_ID) ?: "", - arguments?.getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)?.id - ?: "", - arguments?.getString(EntranceUtils.KEY_ANSWER_ID) ?: "", - arguments?.getString(EntranceUtils.KEY_RECOMMEND_ID) ?: "" + arguments?.getString(EntranceConsts.KEY_QUESTIONS_ID) ?: "", + arguments?.getParcelable(EntranceConsts.KEY_COMMUNITY_DATA)?.id ?: "", + arguments?.getString(EntranceConsts.KEY_ANSWER_ID) ?: "", + arguments?.getString(EntranceConsts.KEY_RECOMMEND_ID) ?: "", + arguments?.getString(EntranceConsts.KEY_TOP_COMMENT_ID) ?: "", ) ) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailViewModel.kt index 0ff014acbb..8f050ed9e3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailViewModel.kt @@ -5,23 +5,26 @@ import android.app.Application import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.json.json -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.toRequestBody import com.gh.gamecenter.entity.CommentEntity -import com.gh.gamecenter.entity.Permissions import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.article.detail.CommentItemData import com.gh.gamecenter.qa.comment.base.BaseCommentViewModel import com.gh.gamecenter.qa.entity.QuestionsDetailEntity -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.lightgame.utils.Utils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -37,13 +40,15 @@ class NewQuestionDetailViewModel( communityId: String = "", val answerId: String = "", val recommendId: String = "", + topCommentId: String = "", ) : BaseCommentViewModel( application, articleId = "", communityId = communityId, videoId = "", - questionId = questionId + questionId = questionId, + topCommentId = topCommentId ) { var questionRenderedLiveData = MutableLiveData() var questionPageFinishedLiveData = MutableLiveData() @@ -218,7 +223,8 @@ class NewQuestionDetailViewModel( private val questionId: String = "", private val communityId: String = "", private val answerId: String = "", - private val recommendId: String = "" + private val recommendId: String = "", + private val topCommentId: String = "" ) : ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { @@ -227,7 +233,8 @@ class NewQuestionDetailViewModel( questionId = questionId, communityId = communityId, answerId = answerId, - recommendId = recommendId + recommendId = recommendId, + topCommentId = topCommentId ) as T } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt index 630c9608c1..2c1b65e314 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/QuestionDetailContentViewHolder.kt @@ -9,11 +9,17 @@ import android.widget.LinearLayout import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.gh.common.DefaultUrlHandler -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.common.view.RichEditor import com.gh.gamecenter.ImageViewerActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemArticleDetailContentBinding import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.editor.OnLinkClickListener @@ -32,6 +38,7 @@ class QuestionDetailContentViewHolder( fun bindView(question: QuestionsDetailEntity) { binding.run { richEditor.setInputEnabled(false) + richEditor.enableForceDark(NightModeUtils.isNightMode(binding.root.context)) richEditor.setPadding(16, 4, 16, 4) richEditor.addJavascriptInterface(JsInterface(question.status), "imagelistener") richEditor.addJavascriptInterface( @@ -186,14 +193,16 @@ class QuestionDetailContentViewHolder( badgeTv.text = question.user.badge?.name ImageUtils.display(badgeIv, question.user.badge?.icon) badgeIv.setOnClickListener { - DialogUtils.showViewBadgeDialog(root.context, question.user.badge) { - DirectUtils.directToBadgeWall( - root.context, - question.user.id, - question.user.name, - question.user.icon - ) - } + DialogUtils.showViewBadgeDialog(root.context, question.user.badge, object : ConfirmListener { + override fun onConfirm() { + DirectUtils.directToBadgeWall( + root.context, + question.user.id, + question.user.name, + question.user.icon + ) + } + }) } badgeTv.setOnClickListener { badgeIv.performClick() } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java index b55a419b47..a6c7d624e1 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsAdapter.java @@ -10,11 +10,11 @@ //import android.view.View; //import android.view.ViewGroup; // -//import com.gh.base.OnListClickListener; -//import com.gh.common.constant.ItemViewType; -//import com.gh.common.syncpage.ISyncAdapterHandler; -//import com.gh.common.util.DialogHelper; -//import com.gh.common.util.MtaHelper; +//import com.gh.gamecenter.common.callback.OnListClickListener; +//import com.gh.gamecenter.common.constant.ItemViewType; +//import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler; +//import com.gh.gamecenter.common.utils.DialogHelper; +//import com.gh.gamecenter.core.utils.MtaHelper; //import com.gh.gamecenter.R; //import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; //import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java index 0c02c7204c..3c6409e16f 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsFragment.java @@ -18,13 +18,13 @@ //import androidx.fragment.app.Fragment; //import androidx.recyclerview.widget.RecyclerView; // -//import com.gh.common.constant.Constants; +//import com.gh.gamecenter.common.constant.Constants; //import com.gh.common.util.CheckLoginUtils; //import com.gh.common.util.EntranceUtils; //import com.gh.common.util.LogUtils; -//import com.gh.common.view.DumbRefreshLayout; -//import com.gh.common.view.SwipeRefreshHeader; -//import com.gh.common.view.VerticalItemDecoration; +//import com.gh.gamecenter.common.view.DumbRefreshLayout; +//import com.gh.gamecenter.common.view.SwipeRefreshHeader; +//import com.gh.gamecenter.common.view.VerticalItemDecoration; //import com.gh.gamecenter.R; //import com.gh.gamecenter.baselist.ListFragment; //import com.gh.gamecenter.baselist.LoadStatus; diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewModel.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewModel.java index 24a053e120..58587944dd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewModel.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskQuestionsRecommendsViewModel.java @@ -12,7 +12,7 @@ //import androidx.lifecycle.MediatorLiveData; //import androidx.lifecycle.MutableLiveData; // -//import com.gh.common.util.UrlFilterUtils; +//import com.gh.gamecenter.core.utils.UrlFilterUtils; //import com.gh.gamecenter.R; //import com.gh.gamecenter.baselist.BaseListViewModel; //import com.gh.gamecenter.baselist.LoadStatus; diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendSubjectViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendSubjectViewModel.kt index de5a63c108..8a3753c6ef 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendSubjectViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendSubjectViewModel.kt @@ -7,7 +7,7 @@ package com.gh.gamecenter.qa.recommends //import androidx.lifecycle.MutableLiveData //import com.gh.gamecenter.entity.LinkEntity //import com.gh.gamecenter.manager.UserManager -//import com.gh.gamecenter.retrofit.BiResponse +//import com.gh.gamecenter.common.retrofit.BiResponse //import com.gh.gamecenter.retrofit.Response //import com.gh.gamecenter.retrofit.RetrofitManager //import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt index 29f4c8b8d4..8aedac4c6e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendWrapperFragment.kt @@ -15,11 +15,11 @@ //import androidx.lifecycle.ViewModelProviders //import androidx.viewpager.widget.ViewPager //import com.facebook.drawee.view.SimpleDraweeView -//import com.gh.base.fragment.BaseFragment +//import com.gh.gamecenter.common.base.fragment.BaseFragment //import com.gh.common.util.* -//import com.gh.common.view.BugFixedPopupWindow -//import com.gh.common.view.DumbRefreshLayout -//import com.gh.common.view.SwipeRefreshHeader +//import com.gh.gamecenter.common.view.BugFixedPopupWindow +//import com.gh.gamecenter.common.view.DumbRefreshLayout +//import com.gh.gamecenter.common.view.SwipeRefreshHeader //import com.gh.gamecenter.R //import com.gh.gamecenter.entity.CommunityEntity //import com.gh.gamecenter.entity.LinkEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java index 9b13be224a..e957557f3e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/AskRecommendsSubjectPageAdapter.java @@ -8,8 +8,8 @@ //import android.view.ViewGroup; // //import com.gh.common.util.DirectUtils; -//import com.gh.common.util.ImageUtils; -//import com.gh.common.util.MtaHelper; +//import com.gh.gamecenter.common.utils.ImageUtils; +//import com.gh.gamecenter.core.utils.MtaHelper; //import com.gh.gamecenter.R; //import com.gh.gamecenter.adapter.RecyclingPagerAdapter; //import com.gh.gamecenter.databinding.AskRecommendsSubjectItemBinding; diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernAdapter.kt index 28ee764c69..16a1467d2f 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernAdapter.kt @@ -4,8 +4,8 @@ //import android.view.ViewGroup //import androidx.core.content.ContextCompat //import com.gh.common.util.DirectUtils -//import com.gh.common.util.MtaHelper -//import com.gh.common.util.toColor +//import com.gh.gamecenter.core.utils.MtaHelper +//import com.gh.gamecenter.common.utils.toColor //import com.gh.gamecenter.R //import com.gh.gamecenter.databinding.AskRecommendsConcernListItemBinding //import com.gh.gamecenter.manager.UserManager diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernItemViewHolder.kt index f5e647b285..ac2a6f4efd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernItemViewHolder.kt @@ -1,6 +1,6 @@ //package com.gh.gamecenter.qa.recommends // -//import com.gh.base.BaseRecyclerViewHolder +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder //import com.gh.gamecenter.databinding.AskRecommendsItemConcernBinding // //class RecommendConcernItemViewHolder(val binding: AskRecommendsItemConcernBinding) : BaseRecyclerViewHolder(binding.root) diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernListItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernListItemViewHolder.kt index 047c429157..5c989d8303 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernListItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/RecommendConcernListItemViewHolder.kt @@ -1,6 +1,6 @@ //package com.gh.gamecenter.qa.recommends // -//import com.gh.base.BaseRecyclerViewHolder +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder //import com.gh.gamecenter.databinding.AskRecommendsConcernListItemBinding // //class RecommendConcernListItemViewHolder(val binding: AskRecommendsConcernListItemBinding) : BaseRecyclerViewHolder(binding.root) diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt index ec331b6693..8b2a8fccfb 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestAdapter.kt @@ -4,8 +4,8 @@ //import android.view.View //import android.view.ViewGroup //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.constant.ItemViewType -//import com.gh.common.syncpage.ISyncAdapterHandler +//import com.gh.gamecenter.common.constant.ItemViewType +//import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler //import com.gh.gamecenter.R //import com.gh.gamecenter.adapter.viewholder.FooterViewHolder //import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt index e706409ec5..d1e50dcf47 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/recommends/newest/RecommendNewestFragment.kt @@ -6,8 +6,8 @@ //import android.view.View //import androidx.lifecycle.ViewModelProviders //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.view.DumbRefreshLayout -//import com.gh.common.view.VerticalItemDecoration +//import com.gh.gamecenter.common.view.DumbRefreshLayout +//import com.gh.gamecenter.common.view.VerticalItemDecoration //import com.gh.gamecenter.baselist.ListFragment //import com.gh.gamecenter.baselist.LoadStatus //import com.gh.gamecenter.baselist.LoadType diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java index dd35189e81..fca0358c9b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchActivity.java @@ -19,14 +19,14 @@ //import androidx.fragment.app.Fragment; //import androidx.fragment.app.FragmentTransaction; // -//import com.gh.base.ToolBarActivity; +//import com.gh.gamecenter.common.base.ToolBarActivity; //import com.gh.common.util.CheckLoginUtils; //import com.gh.common.util.EntranceUtils; //import com.gh.common.util.LogUtils; -//import com.gh.common.util.MtaHelper; -//import com.gh.common.util.PatternUtils; -//import com.gh.common.util.PermissionHelper; -//import com.gh.common.util.TextHelper; +//import com.gh.gamecenter.core.utils.MtaHelper; +//import com.gh.gamecenter.core.utils.PatternUtils; +//import com.gh.gamecenter.common.utils.PermissionHelper; +//import com.gh.gamecenter.common.utils.TextHelper; //import com.gh.gamecenter.R; //import com.gh.gamecenter.db.AskSearchHistoryDao; //import com.gh.gamecenter.eventbus.EBSearch; diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java index a692d126c7..d5c390dfdf 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java @@ -4,7 +4,7 @@ //import android.text.TextUtils; //import android.view.View; // -//import com.gh.base.fragment.BaseFragment_TabLayout; +//import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout; //import com.gh.common.util.EntranceUtils; //import com.gh.gamecenter.R; //import com.gh.gamecenter.qa.search.artilce.ArticleFragment; diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchNormalItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchNormalItemViewHolder.java index 7e7893347f..c83a842f2d 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchNormalItemViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchNormalItemViewHolder.java @@ -5,8 +5,8 @@ //import android.widget.TextView; // //import com.facebook.drawee.view.SimpleDraweeView; -//import com.gh.base.BaseRecyclerViewHolder; -//import com.gh.common.view.DrawableView; +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +//import com.gh.gamecenter.common.view.DrawableView; //import com.gh.gamecenter.R; //import com.gh.gamecenter.qa.entity.SearchHottestEntity; // diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchQuestionItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchQuestionItemViewHolder.kt index 3cc9d26e2a..8070dadbcf 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchQuestionItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchQuestionItemViewHolder.kt @@ -1,6 +1,6 @@ //package com.gh.gamecenter.qa.search // -//import com.gh.base.BaseRecyclerViewHolder +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder //import com.gh.gamecenter.databinding.AskSearchQuestionItemBinding // //class AskSearchQuestionItemViewHolder(val binding: AskSearchQuestionItemBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleAdapter.kt index 04a3e67456..5d3f0f92a6 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleAdapter.kt @@ -5,8 +5,8 @@ //import android.view.View //import android.view.ViewGroup //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.util.ImageUtils -//import com.gh.common.util.NumberUtils +//import com.gh.gamecenter.common.utils.ImageUtils +//import com.gh.gamecenter.core.utils.NumberUtils //import com.gh.gamecenter.R //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.qa.entity.ArticleEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleFragment.kt index 5efe2f4804..a1291b304c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/artilce/ArticleFragment.kt @@ -3,7 +3,7 @@ //import androidx.lifecycle.ViewModelProviders //import android.text.TextUtils //import com.gh.common.util.EntranceUtils -//import com.gh.common.util.UrlFilterUtils +//import com.gh.gamecenter.core.utils.UrlFilterUtils //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.manager.UserManager //import com.gh.gamecenter.qa.entity.ArticleEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt index 925195f131..e9154c9d1c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt @@ -4,8 +4,8 @@ //import android.text.TextUtils //import android.view.View //import android.view.ViewGroup -//import com.gh.common.constant.ItemViewType -//import com.gh.common.syncpage.ISyncAdapterHandler +//import com.gh.gamecenter.common.constant.ItemViewType +//import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler //import com.gh.common.util.DirectUtils //import com.gh.gamecenter.R //import com.gh.gamecenter.adapter.viewholder.FooterViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragment.kt index 6f5b35466d..dc9fa3776c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragment.kt @@ -7,8 +7,8 @@ //import androidx.recyclerview.widget.RecyclerView //import android.view.View //import butterknife.OnClick -//import com.gh.base.fragment.BaseFragment -//import com.gh.common.util.DialogHelper +//import com.gh.gamecenter.common.base.fragment.BaseFragment +//import com.gh.gamecenter.common.utils.DialogHelper //import com.gh.common.util.DialogUtils //import com.gh.common.util.EntranceUtils //import com.gh.gamecenter.R diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragmentAdapter.kt index 7cc16950f0..a5104736b1 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/history/HistoryFragmentAdapter.kt @@ -2,8 +2,8 @@ // //import android.content.Context //import android.view.ViewGroup -//import com.gh.base.BaseRecyclerViewHolder -//import com.gh.common.util.MtaHelper +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +//import com.gh.gamecenter.core.utils.MtaHelper //import com.gh.gamecenter.R //import com.gh.gamecenter.databinding.CommunitySearchHistoryItemBinding //import com.gh.gamecenter.db.AskSearchHistoryDao diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/history/HotFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/history/HotFragmentAdapter.kt index 0ddd65dbb0..64023749b1 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/history/HotFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/history/HotFragmentAdapter.kt @@ -2,8 +2,8 @@ // //import android.content.Context //import android.view.ViewGroup -//import com.gh.base.BaseRecyclerViewHolder -//import com.gh.common.util.MtaHelper +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +//import com.gh.gamecenter.core.utils.MtaHelper //import com.gh.gamecenter.R //import com.gh.gamecenter.databinding.CommunitySearchHotItemBinding //import com.gh.gamecenter.db.AskSearchHistoryDao diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestAdapter.kt index 2397c4a968..7f2a311bf9 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestAdapter.kt @@ -7,11 +7,11 @@ //import android.text.style.LeadingMarginSpan //import android.view.View //import android.view.ViewGroup -//import com.gh.base.BaseRecyclerViewHolder -//import com.gh.common.constant.ItemViewType -//import com.gh.common.util.DisplayUtils -//import com.gh.common.util.ImageUtils -//import com.gh.common.util.NumberUtils +//import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +//import com.gh.gamecenter.common.constant.ItemViewType +//import com.gh.gamecenter.core.utils.DisplayUtils +//import com.gh.gamecenter.common.utils.ImageUtils +//import com.gh.gamecenter.core.utils.NumberUtils //import com.gh.gamecenter.R //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.databinding.AskSearchQuestionItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestFragment.kt index 4e2a1521e4..3017fe0729 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/hottest/HottestFragment.kt @@ -2,7 +2,7 @@ // //import android.text.TextUtils //import androidx.lifecycle.ViewModelProviders -//import com.gh.common.util.UrlFilterUtils +//import com.gh.gamecenter.core.utils.UrlFilterUtils //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.manager.UserManager //import com.gh.gamecenter.qa.entity.SearchHottestEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestAdapter.kt index b78c965603..05997b880a 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestAdapter.kt @@ -5,9 +5,9 @@ //import android.text.Html //import android.view.View //import android.view.ViewGroup -//import com.gh.common.constant.ItemViewType -//import com.gh.common.util.ImageUtils -//import com.gh.common.util.NumberUtils +//import com.gh.gamecenter.common.constant.ItemViewType +//import com.gh.gamecenter.common.utils.ImageUtils +//import com.gh.gamecenter.core.utils.NumberUtils //import com.gh.gamecenter.R //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.qa.entity.SearchNewestEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestFragment.kt index 4d9e9fa3c9..0d2da831c6 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/newest/NewestFragment.kt @@ -2,7 +2,7 @@ // //import android.text.TextUtils //import androidx.lifecycle.ViewModelProviders -//import com.gh.common.util.UrlFilterUtils +//import com.gh.gamecenter.core.utils.UrlFilterUtils //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.manager.UserManager //import com.gh.gamecenter.qa.entity.SearchNewestEntity diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionAdapter.kt index aa868f24cf..6d305ad30d 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionAdapter.kt @@ -4,7 +4,7 @@ //import android.text.Html //import android.view.ViewGroup //import androidx.recyclerview.widget.RecyclerView -//import com.gh.common.util.NumberUtils +//import com.gh.gamecenter.core.utils.NumberUtils //import com.gh.gamecenter.R //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.databinding.AskSearchQuestionItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionFragment.kt index 3d7a465fa3..2c8d39b086 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/question/QuestionFragment.kt @@ -2,7 +2,7 @@ // //import android.text.TextUtils //import androidx.lifecycle.ViewModelProviders -//import com.gh.common.util.UrlFilterUtils +//import com.gh.gamecenter.core.utils.UrlFilterUtils //import com.gh.gamecenter.baselist.NormalListViewModel //import com.gh.gamecenter.manager.UserManager //import com.gh.gamecenter.qa.entity.Questions diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/user/UserFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/search/user/UserFragment.kt index 58927a4262..7c172d4c11 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/user/UserFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/user/UserFragment.kt @@ -4,7 +4,7 @@ //import android.text.TextUtils //import androidx.lifecycle.Observer //import androidx.lifecycle.ViewModelProviders -//import com.gh.common.util.UrlFilterUtils +//import com.gh.gamecenter.core.utils.UrlFilterUtils //import com.gh.gamecenter.entity.FollowersOrFansEntity //import com.gh.gamecenter.manager.UserManager //import com.gh.gamecenter.qa.search.base.BaseAskSearchFragment diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/AskSelectGameItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/qa/select/AskSelectGameItemViewHolder.java deleted file mode 100644 index f5a642f890..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/AskSelectGameItemViewHolder.java +++ /dev/null @@ -1,31 +0,0 @@ -//package com.gh.gamecenter.qa.select; -// -//import android.view.View; -//import android.widget.TextView; -// -//import com.gh.base.BaseRecyclerViewHolder; -//import com.gh.base.OnListClickListener; -//import com.gh.common.view.GameIconView; -//import com.gh.gamecenter.R; -//import com.gh.gamecenter.qa.entity.CommunitySelectEntity; -// -//import butterknife.BindView; -// -///** -// * Created by khy on 6/12/17. -// */ -// -//public class AskSelectGameItemViewHolder extends BaseRecyclerViewHolder { -// @BindView(R.id.ask_selectgame_item_icon) -// public GameIconView mIcon; -// @BindView(R.id.ask_selectgame_item_votecount) -// public TextView mVotecount; -// @BindView(R.id.ask_selectgame_item_name) -// public TextView mName; -// -// -// public AskSelectGameItemViewHolder(View itemView, OnListClickListener listClickListener) { -// super(itemView, listClickListener); -// itemView.setOnClickListener(this); -// } -//} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/CommunitiesSelectActivity.java b/app/src/main/java/com/gh/gamecenter/qa/select/CommunitiesSelectActivity.java deleted file mode 100644 index 5bd93118c8..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/CommunitiesSelectActivity.java +++ /dev/null @@ -1,26 +0,0 @@ -//package com.gh.gamecenter.qa.select; -// -//import android.content.Context; -//import android.content.Intent; -//import android.os.Bundle; -// -//import com.gh.gamecenter.NormalActivity; -// -//import org.jetbrains.annotations.NotNull; -//import org.jetbrains.annotations.Nullable; -// -///** -// * Created by khy on 10/04/18. -// */ -// -//public class CommunitiesSelectActivity extends NormalActivity { -// -// public static Intent getIntent(Context context) { -// return getTargetIntent(context, CommunitiesSelectActivity.class, CommunitiesSelectWrapperFragment.class); -// } -// -// @Nullable -// public static Intent getIntent(@Nullable Context context, @NotNull Bundle bundle) { -// return getTargetIntent(context, CommunitiesSelectActivity.class, CommunitiesSelectWrapperFragment.class, bundle); -// } -//} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/CommunitiesSelectWrapperFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/select/CommunitiesSelectWrapperFragment.kt deleted file mode 100644 index 9aee916601..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/CommunitiesSelectWrapperFragment.kt +++ /dev/null @@ -1,26 +0,0 @@ -//package com.gh.gamecenter.qa.select -// -//import android.os.Bundle -//import androidx.fragment.app.Fragment -//import com.gh.base.fragment.BaseFragment_TabLayout -//import com.gh.gamecenter.R -// -//class CommunitiesSelectWrapperFragment : BaseFragment_TabLayout() { -// -// override fun initFragmentList(fragments: MutableList) { -// fragments.add(OpenedFragment()) -// val element = VotingFragment() -// element.arguments = arguments -// fragments.add(element) -// } -// -// override fun initTabTitleList(tabTitleList: MutableList) { -// tabTitleList.add("已开通") -// tabTitleList.add("投票中") -// } -// -// override fun onActivityCreated(savedInstanceState: Bundle?) { -// super.onActivityCreated(savedInstanceState) -// setNavigationTitle(getString(R.string.title_community_select)) -// } -//} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/CommunitySelectOpenItem.kt b/app/src/main/java/com/gh/gamecenter/qa/select/CommunitySelectOpenItem.kt deleted file mode 100644 index 88d7475e5b..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/CommunitySelectOpenItem.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.gh.gamecenter.qa.select - -import com.gh.gamecenter.qa.entity.CommunitySelectEntity -import com.google.gson.annotations.SerializedName - -data class CommunitySelectOpenItem(@SerializedName("cate_name") - val categoryName: String = "", - var leftData: CommunitySelectEntity? = null, - var rightData: CommunitySelectEntity? = null) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedAdapter.kt deleted file mode 100644 index 01eafee74d..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedAdapter.kt +++ /dev/null @@ -1,208 +0,0 @@ -//package com.gh.gamecenter.qa.select -// -//import android.app.Activity -//import android.content.Context -//import android.view.Gravity -//import android.view.View -//import android.view.ViewGroup -//import android.widget.LinearLayout -//import android.widget.TextView -//import androidx.constraintlayout.widget.ConstraintLayout -//import androidx.constraintlayout.widget.ConstraintSet -//import androidx.core.content.ContextCompat -//import com.gh.common.constant.ItemViewType -//import com.gh.common.util.dip2px -//import com.gh.common.util.toColor -//import com.gh.common.view.GameIconView -//import com.gh.gamecenter.R -//import com.gh.gamecenter.adapter.viewholder.FooterViewHolder -//import com.gh.gamecenter.baselist.ListAdapter -//import com.gh.gamecenter.baselist.LoadType -//import com.gh.gamecenter.databinding.CommunitySelectOpenedHeadItemBinding -//import com.gh.gamecenter.databinding.CommunitySelectOpenedItemBinding -//import com.gh.gamecenter.entity.CommunityEntity -//import com.gh.gamecenter.eventbus.EBReuse -//import com.gh.gamecenter.manager.UserManager -//import com.gh.gamecenter.qa.CommunityFragment -//import com.gh.gamecenter.qa.entity.CommunitySelectEntity -//import org.greenrobot.eventbus.EventBus -// -//class OpenedAdapter(context: Context, val mListViewModel: OpenedViewModel) : ListAdapter(context) { -// -// private val mCommunityId: String = UserManager.getInstance().community.id -// -// override fun areItemsTheSame(oldItem: CommunitySelectOpenItem?, newItem: CommunitySelectOpenItem?): Boolean { -// if (oldItem?.rightData != null && newItem?.rightData != null) { -// return oldItem.rightData == newItem.rightData -// } -// -// if (oldItem?.leftData != null && newItem?.leftData != null) { -// return oldItem.leftData == newItem.leftData -// } -// return oldItem == newItem -// } -// -// override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): androidx.recyclerview.widget.RecyclerView.ViewHolder { -// val view: View -// return when (viewType) { -// ItemViewType.ITEM_HEADER -> { -// view = mLayoutInflater.inflate(R.layout.community_select_opened_head_item, parent, false) -// OpenedHeadViewHolder(CommunitySelectOpenedHeadItemBinding.bind(view)) -// } -// ItemViewType.ITEM_FOOTER -> { -// FooterViewHolder(mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false)) -// } -// else -> { -// view = mLayoutInflater.inflate(R.layout.community_select_opened_item, parent, false) -// OpenedViewHolder(CommunitySelectOpenedItemBinding.bind(view)) -// } -// } -// } -// -// override fun onBindViewHolder(holder: androidx.recyclerview.widget.RecyclerView.ViewHolder, position: Int) { -// when (holder) { -// is OpenedViewHolder -> bindBodyItem(holder) -// is FooterViewHolder -> bindFooterItem(holder) -// is OpenedHeadViewHolder -> holder.bind.categoryName = mEntityList[position].categoryName -// } -// } -// -// override fun getItemViewType(position: Int): Int { -// if (itemCount - 1 == position) { -// return ItemViewType.ITEM_FOOTER -// } -// val itemData = mEntityList[position] -// if (itemData.leftData != null) { -// return ItemViewType.ITEM_BODY -// } -// return ItemViewType.ITEM_HEADER -// } -// -// override fun getItemCount(): Int { -// return if (mEntityList == null || mEntityList.isEmpty()) 0 else mEntityList.size + 1 -// } -// -// private fun bindFooterItem(holder: FooterViewHolder) { -// holder.itemView.setBackgroundColor(ContextCompat.getColor(mContext, R.color.background)) -// val item = holder.itemView as LinearLayout -// when { -// mIsNetworkError -> { -// holder.loading.visibility = View.GONE -// holder.hint.setText(R.string.loading_failed_retry) -// holder.hint.setCompoundDrawables(null, null, null, null) -// holder.hint.setPadding(0, 0, 0, 0) -// item.gravity = Gravity.CENTER -// } -// mIsLoading -> { -// holder.loading.visibility = View.VISIBLE -// holder.hint.setText(R.string.loading) -// holder.hint.setCompoundDrawables(null, null, null, null) -// holder.hint.setPadding(0, 0, 0, 0) -// item.gravity = Gravity.CENTER -// } -// else -> { -// holder.loading.visibility = View.GONE -// holder.hint.setText(R.string.loading_more_hint) -// holder.hint.setCompoundDrawables(null, null, null, null) -// holder.hint.setPadding(0, 0, 0, 0) -// item.gravity = Gravity.CENTER -// } -// } -// if (!mIsOver) { -// holder.itemView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) -// } else { -// holder.itemView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0) -// } -// -// holder.itemView.setOnClickListener { -// mListViewModel.load(LoadType.RETRY) -// } -// } -// -// private fun bindBodyItem(holder: OpenedViewHolder) { -// val position = holder.adapterPosition -// val entity = mEntityList[position] -// val isSelectLeft = mCommunityId == entity.leftData?.id -// val isSelectRight = mCommunityId == entity.rightData?.id -// -// holder.bind.data = entity -// holder.bind.isSelectLeft = isSelectLeft -// holder.bind.isSelectRight = isSelectRight -// -// holder.bind.gameIconLeft.displayGameIcon(entity.leftData?.game?.getRawIconIfExisted(), entity.leftData?.game?.iconSubscript) -// holder.bind.gameIconRight.displayGameIcon(entity.rightData?.game?.getRawIconIfExisted(), entity.rightData?.game?.iconSubscript) -// -// if (isSelectLeft) { -// holder.bind.communityNameLeft.setTextColor(R.color.theme_font.toColor()) -// } else { -// holder.bind.communityNameLeft.setTextColor(R.color.text_title.toColor()) -// } -// if (isSelectRight) { -// holder.bind.communityNameRight.setTextColor(R.color.theme_font.toColor()) -// } else { -// holder.bind.communityNameRight.setTextColor(R.color.text_title.toColor()) -// } -// -// holder.bind.communityNameLeft.setSelected(isSelectLeft, offsetCallback = { -// resetSelectStatus(holder.bind.leftContainer, holder.bind.communityStatusLeft, holder.bind.communityNameLeft, holder.bind.gameIconLeft, it) -// }) -// holder.bind.communityNameRight.setSelected(isSelectRight, offsetCallback = { -// resetSelectStatus(holder.bind.rightContainer, holder.bind.communityStatusRight, holder.bind.communityNameRight, holder.bind.gameIconRight, it) -// }) -// -// if (position + 1 >= mEntityList.size - 1 || mEntityList[position + 1].leftData == null) { -// holder.bind.root.setPadding(0, 12F.dip2px(), 0, 16F.dip2px()) -// } else { -// holder.bind.root.setPadding(0, 12F.dip2px(), 0, 12F.dip2px()) -// } -// -// holder.bind.leftContainer.setOnClickListener { -// handelClick(entity.leftData!!) -// } -// -// holder.bind.rightContainer.setOnClickListener { -// handelClick(entity.rightData!!) -// } -// } -// -// private fun resetSelectStatus(container: ConstraintLayout, -// status: TextView, -// name: TextView, -// icon: GameIconView, -// offset: Float) { -// if (offset == -1F && name.lineCount == 1) { -// val constraintSet = ConstraintSet() -// constraintSet.clone(container) -// constraintSet.clear(status.id, ConstraintSet.RIGHT) -// constraintSet.clear(status.id, ConstraintSet.BOTTOM) -// constraintSet.connect(name.id, ConstraintSet.BOTTOM, status.id, ConstraintSet.TOP) -// constraintSet.connect(status.id, ConstraintSet.LEFT, name.id, ConstraintSet.LEFT) -// constraintSet.connect(status.id, ConstraintSet.BOTTOM, icon.id, ConstraintSet.BOTTOM) -// constraintSet.connect(status.id, ConstraintSet.TOP, name.id, ConstraintSet.BOTTOM) -// constraintSet.applyTo(container) -// } else { -// status.visibility = View.GONE -// val constraintSet = ConstraintSet() -// constraintSet.clone(container) -// constraintSet.clear(status.id, ConstraintSet.BOTTOM) -// constraintSet.clear(status.id, ConstraintSet.TOP) -// constraintSet.connect(name.id, ConstraintSet.BOTTOM, icon.id, ConstraintSet.BOTTOM) -// constraintSet.connect(status.id, ConstraintSet.LEFT, name.id, ConstraintSet.LEFT, offset.toInt()) -// constraintSet.connect(status.id, ConstraintSet.BOTTOM, name.id, ConstraintSet.BOTTOM) -// constraintSet.applyTo(container) -// status.postDelayed({ -// status.visibility = View.VISIBLE -// }, 100) -// } -// } -// -// private fun handelClick(entity: CommunitySelectEntity) { -// UserManager.getInstance().setCommunityData(CommunityEntity(entity.id, entity.name, entity.refreshSort, entity.game.getRawIconIfExisted(), entity.game.iconSubscript)) -// if (mContext is CommunitiesSelectActivity && UserManager.getInstance().community.id.isNotEmpty()) { -// (mContext as Activity).setResult(Activity.RESULT_OK) -// (mContext as Activity).finish() -// } else { -// EventBus.getDefault().post(EBReuse(CommunityFragment.EB_SELECT_KEY)) -// } -// } -//} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedFragment.kt deleted file mode 100644 index 7ea6604513..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedFragment.kt +++ /dev/null @@ -1,28 +0,0 @@ -//package com.gh.gamecenter.qa.select -// -//import android.os.Bundle -//import android.view.View -//import androidx.recyclerview.widget.RecyclerView -//import com.gh.gamecenter.baselist.ListFragment -// -//class OpenedFragment : ListFragment() { -// -// private var mAdapter: OpenedAdapter? = null -// -// override fun getItemDecoration(): RecyclerView.ItemDecoration? { -// return null -// } -// -// override fun onViewCreated(view: View, savedInstanceState: Bundle?) { -// super.onViewCreated(view, savedInstanceState) -// mLayoutManager.initialPrefetchItemCount = 20 -// mListRv.setItemViewCacheSize(20) -// } -// -// override fun provideListAdapter(): OpenedAdapter { -// if (mAdapter == null) { -// mAdapter = OpenedAdapter(requireContext(), mListViewModel) -// } -// return mAdapter!! -// } -//} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedNameTextView.kt b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedNameTextView.kt deleted file mode 100644 index 0d10a524d9..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedNameTextView.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.gh.gamecenter.qa.select - - -import android.content.Context -import android.text.TextUtils -import android.util.AttributeSet - -import androidx.appcompat.widget.AppCompatTextView - -import com.gh.common.util.dip2px - -class OpenedNameTextView : AppCompatTextView { - - private var mInitLayout: Boolean? = false - private var mSelected: Boolean? = false - - private var mOffsetCallback: ((Float) -> Unit)? = null - - constructor(context: Context) : super(context) - - constructor(context: Context, attrs: AttributeSet) : super(context, attrs) - - constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) - - override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { - super.onLayout(changed, left, top, right, bottom) - if (mInitLayout!! && mSelected!!) { - mInitLayout = false - resetText() - } - } - - override fun setText(text: CharSequence?, type: BufferType?) { - mInitLayout = true - super.setText(text, type) - } - - private fun resetText() { - var lastLineRealOffset = -1F - if (lineCount >= 2) { - var content: CharSequence - val snapshotText = text - if (TextUtils.isEmpty(snapshotText)) return - val layout = layout - val start = layout.getLineStart(0) - val lastLineEnd = layout.getLineEnd(lineCount - 1) - val lastLineStart = layout.getLineStart(lineCount - 1) - val lastLineRight = layout.getLineRight(lineCount - 1) - val viewWidth = width - paddingRight - paddingLeft - - val paint = paint - val expendTextWidth = paint.measureText("当前选择") - content = snapshotText.subSequence(start, lastLineEnd) - if (viewWidth - lastLineRight - 8f.dip2px() > expendTextWidth) { - content = content.toString().trim { it <= ' ' } - lastLineRealOffset = lastLineRight + 8f.dip2px() - } else { - val lastText = snapshotText.subSequence(lastLineStart, lastLineEnd) - for (i in lastText.length - 1 downTo 1) { - val sequence = lastText.subSequence(0, i) - val w = paint.measureText(sequence.toString()) - if (viewWidth.toFloat() - w - 16f.dip2px() > expendTextWidth) { - content = snapshotText.subSequence(start, lastLineStart + i).toString() + "..." - lastLineRealOffset = w + 16f.dip2px() - break - } - } - } - super.setText(content, null) - } - mOffsetCallback?.invoke(lastLineRealOffset) - } - - fun setSelected(b: Boolean, offsetCallback: (Float) -> Unit) { - mSelected = b - mOffsetCallback = offsetCallback - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewHolder.kt deleted file mode 100644 index 9a20aab8ff..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewHolder.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.gh.gamecenter.qa.select - -import com.gh.base.BaseRecyclerViewHolder -import com.gh.gamecenter.databinding.CommunitySelectOpenedHeadItemBinding -import com.gh.gamecenter.databinding.CommunitySelectOpenedItemBinding - -class OpenedViewHolder(val bind: CommunitySelectOpenedItemBinding) : BaseRecyclerViewHolder(bind.root) -class OpenedHeadViewHolder(val bind: CommunitySelectOpenedHeadItemBinding) : BaseRecyclerViewHolder(bind.root) diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewModel.kt deleted file mode 100644 index d2b165be6e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewModel.kt +++ /dev/null @@ -1,90 +0,0 @@ -package com.gh.gamecenter.qa.select - -import android.app.Application -import com.gh.common.util.UrlFilterUtils -import com.gh.gamecenter.baselist.ListViewModel -import com.gh.gamecenter.manager.PackagesManager -import com.gh.gamecenter.qa.entity.CommunitySelectEntity -import com.gh.gamecenter.qa.entity.CommunitySelectOpenEntity -import com.gh.gamecenter.retrofit.RetrofitManager -import com.halo.assistant.HaloApp -import com.lightgame.utils.Utils -import io.reactivex.Observable - -class OpenedViewModel(application: Application) : ListViewModel(application) { - - override fun mergeResultLiveData() { - mResultLiveData.addSource(mListLiveData) { - transformationItemData(it) - } - } - - private fun transformationItemData(list: MutableList) { - val installedList = ArrayList() - val categoryMap = LinkedHashMap>() - for (entity in list) { - for (openEntity in entity.list) { - // 已安装分类 - if (PackagesManager.findInstallByIdExcludeBlackPackage(openEntity.game.id) != null) { - installedList.add(openEntity) - } else { - for (gameId in openEntity.game.relation) { - if (PackagesManager.findInstallByIdExcludeBlackPackage(gameId) != null) { - installedList.add(openEntity) - break - } - } - } - - // 其他分类 - val categoryValues = categoryMap[entity.categoryName] - if (categoryValues != null) { - categoryValues.add(openEntity) - } else { - categoryMap[entity.categoryName] = arrayListOf(openEntity) - } - } - } - - // 合成数据 - // 合并数据原则:我的游戏优先,其次按照后台给的顺序排序 - val itemList = ArrayList() - - // 我的游戏分类 - if (installedList.isNotEmpty()) { - itemList.add(CommunitySelectOpenItem(categoryName = "我的游戏")) - mergeToItemList(itemList, installedList, "我的游戏") - } - - // 其他游戏分类 - for (mutableEntry in categoryMap) { - itemList.add(CommunitySelectOpenItem(categoryName = mutableEntry.key)) - mergeToItemList(itemList, mutableEntry.value, mutableEntry.key) - } - - mResultLiveData.postValue(itemList) - } - - private fun mergeToItemList(itemList: ArrayList, - originalList: MutableList, - categoryName: String) { - for (entity in originalList) { - val openEntity = itemList[itemList.count() - 1] - if (openEntity.leftData != null && openEntity.rightData == null) { - if (openEntity.rightData == null) { - openEntity.rightData = entity - continue - } - itemList.add(CommunitySelectOpenItem(categoryName = categoryName, leftData = entity)) - } else { - itemList.add(CommunitySelectOpenItem(categoryName = categoryName, leftData = entity)) - } - } - } - - // 由于老板说要对可选择的游戏社区排序,将已安装的游戏的社区放到最前面,所以这里的 pageSize 放大到 100 - override fun provideDataObservable(page: Int): Observable> { - return RetrofitManager.getInstance().api.getCommunitySelectOpened(HaloApp.getInstance().channel, - UrlFilterUtils.getFilterQuery("category", "all"), page, 100) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/SelectGameDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/select/SelectGameDialogAdapter.java deleted file mode 100644 index 67770b25c0..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/SelectGameDialogAdapter.java +++ /dev/null @@ -1,237 +0,0 @@ -package com.gh.gamecenter.qa.select; - -import android.content.Context; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.graphics.drawable.Drawable; -import android.text.TextUtils; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ProgressBar; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - -import com.gh.common.util.BitmapUtils; -import com.gh.common.util.PackageUtils; -import com.gh.common.util.UrlFilterUtils; -import com.gh.gamecenter.R; -import com.gh.gamecenter.databinding.DialogVotingSelectGameItemBinding; -import com.gh.gamecenter.entity.GameInstall; -import com.gh.gamecenter.entity.InstallGameEntity; -import com.gh.gamecenter.manager.PackagesManager; -import com.gh.gamecenter.qa.entity.CommunitySelectEntity; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; -import com.halo.assistant.HaloApp; -import com.lightgame.adapter.BaseRecyclerAdapter; -import com.lightgame.utils.Utils; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; -import retrofit2.HttpException; - -/** - * Created by khy on 25/12/17. - */ - -public class SelectGameDialogAdapter extends BaseRecyclerAdapter { - private ProgressBar pb; - private RecyclerView mRecyclerView; - private List gameList; - private List appList; - private Map mSelectMap; - - public SelectGameDialogAdapter(Context context, ProgressBar pb, RecyclerView recyclerView) { - super(context); - this.pb = pb; - this.mRecyclerView = recyclerView; - mSelectMap = new HashMap<>(); - gameList = new ArrayList<>(); - appList = new ArrayList<>(); - - initData(); - } - - private void getCommunityOpenedData() { - RetrofitManager.getInstance().getApi(). - getAskGameSelect( - HaloApp.getInstance().getChannel(), - UrlFilterUtils.getFilterQuery("status", "opened"), - 1, 2000). - subscribeOn(Schedulers.io()). - observeOn(AndroidSchedulers.mainThread()). - subscribe(new Response>() { - @Override - public void onResponse(@Nullable List response) { - if (response == null) { - loadOver(); - return; - } - - for (CommunitySelectEntity entity : response) { - for (GameInstall game : gameList) { - if (!TextUtils.isEmpty(game.getId()) && - game.getId().equals(entity.getGame().getId())) { - game.setTag(entity.getName()); - } - } - } - - Collections.sort(gameList, (o1, o2) -> (o1.getTag() + "").compareTo(o2.getTag() + "")); - - loadOver(); - } - - @Override - public void onFailure(@Nullable HttpException e) { - loadOver(); - } - }); - } - - private void initData() { - Observable - .create(emitter -> { - PackageManager pm = mContext.getPackageManager(); - List installedPackages = PackageUtils.getInstalledPackages(mContext, 0); - - - for (PackageInfo installedPackage : installedPackages) { - if ((installedPackage.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { - InstallGameEntity installGameEntity = new InstallGameEntity(); - installGameEntity.setGamePath(installedPackage.applicationInfo.sourceDir); - try { - Drawable drawable = installedPackage.applicationInfo.loadIcon(pm); - installGameEntity.setGameBm(BitmapUtils.drawableToBitmap(drawable, true)); - - installGameEntity.setGameVersion(installedPackage.versionName); - installGameEntity.setGameName(installedPackage.applicationInfo.loadLabel(pm).toString()); - installGameEntity.setPackageName(installedPackage.packageName); - - File file = new File(installedPackage.applicationInfo.sourceDir); - installGameEntity.setGameSize(file.length()); - - GameInstall installedData = PackagesManager.getInstalledData(installedPackage.packageName); - if (installedData != null) { - gameList.add(installedData); - } else { - appList.add(installGameEntity); - } - } catch (Exception ignore) { - - } - } - } - - emitter.onComplete(); - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - @Override - public void onComplete() { - super.onComplete(); - if (gameList.size() > 0) { - getCommunityOpenedData(); - } else { - loadOver(); - } - } - }); - } - - - private void loadOver() { - for (int i = 0; i < gameList.size() + appList.size(); i++) { - mSelectMap.put(i, false); - } - notifyDataSetChanged(); - pb.setVisibility(View.GONE); - mRecyclerView.setVisibility(View.VISIBLE); - } - - @Override - public VotingSelectGameViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view = mLayoutInflater.inflate(R.layout.dialog_voting_select_game_item, parent, false); - return new VotingSelectGameViewHolder(DialogVotingSelectGameItemBinding.bind(view)); - } - - @Override - public void onBindViewHolder(VotingSelectGameViewHolder holder, int position) { - final boolean isGameData = gameList.size() > position; - - if (isGameData) { - GameInstall installInfo = gameList.get(position); - holder.binding.gameIcon.displayGameIcon(installInfo.getIcon(), installInfo.getIconSubScript()); - holder.binding.gameName.setText(installInfo.getName()); - } else { - InstallGameEntity appEntity = appList.get(position - gameList.size()); - holder.binding.gameIcon.getIconIv().setImageBitmap(appEntity.getGameBm()); - holder.binding.gameIcon.getIconDecoratorIv().setVisibility(View.GONE); - holder.binding.gameName.setText(appEntity.getGameName()); - } - - Boolean isSelect = mSelectMap.get(position); - if (isSelect == null || isSelect) { - if (isSelect == null) mSelectMap.put(position, false); - holder.binding.gameSelect.setVisibility(View.VISIBLE); - } else { - holder.binding.gameSelect.setVisibility(View.GONE); - } - - holder.itemView.setOnClickListener(v -> { - if (isGameData && gameList.get(position).getTag() != null) { - Utils.toast(mContext, gameList.get(position).getTag() + "问答专区已经开通了哦"); - return; - } - - int selectCount = 0; - for (Boolean aBoolean : mSelectMap.values()) { - if (aBoolean) selectCount++; - } - if (selectCount >= 10) { - Utils.toast(mContext, "最多只能选择10个游戏"); - } else { - mSelectMap.put(position, !mSelectMap.get(position)); - notifyItemChanged(position); - } - - }); - } - - @Override - public int getItemCount() { - return appList.size() + gameList.size(); - } - - - List getSelectApkList() { - List gameInstall = new ArrayList<>(); - for (Integer integer : mSelectMap.keySet()) { - if (integer >= gameList.size() && mSelectMap.get(integer)) { - gameInstall.add(appList.get(integer - gameList.size())); - } - } - return gameInstall; - } - - List getSelectGameList() { - List gameInstall = new ArrayList<>(); - for (Integer integer : mSelectMap.keySet()) { - if (integer < gameList.size() && mSelectMap.get(integer)) { - gameInstall.add(gameList.get(integer)); - } - } - return gameInstall; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/VotingAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/select/VotingAdapter.java deleted file mode 100644 index 9d42b2f5da..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/VotingAdapter.java +++ /dev/null @@ -1,153 +0,0 @@ -//package com.gh.gamecenter.qa.select; -// -//import android.content.Context; -//import android.view.View; -//import android.view.ViewGroup; -// -//import androidx.recyclerview.widget.RecyclerView; -// -//import com.gh.base.OnListClickListener; -//import com.gh.common.constant.ItemViewType; -//import com.gh.gamecenter.R; -//import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -//import com.gh.gamecenter.adapter.viewholder.ReuseViewHolder; -//import com.gh.gamecenter.baselist.ListAdapter; -//import com.gh.gamecenter.entity.MeEntity; -//import com.gh.gamecenter.manager.UserManager; -//import com.gh.gamecenter.qa.entity.CommunitiesGameEntity; -//import com.gh.gamecenter.qa.entity.CommunitySelectEntity; -// -//import java.util.ArrayList; -//import java.util.List; -// -///** -// * Created by khy on 6/12/17. -// */ -// -//public class VotingAdapter extends ListAdapter { -// -// private OnListClickListener mListClickListener; -// -// private String mCommunityId; -// -// -// public VotingAdapter(Context context, OnListClickListener listClickListener) { -// super(context); -// mListClickListener = listClickListener; -// mCommunityId = UserManager.getInstance().getCommunity().getId(); -// } -// -// @Override -// protected void setListData(List updateData) { -// int oldSize = TOP_ITEM_COUNT; -// if (mEntityList != null && mEntityList.size() > 0) { -// oldSize += mEntityList.size(); -// } -// mEntityList = new ArrayList<>(updateData); -// if (oldSize == 0 || oldSize > updateData.size()) { -// notifyDataSetChanged(); -// } else { -// notifyItemRangeInserted(oldSize, updateData.size() + TOP_ITEM_COUNT - oldSize); -// } -// } -// -// @Override -// public int getItemViewType(int position) { -// if (position == 0) { -// return ItemViewType.ITEM_HEADER; -// } else if (position == getItemCount() - 1) { -// return ItemViewType.ITEM_FOOTER; -// } -// return ItemViewType.ITEM_BODY; -// } -// -// @Override -// public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { -// View view; -// switch (viewType) { -// case ItemViewType.ITEM_HEADER: -// view = mLayoutInflater.inflate(R.layout.voting_top_item, parent, false); -// return new ReuseViewHolder(view); -// case ItemViewType.ITEM_BODY: -// view = mLayoutInflater.inflate(R.layout.ask_selectgame_item, parent, false); -// return new AskSelectGameItemViewHolder(view, mListClickListener); -// case ItemViewType.ITEM_FOOTER: -// view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); -// return new FooterViewHolder(view, mListClickListener); -// } -// return null; -// } -// -// @Override -// public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { -// CommunitySelectEntity entity; -// switch (getItemViewType(position)) { -// case ItemViewType.ITEM_BODY: -// AskSelectGameItemViewHolder bodyHolder = (AskSelectGameItemViewHolder) holder; -// entity = mEntityList.get(position - TOP_ITEM_COUNT); -// CommunitiesGameEntity game = entity.getGame(); -// bodyHolder.mIcon.displayGameIcon(game.getRawIconIfExisted(), game.getIconSubscript()); -// bodyHolder.setClickData(entity); -// bodyHolder.mName.setText(game.getName()); -// bodyHolder.mVotecount.setText(entity.getVote() + "票"); -// break; -// case ItemViewType.ITEM_FOOTER: -// FooterViewHolder footerViewHolder = (FooterViewHolder) holder; -// if (mIsNetworkError) { -// footerViewHolder.loading.setVisibility(View.GONE); -// footerViewHolder.hint.setText(R.string.loading_failed_retry); -// } else if (mIsOver) { -// footerViewHolder.loading.setVisibility(View.GONE); -// footerViewHolder.hint.setText("光环小编会综合根据游戏投票数选择开放社区"); -// } else if (mIsLoading) { -// footerViewHolder.loading.setVisibility(View.VISIBLE); -// footerViewHolder.hint.setText(R.string.loading); -// } else { -// footerViewHolder.loading.setVisibility(View.GONE); -// footerViewHolder.hint.setText(R.string.loading_more_hint); -// } -// break; -// case ItemViewType.ITEM_HEADER: -// holder.itemView.findViewById(R.id.voting_top_btn).setOnClickListener(v -> -// mListClickListener.onListClick(v, -1, null)); -// break; -// } -// } -// -// @Override -// public int getItemCount() { -// return mEntityList == null || mEntityList.isEmpty() ? 0 : mEntityList.size() + FOOTER_ITEM_COUNT + TOP_ITEM_COUNT; -// } -// -// public boolean isOver() { -// return mIsOver; -// } -// -// public void resetCommunityId(String id) { -// mCommunityId = id; -// notifyDataSetChanged(); -// } -// -// public String getCommunityId() { -// return mCommunityId; -// } -// -// public void voteSuccess(String communityId) { -// for (CommunitySelectEntity entity : mEntityList) { -// if (communityId.equals(entity.getId())) { -// MeEntity me = entity.getMe(); -// if (me == null) me = new MeEntity(); -// me.setCommunityVoted(true); -// entity.setMe(me); -// entity.setVote(entity.getVote() + 1); -// notifyDataSetChanged(); -// break; -// } -// } -// } -// -// public void postCommunitiesSuccess(CommunitySelectEntity entity) { -// mEntityList.add(entity); -// notifyDataSetChanged(); -// } -//} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/VotingFragment.java b/app/src/main/java/com/gh/gamecenter/qa/select/VotingFragment.java deleted file mode 100644 index b329bd9e61..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/VotingFragment.java +++ /dev/null @@ -1,117 +0,0 @@ -//package com.gh.gamecenter.qa.select; -// -//import android.app.Dialog; -//import android.os.Bundle; -// -//import androidx.annotation.NonNull; -//import androidx.annotation.Nullable; -//import androidx.recyclerview.widget.GridLayoutManager; -//import androidx.recyclerview.widget.RecyclerView; -// -//import android.view.View; -//import android.view.Window; -//import android.widget.ProgressBar; -//import android.widget.TextView; -// -//import com.gh.base.fragment.WaitingDialogFragment; -//import com.gh.common.util.CheckLoginUtils; -//import com.gh.common.view.VerticalItemDecoration; -//import com.gh.gamecenter.GameDetailActivity; -//import com.gh.gamecenter.R; -//import com.gh.gamecenter.baselist.ListFragment; -//import com.gh.gamecenter.baselist.LoadType; -//import com.gh.gamecenter.entity.GameInstall; -//import com.gh.gamecenter.entity.InstallGameEntity; -//import com.gh.gamecenter.qa.entity.CommunitySelectEntity; -// -//import java.util.List; -// -///** -// * Created by khy on 11/12/17. -// */ -// -//public class VotingFragment extends ListFragment { -// -// private WaitingDialogFragment mLoadingDialog; -// private Dialog mSelectGameDialog; -// -// private VotingAdapter mAdapter; -// -// @Override -// protected VotingAdapter provideListAdapter() { -// return mAdapter == null ? mAdapter = new VotingAdapter(getContext(), this) : mAdapter; -// } -// -// @Override -// protected RecyclerView.ItemDecoration getItemDecoration() { -// return new VerticalItemDecoration(getContext(), false); -// } -// -// @Override -// public void onCreate(@Nullable Bundle savedInstanceState) { -// super.onCreate(savedInstanceState); -// mListViewModel.setOverLimitSize(1000); // 该页面不需要分页 -// mListViewModel.getPostLiveData().observe(this, aBoolean -> { -// if (mLoadingDialog != null) mLoadingDialog.dismiss(); -// if (mSelectGameDialog != null) mSelectGameDialog.dismiss(); -// }); -// } -// -// @Override -// public void onListClick(View view, int position, Object data) { -// super.onListClick(view, position, data); -// switch (view.getId()) { -// case R.id.footerview_item: -// if (mAdapter.isNetworkError()) { -// mListViewModel.load(LoadType.RETRY); -// } -// break; -// case R.id.voting_top_btn: -// CheckLoginUtils.checkLogin(getContext(), "问答-选择游戏-[我要投票]", this::showSelectDialog); -// break; -// case R.id.ask_selectgame_item_constraintlayout: -// if (data instanceof CommunitySelectEntity) { -// CommunitySelectEntity entity = (CommunitySelectEntity) data; -// GameDetailActivity.startGameDetailActivity(getContext(),entity.getGame().getId(), mEntrance,null); -// } -// break; -// } -// } -// -// private void showSelectDialog() { -// mSelectGameDialog = new Dialog(getContext()); -// -// View view = View.inflate(getContext(), R.layout.dialog_suggest_voting, null); -// RecyclerView recyclerView = view.findViewById(R.id.dialog_suggest_game_rv); -// TextView negative = view.findViewById(R.id.dialog_suggest_negative); -// TextView positive = view.findViewById(R.id.dialog_suggest_positive); -// ProgressBar pb = view.findViewById(R.id.dialog_suggest_game_load); -// recyclerView.setVisibility(View.GONE); -// recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 4)); -// SelectGameDialogAdapter dialogAdapter = new SelectGameDialogAdapter(getContext(), pb, recyclerView); -// recyclerView.setAdapter(dialogAdapter); -// -// mSelectGameDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); -// mSelectGameDialog.setCanceledOnTouchOutside(false); -// mSelectGameDialog.setContentView(view); -// mSelectGameDialog.show(); -// -// negative.setOnClickListener((v) -> mSelectGameDialog.cancel()); -// -// positive.setOnClickListener(v -> { -// List selectGameList = dialogAdapter.getSelectGameList(); -// List selectApkList = dialogAdapter.getSelectApkList(); -// if (selectApkList.size() + selectGameList.size() == 0) { -// toast("请先选择游戏"); -// return; -// } -// for (InstallGameEntity entity : selectApkList) { -// mListViewModel.sendSuggestion(entity); -// } -// -// mLoadingDialog = WaitingDialogFragment.newInstance(getString(R.string.vote_post)); -// mLoadingDialog.show(getChildFragmentManager(), null); -// mListViewModel.postCommunities(selectGameList); -// }); -// } -//} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/VotingSelectGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/qa/select/VotingSelectGameViewHolder.java deleted file mode 100644 index 5242fb2809..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/VotingSelectGameViewHolder.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.gh.gamecenter.qa.select; - -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.gamecenter.databinding.DialogVotingSelectGameItemBinding; - -public class VotingSelectGameViewHolder extends BaseRecyclerViewHolder { - - public DialogVotingSelectGameItemBinding binding; - - public VotingSelectGameViewHolder(DialogVotingSelectGameItemBinding binding) { - super(binding.getRoot()); - this.binding = binding; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/VotingViewModel.java b/app/src/main/java/com/gh/gamecenter/qa/select/VotingViewModel.java deleted file mode 100644 index d5f17c06df..0000000000 --- a/app/src/main/java/com/gh/gamecenter/qa/select/VotingViewModel.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.gh.gamecenter.qa.select; - -import android.app.Application; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.lifecycle.MutableLiveData; - -import com.gh.common.exposure.meta.MetaUtil; -import com.gh.common.util.PackageUtils; -import com.gh.common.util.UrlFilterUtils; -import com.gh.gamecenter.R; -import com.gh.gamecenter.baselist.ListViewModel; -import com.gh.gamecenter.baselist.LoadType; -import com.gh.gamecenter.entity.GameInstall; -import com.gh.gamecenter.entity.InstallGameEntity; -import com.gh.gamecenter.qa.entity.CommunitySelectEntity; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; -import com.halo.assistant.HaloApp; -import com.lightgame.utils.Utils; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; -import okhttp3.MediaType; -import okhttp3.RequestBody; -import okhttp3.ResponseBody; -import retrofit2.HttpException; - -/** - * Created by khy on 20/03/18. - */ - -public class VotingViewModel extends ListViewModel { - - private MutableLiveData mPostLiveData = new MutableLiveData<>(); - - public VotingViewModel(@NonNull Application application) { - super(application); - } - - @Override - protected void mergeResultLiveData() { - mResultLiveData.addSource(mListLiveData, mResultLiveData::postValue); - } - - public MutableLiveData getPostLiveData() { - return mPostLiveData; - } - - @Override - public Observable> provideDataObservable(int page) { - return RetrofitManager.getInstance().getApi().getCommunityVoting(HaloApp.getInstance().getChannel() - , UrlFilterUtils.getFilterQuery("status", "voting")); - } - - void sendSuggestion(InstallGameEntity entity) { - Map params = new HashMap<>(); - params.put("message", "问答社区推荐收录:" + entity.getGameName() + "(" + entity.getPackageName() + ", " + entity.getGameVersion() + ")"); - params.put("from", ""); - params.put("ghversion", PackageUtils.getGhVersionName()); - params.put("channel", HaloApp.getInstance().getChannel()); - params.put("type", android.os.Build.MODEL); - params.put("sdk", String.valueOf(android.os.Build.VERSION.SDK_INT)); - params.put("version", android.os.Build.VERSION.RELEASE); - params.put("source", getApplication().getString(R.string.app_name)); - params.put("suggestion_type", "游戏收录"); - params.put("jnfj", MetaUtil.getBase64EncodedIMEI()); - - RequestBody body = RequestBody.create(MediaType.parse("application/json"), - new JSONObject(params).toString()); - - RetrofitManager.getInstance().getApi().postSuggestion(body) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - }); - - } - - void postCommunities(List gameList) { - List> sequences = new ArrayList<>(); - for (GameInstall gameInstall : gameList) { - JSONObject object = new JSONObject(); - try { - object.put("game_id", gameInstall.getId()); - } catch (JSONException e) { - e.printStackTrace(); - } - RequestBody body = RequestBody.create(MediaType.parse("application/json"), object.toString()); - sequences.add(RetrofitManager.getInstance().getApi().postCommunities(body)); - } - Observable.mergeDelayError(sequences) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response() { - @Override - public void onFailure(@Nullable HttpException e) { - load(LoadType.REFRESH); - Utils.toast(getApplication(), "投票成功"); - mPostLiveData.postValue(false); - } - - @Override - public void onComplete() { - load(LoadType.REFRESH); - Utils.toast(getApplication(), "投票成功"); - mPostLiveData.postValue(true); - } - }); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectAdapter.java index ed3a53cad4..9dc0435696 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectAdapter.java @@ -6,14 +6,13 @@ import android.view.ViewGroup; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; - -import com.gh.base.OnListClickListener; -import com.gh.common.constant.ItemViewType; -import com.gh.common.syncpage.ISyncAdapterHandler; -import com.gh.common.util.ImageUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.baselist.ListAdapter; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.constant.ItemViewType; +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.gamecenter.databinding.AskSubjectTopItemBinding; import com.gh.gamecenter.databinding.CommunityAnswerItemBinding; import com.gh.gamecenter.entity.CommunityEntity; diff --git a/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectFragment.java b/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectFragment.java index 48d86e6e2e..8abf7428dd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectFragment.java @@ -7,15 +7,15 @@ import android.widget.TextView; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.TimeElapsedHelper; import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.baselist.ListAdapter; import com.gh.gamecenter.baselist.ListFragment; import com.gh.gamecenter.baselist.LoadType; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.view.VerticalItemDecoration; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.TimeElapsedHelper; import com.gh.gamecenter.mvvm.Status; import com.gh.gamecenter.qa.entity.AnswerEntity; @@ -54,8 +54,8 @@ public class AskSubjectFragment extends ListFragment) { fragments.add(VideoDescFragment().apply { - arguments = bundleOf(EntranceUtils.KEY_VIDEO_ID to mVideoId) + arguments = bundleOf(EntranceConsts.KEY_VIDEO_ID to mVideoId) mVideoDescFragment = this }) fragments.add(VideoCommentFragment().apply { arguments = - bundleOf(EntranceUtils.KEY_VIDEO_ID to mVideoId, EntranceUtils.KEY_BBS_ID to mBbsId) + bundleOf( + EntranceConsts.KEY_VIDEO_ID to mVideoId, + EntranceConsts.KEY_BBS_ID to mBbsId, + EntranceConsts.KEY_TOP_COMMENT_ID to mTopCommentId + ) mVideoCommentFragment = this }) } @@ -105,8 +116,9 @@ class ForumVideoDetailFragment : BaseFragment_TabLayout() { } override fun onCreate(savedInstanceState: Bundle?) { - mVideoId = arguments?.getString(EntranceUtils.KEY_VIDEO_ID) ?: "" - mBbsId = arguments?.getString(EntranceUtils.KEY_BBS_ID) ?: "" + mVideoId = arguments?.getString(EntranceConsts.KEY_VIDEO_ID) ?: "" + mBbsId = arguments?.getString(EntranceConsts.KEY_BBS_ID) ?: "" + mTopCommentId = arguments?.getString(EntranceConsts.KEY_TOP_COMMENT_ID) ?: "" super.onCreate(savedInstanceState) NewLogUtils.logVideoDetailClick("view_video_detail") } @@ -123,7 +135,7 @@ class ForumVideoDetailFragment : BaseFragment_TabLayout() { mViewModel = viewModelProviderFromParent( ForumVideoDetailViewModel.Factory( mVideoId, - arguments?.getString(EntranceUtils.KEY_RECOMMEND_ID) ?: "" + arguments?.getString(EntranceConsts.KEY_RECOMMEND_ID) ?: "" ) ) mBinding.root.setBackgroundColor(Color.WHITE) @@ -707,11 +719,11 @@ class ForumVideoDetailFragment : BaseFragment_TabLayout() { } if (requestCode == MoreFunctionPanelDialog.REQUEST_CODE) { - getItemClickCallback().invoke(data.getParcelableExtra(EntranceUtils.KEY_DATA)) + getItemClickCallback().invoke(data.getParcelableExtra(EntranceConsts.KEY_DATA)) } if (requestCode == ChooseActivityDialogFragment.REQUEST_CODE) { - getChooseSelectCallback().invoke(data.getParcelableExtra(EntranceUtils.KEY_DATA)) + getChooseSelectCallback().invoke(data.getParcelableExtra(EntranceConsts.KEY_DATA)) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailViewModel.kt index 91299c38a8..dd739ed0d5 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailViewModel.kt @@ -5,17 +5,20 @@ import android.app.Application import android.net.Uri import android.text.TextUtils import androidx.lifecycle.* -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.history.HistoryDatabase -import com.gh.common.json.json -import com.gh.common.runOnIoThread +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.core.runOnIoThread import com.gh.common.util.* +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.* import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.video.detail.VideoDetailContainerViewModel import com.google.gson.JsonObject import com.halo.assistant.HaloApp import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/comment/VideoCommentFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/comment/VideoCommentFragment.kt index 5f575a26b6..3a1f29195a 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/comment/VideoCommentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/comment/VideoCommentFragment.kt @@ -6,16 +6,19 @@ import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* -import com.gh.common.view.CustomDividerItemDecoration -import com.gh.common.view.SegmentedFilterView +import com.gh.common.util.NewLogUtils +import com.gh.gamecenter.common.view.CustomDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.SegmentedFilterView import com.gh.gamecenter.databinding.FragmentVideoCommentListBinding import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.manager.UserManager @@ -50,7 +53,13 @@ class VideoCommentFragment : LazyListFragment() override fun provideDataObservable(page: Int): Observable>? { + val map = hashMapOf() + map["sort"] = currentSortType.value + if (topCommentId.isNotEmpty()) { + map["top_comment_id"] = topCommentId + } return mApi.getVideoCommentList(videoId, page, mapOf("sort" to currentSortType.value)) } @@ -30,9 +39,10 @@ class VideoCommentViewModel(application: Application, videoId: String, bbsId: St itemDataList.add(CommentItemData(errorConnection = true)) } else { var floor = 1 - list.forEach { - it.floor = floor - itemDataList.add(CommentItemData(commentNormal = it)) + list.forEachIndexed { index, entity -> + entity.floor = floor + handleTopComment(index, entity) + itemDataList.add(CommentItemData(commentNormal = entity)) floor++ } itemDataList.add(CommentItemData(footer = true)) @@ -46,10 +56,10 @@ class VideoCommentViewModel(application: Application, videoId: String, bbsId: St deleteCommentLiveData.postValue(true) } - class Factory(private val videoId: String, private val bbsId: String) : + class Factory(private val videoId: String, private val bbsId: String, private val topCommentId: String) : ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { - return VideoCommentViewModel(HaloApp.getInstance().application, videoId, bbsId) as T + return VideoCommentViewModel(HaloApp.getInstance().application, videoId, bbsId, topCommentId) as T } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescAdapter.kt index 16f6802700..cf15ccd5f7 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescAdapter.kt @@ -3,11 +3,11 @@ package com.gh.gamecenter.qa.video.detail.desc import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType -import com.gh.common.util.ImageUtils +import com.gh.gamecenter.common.constant.ItemViewType +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.common.util.NewLogUtils -import com.gh.common.util.TimeUtils -import com.gh.common.util.toBinding +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescFragment.kt index f93d7730af..a8e8f094b4 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescFragment.kt @@ -4,15 +4,15 @@ import android.view.View import androidx.lifecycle.Observer import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.NewLogUtils -import com.gh.common.util.ShareUtils -import com.gh.common.util.observeNonNull -import com.gh.common.util.viewModelProviderFromParent +import com.gh.gamecenter.common.utils.ShareUtils +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.viewModelProviderFromParent import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.entity.VideoDescItemEntity -import com.gh.gamecenter.eventbus.EBShare +import com.gh.gamecenter.common.eventbus.EBShare import com.gh.gamecenter.mvvm.Status import com.gh.gamecenter.qa.video.detail.ForumVideoDetailViewModel import org.greenrobot.eventbus.Subscribe diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescTopViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescTopViewHolder.kt index 01b301bb33..6d391e4606 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescTopViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescTopViewHolder.kt @@ -9,9 +9,14 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.animation.doOnEnd import androidx.core.animation.doOnStart import androidx.core.view.marginTop -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ItemVideoDescTopBinding import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.manager.UserManager @@ -45,13 +50,13 @@ class VideoDescTopViewHolder( binding.activityNameTv.text = entity.tagActivityName binding.userAvatar.display(entity.user.border, entity.user.icon, entity.user.auth?.icon) binding.likeIv.setImageDrawable(if (entity.me.isVoted) R.drawable.ic_forum_video_detail_liked.toDrawable() else R.drawable.ic_forum_video_detail_like.toDrawable()) - binding.likeCountTv.text=entity.count.vote.toString() + binding.likeCountTv.text = entity.count.vote.toString() binding.likeCountTv.setTextColor(if (entity.me.isVoted) R.color.theme_font.toColor() else R.color.text_subtitleDesc.toColor()) binding.collectIv.setImageDrawable(if (entity.me.isVideoFavorite) R.drawable.ic_forum_video_detail_collected.toDrawable() else R.drawable.ic_forum_video_detail_collect.toDrawable()) - binding.collectCountTv.text=entity.count.favorite.toString() + binding.collectCountTv.text = entity.count.favorite.toString() binding.collectCountTv.setTextColor(if (entity.me.isVideoFavorite) R.color.theme_font.toColor() else R.color.text_subtitleDesc.toColor()) binding.shareIv.setImageDrawable(R.drawable.ic_forum_video_detail_share.toDrawable()) - binding.shareTv.text=entity.share.toString() + binding.shareTv.text = entity.share.toString() if (entity.original == "yes") { binding.originalTv.visibility = View.VISIBLE @@ -130,14 +135,16 @@ class VideoDescTopViewHolder( ) } binding.badgeIv.setOnClickListener { - DialogUtils.showViewBadgeDialog(binding.root.context, entity.user.badge) { - DirectUtils.directToBadgeWall( - binding.root.context, - entity.user.id, - entity.user.name, - entity.user.badge?.icon - ) - } + DialogUtils.showViewBadgeDialog(binding.root.context, entity.user.badge, object : ConfirmListener { + override fun onConfirm() { + DirectUtils.directToBadgeWall( + binding.root.context, + entity.user.id, + entity.user.name, + entity.user.badge?.icon + ) + } + }) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescViewModel.kt index 93df40ab02..bb13e6cbed 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoDescViewModel.kt @@ -3,19 +3,21 @@ package com.gh.gamecenter.qa.video.detail.desc import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import com.gh.common.syncpage.SyncDataEntity -import com.gh.common.syncpage.SyncFieldConstants -import com.gh.common.syncpage.SyncPageRepository +import com.gh.gamecenter.common.syncpage.SyncDataEntity +import com.gh.gamecenter.common.syncpage.SyncFieldConstants +import com.gh.gamecenter.common.syncpage.SyncPageRepository import com.gh.common.util.* import com.gh.gamecenter.baselist.ListViewModel +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.clickToastByStatus +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.singleToMain import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.entity.VideoDescItemEntity import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoItemViewHolder.kt index 961dffb697..a1964c0532 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/desc/VideoItemViewHolder.kt @@ -1,8 +1,6 @@ package com.gh.gamecenter.qa.video.detail.desc -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.ItemForumVideoBinding -import com.gh.gamecenter.databinding.ItemVideoDescTopBinding -import com.gh.gamecenter.entity.ForumVideoEntity class VideoItemViewHolder(val binding: ItemForumVideoBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt index 274def7c51..9632e482c3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt @@ -4,14 +4,14 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.view.View -import com.gh.base.ToolBarActivity -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.entity.* import com.gh.gamecenter.qa.BbsType -class VideoPublishActivity : NormalActivity() { +class VideoPublishActivity : ToolBarActivity() { override fun getLayoutId(): Int = R.layout.activity_video_publish override fun onCreate(savedInstanceState: Bundle?) { @@ -20,6 +20,13 @@ class VideoPublishActivity : NormalActivity() { findViewById(R.id.backBtn).setOnClickListener { onBackPressed() } } + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { @JvmStatic @@ -54,9 +61,9 @@ class VideoPublishActivity : NormalActivity() { bundle.putParcelable(GameEntity::class.java.simpleName, gameEntity) bundle.putString(BbsType::class.java.simpleName, type) bundle.putBoolean(VideoPublishFragment.IS_FORUM_SELECTION_DISABLED, disableForumSelection) + bundle.putString(EntranceConsts.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_PATH, path) bundle.putBoolean(VideoPublishFragment.IS_FROM_COMMUNITY_ACTIVITY, isFromCommunityActivity) - bundle.putString(EntranceUtils.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) - bundle.putString(EntranceUtils.KEY_PATH, path) return getTargetIntent(context, VideoPublishActivity::class.java, VideoPublishFragment::class.java, bundle) } @@ -64,8 +71,8 @@ class VideoPublishActivity : NormalActivity() { fun getIntent(context: Context, videoEntity: ForumVideoEntity, entrance: String, path: String): Intent { val bundle = Bundle() bundle.putParcelable(ForumVideoEntity::class.java.simpleName, videoEntity) - bundle.putString(EntranceUtils.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) - bundle.putString(EntranceUtils.KEY_PATH, path) + bundle.putString(EntranceConsts.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_PATH, path) return getTargetIntent(context, VideoPublishActivity::class.java, VideoPublishFragment::class.java, bundle) } @@ -73,8 +80,8 @@ class VideoPublishActivity : NormalActivity() { fun getDraftIntent(context: Context, draftEntity: VideoDraftEntity, entrance: String, path: String): Intent { val bundle = Bundle() bundle.putParcelable(VideoDraftEntity::class.java.simpleName, draftEntity) - bundle.putString(EntranceUtils.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) - bundle.putString(EntranceUtils.KEY_PATH, path) + bundle.putString(EntranceConsts.KEY_ENTRANCE, ToolBarActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_PATH, path) return getTargetIntent(context, VideoPublishActivity::class.java, VideoPublishFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt index e2569c01e9..600a5b5439 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishFragment.kt @@ -14,17 +14,21 @@ import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.core.widget.doOnTextChanged import com.gh.base.BaseRichEditorActivity -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.AppExecutor -import com.gh.common.runOnUiThread +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentVideoPublishBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mvvm.Status -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.qa.BbsType import com.gh.gamecenter.qa.dialog.ChooseActivityDialogFragment import com.gh.gamecenter.qa.dialog.ChooseForumActivity @@ -40,7 +44,7 @@ import com.lightgame.download.FileUtils import com.lightgame.utils.Util_System_Keyboard import java.io.File -class VideoPublishFragment : NormalFragment(), KeyboardHeightObserver { +class VideoPublishFragment : ToolbarFragment(), KeyboardHeightObserver { private lateinit var mBinding: FragmentVideoPublishBinding private lateinit var mViewModel: VideoPublishViewModel @@ -322,7 +326,7 @@ class VideoPublishFragment : NormalFragment(), KeyboardHeightObserver { mBinding.videoPoster.setImageURI("file://$imagePath") mUpdatedPosterPath = imagePath ?: "" } else if (requestCode == ChooseForumActivity.CHOOSE_FORUM_REQUEST) { - val community = data.getParcelableExtra(EntranceUtils.KEY_COMMUNITY_DATA) + val community = data.getParcelableExtra(EntranceConsts.KEY_COMMUNITY_DATA) mViewModel.communityEntity = community mViewModel.type = community?.type ?: "" if (mViewModel.type == BbsType.GAME_BBS.value) { @@ -343,9 +347,9 @@ class VideoPublishFragment : NormalFragment(), KeyboardHeightObserver { setVideoDraft() } } else if (requestCode == ChooseActivityDialogFragment.REQUEST_CODE) { - getChooseSelectCallback().invoke(data.getParcelableExtra(EntranceUtils.KEY_DATA)) + getChooseSelectCallback().invoke(data.getParcelableExtra(EntranceConsts.KEY_DATA)) } else if (requestCode == InputUrlDialogFragment.REQUEST_CODE) { - getCallBack().invoke(data.getStringExtra(EntranceUtils.KEY_DATA) ?: "") + getCallBack().invoke(data.getStringExtra(EntranceConsts.KEY_DATA) ?: "") } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishViewModel.kt index b643d1e10c..a50f1b5220 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishViewModel.kt @@ -9,15 +9,20 @@ import android.net.Uri import android.provider.MediaStore import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MediatorLiveData -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.runOnIoThread +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.runOnIoThread import com.gh.common.util.* +import com.gh.gamecenter.common.utils.observableToMain +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.ObservableUtil -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.ObservableUtil +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.google.gson.JsonObject import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java index c6fb4e785b..423c59cfff 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java @@ -6,9 +6,9 @@ import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; -import com.gh.common.util.ClassUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.RunningUtils; +import com.gh.gamecenter.core.utils.ClassUtils; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.RunningUtils; import com.gh.gamecenter.SplashScreenActivity; /** diff --git a/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java index 98dde4cca4..d92eb6f11d 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/DownloadReceiver.java @@ -1,13 +1,13 @@ package com.gh.gamecenter.receiver; +import static com.gh.gamecenter.common.constant.EntranceConsts.ENTRANCE_DOWNLOAD; + import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.gh.common.util.DirectUtils; -import com.gh.common.util.ExtensionsKt; - -import static com.gh.common.util.EntranceUtils.ENTRANCE_DOWNLOAD; +import com.gh.gamecenter.common.utils.ExtensionsKt; /** * Created by LGT on 2016/10/10. diff --git a/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java index 4397f9c9e7..d32a7e7735 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java @@ -4,9 +4,9 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import com.gh.common.AppExecutor; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.AppExecutor; import com.gh.common.util.DataUtils; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.InstallUtils; import com.gh.common.util.PackageHelper; import com.gh.common.util.PackageUtils; @@ -68,9 +68,6 @@ public class InstallAndUninstallReceiver extends BroadcastReceiver { String packageName = intent.getData().getSchemeSpecificPart(); packageName = packageName.substring(packageName.indexOf(":") + 1); Utils.log("替换了:" + packageName + "包名的程序"); - if (packageName.equals(context.getPackageName())) { - DataUtils.onEvent(context, "软件更新", "更新完成"); - } String versionName = PackageUtils.getVersionNameByPackageName(packageName); EBPackage updateEb = new EBPackage("替换", packageName, versionName); diff --git a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java index 69e48dc8bf..8e8824fcfd 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java @@ -1,29 +1,29 @@ package com.gh.gamecenter.receiver; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TO; + import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import com.gh.base.fragment.BaseFragment_ViewPager; -import com.gh.common.constant.Constants; import com.gh.common.util.DownloadNotificationHelper; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.GsonUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; -import com.gh.common.util.RunningUtils; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.SplashScreenActivity; -import com.gh.gamecenter.eventbus.EBMiPush; +import com.gh.gamecenter.common.base.fragment.BaseFragment_ViewPager; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.eventbus.EBMiPush; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.gh.gamecenter.core.utils.RunningUtils; import com.lightgame.download.DownloadEntity; import org.greenrobot.eventbus.EventBus; -import static com.gh.common.util.EntranceUtils.KEY_TO; - /** * Created by LGT on 2016/10/10. @@ -34,10 +34,10 @@ public class InstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ExtensionsKt.doOnMainProcessOnly(context, () -> { - String path = intent.getStringExtra(EntranceUtils.KEY_PATH); + String path = intent.getStringExtra(EntranceConsts.KEY_PATH); DownloadEntity downloadEntity = null; try { - String downloadEntityString = intent.getStringExtra(EntranceUtils.KEY_DATA); + String downloadEntityString = intent.getStringExtra(EntranceConsts.KEY_DATA); downloadEntity = GsonUtils.fromJson(downloadEntityString, DownloadEntity.class); } catch (Exception e) { e.printStackTrace(); @@ -65,8 +65,8 @@ public class InstallReceiver extends BroadcastReceiver { } else { Intent intent2 = new Intent(context, DownloadManagerActivity.class); intent2.putExtra(BaseFragment_ViewPager.ARGS_INDEX, 0); - intent2.putExtra(EntranceUtils.KEY_PATH, path); - intent2.putExtra(EntranceUtils.KEY_ENTRANCE, "(安装跳转)"); + intent2.putExtra(EntranceConsts.KEY_PATH, path); + intent2.putExtra(EntranceConsts.KEY_ENTRANCE, "(安装跳转)"); intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent2); } @@ -75,8 +75,8 @@ public class InstallReceiver extends BroadcastReceiver { Bundle bundle = new Bundle(); bundle.putString(KEY_TO, DownloadManagerActivity.TAG); bundle.putInt(BaseFragment_ViewPager.ARGS_INDEX, 0); - bundle.putString(EntranceUtils.KEY_PATH, path); - bundle.putString(EntranceUtils.KEY_ENTRANCE, "(安装跳转)"); + bundle.putString(EntranceConsts.KEY_PATH, path); + bundle.putString(EntranceConsts.KEY_ENTRANCE, "(安装跳转)"); context.startActivity(SplashScreenActivity.getSplashScreenIntent(context, bundle)); } } diff --git a/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java index fb9b2ea101..8630a99306 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/NetworkStateReceiver.java @@ -4,12 +4,12 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.repository.ReservationRepository; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.NetworkUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; import com.gh.download.DownloadManager; +import com.gh.gamecenter.common.utils.ExtensionsKt; import com.gh.gamecenter.eventbus.EBNetworkState; import com.halo.assistant.HaloApp; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java b/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java index f23231c936..09ece6f138 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java @@ -2,44 +2,23 @@ package com.gh.gamecenter.retrofit; import android.content.Context; -import com.chuckerteam.chucker.api.ChuckerCollector; -import com.chuckerteam.chucker.api.ChuckerInterceptor; -import com.chuckerteam.chucker.api.RetentionManager; import com.gh.common.constant.Config; -import com.gh.gamecenter.Injection; +import com.gh.gamecenter.common.retrofit.BaseRetrofitManager; import com.gh.gamecenter.retrofit.service.ApiService; import com.halo.assistant.HaloApp; -import java.io.File; -import java.util.concurrent.TimeUnit; - -import okhttp3.Cache; import okhttp3.OkHttpClient; -import retrofit2.Retrofit; -import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; -import retrofit2.converter.gson.GsonConverterFactory; /** * Created by LGT on 2016/11/7. * Retrofit 管理工具 */ -public class RetrofitManager { +public class RetrofitManager extends BaseRetrofitManager { - private static final int NORMAL_CONN_TIME_OUT = 5; - private static final int NORMAL_READ_TIME_OUT = 5; - private static final int UPLOAD_CALL_TIME_OUT = 20; // 图片上传超时时间 private final ApiService mApiService; private final ApiService mNewApiService; private final ApiService mUploadApiService; - public static T provideService(OkHttpClient client, String url, Class serviceCls) { - return new Retrofit.Builder() - .client(client) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) - .baseUrl(url).build().create(serviceCls); - } - private RetrofitManager() { Context context = HaloApp.getInstance().getApplicationContext(); OkHttpClient okHttpNormalConfig = getOkHttpConfig(context, 0, 2); @@ -48,22 +27,6 @@ public class RetrofitManager { mUploadApiService = provideService(getOkHttpConfig(context, UPLOAD_CALL_TIME_OUT, 1), Config.API_HOST, ApiService.class); } - private OkHttpClient getOkHttpConfig(Context context, int callTimeout, int maxRetryCount) { - final Cache cache = new Cache(new File(OkHttpCache.getCachePath(context)), 10 * 1024 * 1024); // 10Mb - - return Injection.provideRetrofitBuilder() - .addInterceptor(new OkHttpCacheInterceptor(context)) - .addInterceptor(new OkHttpRetryInterceptor(context, maxRetryCount)) - .addInterceptor(new ChuckerInterceptor(context, new ChuckerCollector(context, true, RetentionManager.Period.ONE_DAY))) - .addNetworkInterceptor(new OkHttpNetworkInterceptor(context)) - .connectTimeout(NORMAL_CONN_TIME_OUT, TimeUnit.SECONDS) - .readTimeout(NORMAL_READ_TIME_OUT, TimeUnit.SECONDS) - .callTimeout(callTimeout, TimeUnit.SECONDS) - .pingInterval(30, TimeUnit.SECONDS) // 加入间隔为30秒的心跳包,用于解决闲置 Http/2 连接关闭时间与服务器不一造成 Connection Timeout 的问题 (https://github.com/square/okhttp/issues/3261) - .cache(cache) - .build(); - } - public static RetrofitManager getInstance() { return SingletonHolder.INSTANCE; } diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index 60ebb87940..c205e01873 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -1,6 +1,7 @@ package com.gh.gamecenter.retrofit.service; import com.gh.common.filter.RegionSetting; +import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.entity.*; import com.gh.gamecenter.gamedetail.entity.BigEvent; import com.gh.gamecenter.gamedetail.entity.NewGameDetailEntity; @@ -634,12 +635,6 @@ public interface ApiService { /****** 问答(社区相关) *******/ - /** - * 社区列表 - */ - @GET("communities") - Observable> getAskGameSelect(@Query("channel") String channel, @Query("filter") String filter, @Query("page") int page, @Query("page_size") int pageSize); - /** * 社区列表已开通页面 */ @@ -1494,7 +1489,8 @@ public interface ApiService { Observable> getCommunityArticleCommentList(@Path("community_id") String communityId, @Path("article_id") String articleId, @Query("sort") String type, - @Query("page") int page); + @Query("page") int page, + @QueryMap Map params); /** * 获取社区文章评论的对话列表. @@ -1521,7 +1517,8 @@ public interface ApiService { @Path("article_id") String articleId, @Path("comment_id") String commentId, @Query("sort") String sort, - @Query("page") int page); + @Query("page") int page, + @QueryMap Map params); /** * 评论社区文章评论 @@ -1815,7 +1812,8 @@ public interface ApiService { Observable> getCommentReply(@Path("game_id") String gameId, @Path("comment_id") String commitId, @Query("sort") String sort, - @Query("page") int page); + @Query("page") int page, + @QueryMap Map params); /** * 回复评论 @@ -2369,6 +2367,12 @@ public interface ApiService { @GET("home/navbar") Single getHomeNavBar(@Query("channel") String channel, @Query("version") String version); + /** + * 首页导航栏数据v2 + */ + @GET("home/navbar/v2") + Single getHomeNavBarV2(@Query("channel") String channel, @Query("version") String version); + /** * 获取我的光环功能列表 */ @@ -3126,7 +3130,11 @@ public interface ApiService { * 获取问题评论(回答)的回复(评论)列表 */ @GET("bbses/questions/{question_id}/comments/{comment_id}/replies") - Single> getQuestionCommentReply(@Path("question_id") String questionId, @Path("comment_id") String commentId, @Query("sort") String sort, @Query("page") int page); + Single> getQuestionCommentReply(@Path("question_id") String questionId, + @Path("comment_id") String commentId, + @Query("sort") String sort, + @Query("page") int page, + @QueryMap Map params); /** * 点赞问题评论(回答) @@ -3180,7 +3188,11 @@ public interface ApiService { * 获取视频评论回复 */ @GET("videos/{video_id}/comments/{comment_id}/replies") - Single> getVideoCommentReply(@Path("video_id") String videoId, @Path("comment_id") String commentId, @Query("sort") String sort, @Query("page") int page); + Single> getVideoCommentReply(@Path("video_id") String videoId, + @Path("comment_id") String commentId, + @Query("sort") String sort, + @Query("page") int page, + @QueryMap Map params); /** * 加精视频贴 @@ -3407,7 +3419,10 @@ public interface ApiService { * 获取游戏单评论的回复列表 */ @GET("api_go/game_list/{game_list_id}/comment/{comment_id}/reply") - Single> getGameCollectionCommentReply(@Path("game_list_id") String gameCollectionId, @Path("comment_id") String commentId, @Query("page") int page); + Single> getGameCollectionCommentReply(@Path("game_list_id") String gameCollectionId, + @Path("comment_id") String commentId, + @Query("page") int page, + @QueryMap Map params); /** * 游戏单添加评论 diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/ActivityLabelListConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/ActivityLabelListConverter.kt index 4e68467e1b..09215121df 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/ActivityLabelListConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/ActivityLabelListConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.ActivityLabelEntity class ActivityLabelListConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/AnswerUserConverter.java b/app/src/main/java/com/gh/gamecenter/room/converter/AnswerUserConverter.java index af2a8eadfa..1e93e191f4 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/AnswerUserConverter.java +++ b/app/src/main/java/com/gh/gamecenter/room/converter/AnswerUserConverter.java @@ -2,7 +2,7 @@ package com.gh.gamecenter.room.converter; import androidx.room.TypeConverter; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.entity.UserEntity; /** diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/ApkArrayListConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/ApkArrayListConverter.kt index 41c1470ed9..93721b71de 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/ApkArrayListConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/ApkArrayListConverter.kt @@ -1,11 +1,9 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.ApkEntity -import com.gh.gamecenter.entity.SimulatorEntity -import com.gh.gamecenter.entity.TagStyleEntity class ApkArrayListConverter { @TypeConverter diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/CommunityConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/CommunityConverter.kt index 3f65e2665e..ae02ce4ee6 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/CommunityConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/CommunityConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.CommunityEntity class CommunityConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/CommunityVideoConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/CommunityVideoConverter.kt index fa8bb29692..fa6d5a595a 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/CommunityVideoConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/CommunityVideoConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.qa.entity.CommunityVideoEntity class CommunityVideoConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/CountConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/CountConverter.kt index 14413842c0..9a4c1321aa 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/CountConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/CountConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.qa.entity.Count class CountConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/ImageInfoConverter.java b/app/src/main/java/com/gh/gamecenter/room/converter/ImageInfoConverter.java index fd2471d8a5..3db36c2cd9 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/ImageInfoConverter.java +++ b/app/src/main/java/com/gh/gamecenter/room/converter/ImageInfoConverter.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.room.converter; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.qa.entity.ImageInfo; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/ListStringConverter.java b/app/src/main/java/com/gh/gamecenter/room/converter/ListStringConverter.java index 6f87a6317c..2dc3743b1e 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/ListStringConverter.java +++ b/app/src/main/java/com/gh/gamecenter/room/converter/ListStringConverter.java @@ -2,7 +2,7 @@ package com.gh.gamecenter.room.converter; import androidx.room.TypeConverter; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/MeConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/MeConverter.kt index ac95651b77..049886763e 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/MeConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/MeConverter.kt @@ -1,7 +1,7 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.GsonUtils +import com.gh.gamecenter.core.utils.GsonUtils import com.gh.gamecenter.entity.MeEntity class MeConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/QuestionsConverter.java b/app/src/main/java/com/gh/gamecenter/room/converter/QuestionsConverter.java index 1ca4851375..ec88e04ea5 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/QuestionsConverter.java +++ b/app/src/main/java/com/gh/gamecenter/room/converter/QuestionsConverter.java @@ -2,7 +2,7 @@ package com.gh.gamecenter.room.converter; import androidx.room.TypeConverter; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.qa.entity.Questions; /** diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/SignDataConverter.java b/app/src/main/java/com/gh/gamecenter/room/converter/SignDataConverter.java index 5b40106b1a..46ad832fd8 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/SignDataConverter.java +++ b/app/src/main/java/com/gh/gamecenter/room/converter/SignDataConverter.java @@ -2,7 +2,7 @@ package com.gh.gamecenter.room.converter; import androidx.room.TypeConverter; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.entity.SignEntity; /** diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameConverter.kt index 2ae56bf945..2475ee4485 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.SimpleGame class SimpleGameConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameListConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameListConverter.kt index e439911df1..00ac2be75c 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameListConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/SimpleGameListConverter.kt @@ -1,9 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject -import com.gh.gamecenter.entity.ApkEntity +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.SimpleGame class SimpleGameListConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/SimulatorConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/SimulatorConverter.kt index 7f12c074e1..904ae286f5 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/SimulatorConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/SimulatorConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.SimulatorEntity class SimulatorConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/StringArrayListConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/StringArrayListConverter.kt index 29d2d14577..dba07ceed5 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/StringArrayListConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/StringArrayListConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject class StringArrayListConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/TagInfoListConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/TagInfoListConverter.kt index 9f07ce30c4..c47fc17a8d 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/TagInfoListConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/TagInfoListConverter.kt @@ -1,10 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject -import com.gh.gamecenter.entity.ApkEntity -import com.gh.gamecenter.entity.SimpleGame +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.TagInfoEntity class TagInfoListConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/TagStyleListConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/TagStyleListConverter.kt index 43b5602468..efb849b0de 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/TagStyleListConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/TagStyleListConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.TagStyleEntity class TagStyleListConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/ThumbnailConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/ThumbnailConverter.kt index 49e5c399df..e843d6fde4 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/ThumbnailConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/ThumbnailConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.ThumbnailEntity class ThumbnailConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/TimeConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/TimeConverter.kt index 7e89b1e27e..cfa2d98529 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/TimeConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/TimeConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.qa.entity.TimeEntity class TimeConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/UserConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/UserConverter.kt index 28527fb87e..0b9e01e8ca 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/UserConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/UserConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.User class UserConverter { diff --git a/app/src/main/java/com/gh/gamecenter/room/converter/VideoInfoConverter.kt b/app/src/main/java/com/gh/gamecenter/room/converter/VideoInfoConverter.kt index 70d6b5ac66..b042300f77 100644 --- a/app/src/main/java/com/gh/gamecenter/room/converter/VideoInfoConverter.kt +++ b/app/src/main/java/com/gh/gamecenter/room/converter/VideoInfoConverter.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.room.converter import androidx.room.TypeConverter -import com.gh.common.util.toJson -import com.gh.common.util.toObject +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.toObject import com.gh.gamecenter.entity.VideoInfo class VideoInfoConverter { diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt index e07525cc95..65057f204c 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt @@ -7,15 +7,21 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.GridLayoutManager -import com.gh.base.fragment.BaseFragment +import com.gh.gamecenter.common.base.fragment.BaseFragment import com.gh.common.constant.Config import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureManager import com.gh.common.exposure.ExposureSource import com.gh.common.util.* -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.databinding.FragmentSearchDefaultBinding import com.gh.gamecenter.db.SearchHistoryDao import com.gh.gamecenter.entity.HotTagEntity diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultHotAdapter.kt b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultHotAdapter.kt index 122877d0d3..8382dd779c 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultHotAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultHotAdapter.kt @@ -3,11 +3,11 @@ package com.gh.gamecenter.search import android.content.Context import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.R import com.gh.gamecenter.databinding.SearchDefaultHotItemBinding import com.gh.gamecenter.entity.SettingsEntity diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultViewModel.kt b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultViewModel.kt index a1d838e98b..cc26be116e 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultViewModel.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.search import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.runOnIoThread +import com.gh.gamecenter.core.runOnIoThread import com.gh.gamecenter.db.SearchHistoryDao class SearchDefaultViewModel(application: Application) : AndroidViewModel(application) { diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt b/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt index 55cecacebb..6bbf54501b 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexAdapter.kt @@ -8,8 +8,8 @@ import android.view.ViewGroup import android.widget.LinearLayout import androidx.collection.ArrayMap import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.Constants -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource @@ -17,12 +17,16 @@ import com.gh.common.exposure.ExposureType import com.gh.common.exposure.IExposable import com.gh.common.filter.RegionSettingHelper import com.gh.common.util.* +import com.gh.common.util.LogUtils +import com.gh.common.util.NewLogUtils import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.SearchType import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.adapter.viewholder.SearchHistoryViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FmSearchHistoryItemBinding import com.gh.gamecenter.databinding.LayoutSearchGameContentTagBinding import com.gh.gamecenter.databinding.SearchGameIndexItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexFragment.kt b/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexFragment.kt index 180388180c..e0ba7a870d 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameIndexFragment.kt @@ -8,7 +8,7 @@ import android.text.method.LinkMovementMethod import android.text.style.ClickableSpan import android.view.View import androidx.core.content.ContextCompat -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureListener import com.gh.common.util.* import com.gh.common.xapk.XapkInstaller @@ -20,6 +20,9 @@ import com.gh.gamecenter.SearchType import com.gh.gamecenter.SuggestionActivity import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.FragmentSearchResultBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SettingsEntity @@ -67,7 +70,7 @@ class SearchGameIndexFragment : ListFragment { - DialogUtils.showBindPhoneDialog(requireContext()) { requireActivity().finish() } + showBindPhoneDialog() } R.id.bind_phone_captcha -> { @@ -224,9 +232,11 @@ class BindPhoneFragment : NormalFragment() { val phoneNum: String = mBinding.bindPhoneEt.text.toString().trim { it <= ' ' }.replace(" ".toRegex(), "") // 更换手机号,当输入手机号和当前手机号相同则弹出提示 if (mChangePhone && phoneNum == oldPhoneNum) { - DialogUtils.showNoticeDialog(requireContext(), null, getString(R.string.change_phone_same)) { - mBinding.bindPhoneEt.setText("") - } + DialogUtils.showNoticeDialog(requireContext(), null, getString(R.string.change_phone_same), object : ConfirmListener { + override fun onConfirm() { + mBinding.bindPhoneEt.setText("") + } + }) return } @@ -245,19 +255,62 @@ class BindPhoneFragment : NormalFragment() { } } else { if (mChangePhone) { - mViewModel.reBindPhoneTwo(oldPhoneNum, - phoneNum, - mBinding.bindPhonePassEt.text.toString().trim(), - mBinding.bindPhoneInviteEt.text.toString().trim(), - requireContext()) + mViewModel.reBindPhoneTwo( + oldPhoneNum, + phoneNum, + mBinding.bindPhonePassEt.text.toString().trim(), + mBinding.bindPhoneInviteEt.text.toString().trim(), + requireContext() + ) } else { - mViewModel.bindPhoneTwo(phoneNum, - mBinding.bindPhonePassEt.text.toString().trim(), - mBinding.bindPhoneInviteEt.text.toString().trim(), - requireContext()) + mViewModel.bindPhoneTwo( + phoneNum, + mBinding.bindPhonePassEt.text.toString().trim(), + mBinding.bindPhoneInviteEt.text.toString().trim(), + requireContext() + ) } } } } } + + private fun showBindPhoneDialog() { + mDialog = DialogUtils.showBindPhoneDialog(requireContext(), object : ConfirmListener { + override fun onConfirm() { + requireActivity().finish() + } + }) + } + + override fun onStop() { + super.onStop() + mDialog = null + } + + override fun onNightModeChange() { + super.onNightModeChange() + mBinding.run { + bindPhoneEt.post { + listOf( + bindPhoneEt, + bindPhonePassEt, + bindPhoneInviteEt + ).forEach { + it.setHintTextColor(R.color.text_body.toColor(requireContext())) + it.setTextColor(R.color.text_title.toColor(requireContext())) + } + } + + bindPhoneBtn.run { + background = R.drawable.download_button_normal_style.toDrawable(requireContext()) + setTextColor(R.color.text_white.toColor(requireContext())) + } + + if (mDialog != null && mDialog!!.isShowing) { + mDialog?.dismiss() + showBindPhoneDialog() + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/security/BindPhoneViewModel.kt b/app/src/main/java/com/gh/gamecenter/security/BindPhoneViewModel.kt index 223da0ef0f..ab588eddf2 100644 --- a/app/src/main/java/com/gh/gamecenter/security/BindPhoneViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/security/BindPhoneViewModel.kt @@ -5,12 +5,12 @@ import android.app.Application import android.content.Context import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.util.DeviceUtils -import com.gh.common.util.GsonUtils +import com.gh.gamecenter.common.utils.DeviceUtils +import com.gh.gamecenter.core.utils.GsonUtils import com.gh.common.util.LoginUtils -import com.gh.common.util.ToastUtils +import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.entity.ConflictUserEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt b/app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt index 30c4b6cbe2..756d36f7d4 100644 --- a/app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt @@ -3,15 +3,24 @@ package com.gh.gamecenter.security import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class SecurityActivity : NormalActivity() { +class SecurityActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setNavigationTitle(R.string.setting_security) + updateStatusBarColor(R.color.black, R.color.white) + } + + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) } companion object { @@ -19,7 +28,7 @@ class SecurityActivity : NormalActivity() { @JvmStatic fun getIntent(context: Context, entrance: String, isLogoutStyle: Boolean = false): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) bundle.putString(SecurityFragment.DISPLAY_TYPE, if (isLogoutStyle) { SecurityFragment.DisplayType.LOGOUT.value diff --git a/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt b/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt index 0ca0e3aa1f..b4aa5da41e 100644 --- a/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/security/SecurityFragment.kt @@ -3,19 +3,19 @@ package com.gh.gamecenter.security import android.content.Intent import android.os.Bundle import android.view.View -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.DirectUtils -import com.gh.common.util.EnvHelper +import com.gh.gamecenter.common.utils.EnvHelper import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentSecurityBinding import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.personal.PersonalFragment import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -class SecurityFragment : NormalFragment() { +class SecurityFragment : ToolbarFragment() { private val mBinding by lazy { FragmentSecurityBinding.inflate(layoutInflater) } diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServerTestActivity.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServerTestActivity.kt index 19aa27be11..bd06d0c813 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServerTestActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServerTestActivity.kt @@ -3,15 +3,17 @@ package com.gh.gamecenter.servers import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.EntranceUtils -import com.gh.gamecenter.NormalActivity +import com.gh.base.DownloadToolbarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class GameServerTestActivity : NormalActivity() { +class GameServerTestActivity : DownloadToolbarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setToolbarMenu(R.menu.menu_download) + updateStatusBarColor(R.color.black, R.color.white) } override fun showDownloadMenu() = true @@ -20,12 +22,17 @@ class GameServerTestActivity : NormalActivity() { return getTargetIntent(this, GameServerTestActivity::class.java, GameServersTestFragment::class.java) } + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } + companion object { fun getIntent(context: Context, id: String, title: String, entrance: String): Intent { val bundle = Bundle() bundle.putString(GameServersTestFragment.TEST_COLUMN_ID, id) bundle.putString(GameServersTestFragment.TEST_TITLE, title) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent(context, GameServerTestActivity::class.java, GameServersTestFragment::class.java, bundle) } } diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServerTimeViewHolder.java b/app/src/main/java/com/gh/gamecenter/servers/GameServerTimeViewHolder.java index bda6db9785..cd3c6b6b99 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServerTimeViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServerTimeViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.servers; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.KaifuItemTimeBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt index 94f343788c..1f9115e53d 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt @@ -9,19 +9,20 @@ import android.widget.RelativeLayout import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.viewpager.widget.ViewPager -import com.gh.base.ToolBarActivity -import com.gh.base.adapter.FragmentAdapter -import com.gh.common.runOnIoThread -import com.gh.common.util.EntranceUtils -import com.gh.common.util.EntranceUtils.KEY_LAST_SELECTED_POSITION -import com.gh.common.util.MtaHelper -import com.gh.common.util.viewModelProviderFromParent -import com.gh.common.view.DrawableView +import com.gh.base.DownloadToolbarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.adapter.FragmentAdapter +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.EntranceConsts.KEY_LAST_SELECTED_POSITION +import com.gh.gamecenter.common.utils.updateStatusBarColor +import com.gh.gamecenter.common.utils.viewModelProviderFromParent +import com.gh.gamecenter.common.view.DrawableView +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.utils.MtaHelper import com.halo.assistant.HaloApp import com.lightgame.view.NoScrollableViewPager -class GameServersActivity : ToolBarActivity() { +class GameServersActivity : DownloadToolbarActivity() { private var mServersTest: CheckedTextView? = null private var mServersPublish: CheckedTextView? = null @@ -46,6 +47,7 @@ class GameServersActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) mServersTest = findViewById(R.id.server_test) mServersPublish = findViewById(R.id.server_publish) mViewpager = findViewById(R.id.viewpager) @@ -75,8 +77,8 @@ class GameServersActivity : ToolBarActivity() { mToolbar.setNavigationOnClickListener { finish() } mServersPublish?.isChecked = true - mServersTest?.setTextColor(DrawableView.getSelectorColorStyle(R.color.black, R.color.theme_font)) - mServersPublish?.setTextColor(DrawableView.getSelectorColorStyle(R.color.black, R.color.theme_font)) + mServersTest?.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_black, R.color.theme_font, this)) + mServersPublish?.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_black, R.color.theme_font, this)) mServersTest?.setOnClickListener { mViewpager?.currentItem = mServersTestIndex } mServersPublish?.setOnClickListener { mViewpager?.currentItem = mServersPublishIndex } @@ -144,16 +146,25 @@ class GameServersActivity : ToolBarActivity() { return true } + override fun getActivityNameInChinese(): String { + return "开服表" + } + + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + mServersTest?.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_black, R.color.theme_font, this)) + mServersPublish?.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_black, R.color.theme_font, this)) + } + companion object { @JvmStatic fun getIntent(context: Context, entrance: String, path: String): Intent { val intent = Intent(context, GameServersActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) return intent } } - - override fun getActivityNameInChinese(): String { - return "开服表" - } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentAdapter.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentAdapter.kt index e49e49d5e5..af7c356415 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentAdapter.kt @@ -13,12 +13,17 @@ import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureType import com.gh.common.exposure.IExposable import com.gh.common.util.* -import com.gh.common.view.DrawableView.getServerDrawableBySource +import com.gh.gamecenter.common.view.DrawableView.getServerDrawableBySource import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.entity.GameEntity import com.lightgame.adapter.BaseRecyclerAdapter import java.text.SimpleDateFormat @@ -170,6 +175,8 @@ class GameServersContentAdapter( val serverRemaining = gameEntity.serverRemaining if (serverRemaining != null) { holder.binding.extendContainer.visibility = View.VISIBLE + holder.binding.extendContainer.setBackgroundColor(R.color.background_white.toColor(mContext)) + holder.binding.extendContent.setTextColor(R.color.theme_font.toColor(mContext)) holder.binding.extendContent.text = "展开剩余" + serverRemaining.size + "条开服信息" holder.binding.extendContent.setOnClickListener { mViewModel.mergerRemainingData(gameEntity, position) @@ -199,6 +206,8 @@ class GameServersContentAdapter( } is GameServerTimeViewHolder -> { + holder.binding.root.setBackgroundColor(R.color.background_white.toColor(mContext)) + holder.binding.kaifuItemTimeTv.setTextColor(R.color.text_title.toColor(mContext)) if (mIsShowPullDownTip && position == 1) { holder.binding.emptyView.visibility = View.VISIBLE } else { @@ -217,7 +226,7 @@ class GameServersContentAdapter( is FooterViewHolder -> { holder.run { - itemView.setBackgroundColor(R.color.background.toColor()) + itemView.setBackgroundColor(R.color.background.toColor(mContext)) if (position == 0) { when { mPrevIsNetworkError -> { @@ -265,6 +274,14 @@ class GameServersContentAdapter( } private fun initGameTestViewHolder(gameEntity: GameEntity, viewHolder: GameTestViewHolder) { + viewHolder.run { + binding.contentContainer.background = R.drawable.reuse_listview_item_style.toDrawable(mContext) + gameName.setTextColor(R.color.text_title.toColor(mContext)) + gameDes.setTextColor(R.color.text_subtitleDesc.toColor(mContext)) + gameDownloadSpeed.setTextColor(R.color.text_subtitleDesc.toColor(mContext)) + gameDownloadPercentage.setTextColor(R.color.theme_font.toColor(mContext)) + } + viewHolder.gameName.text = gameEntity.name BindingAdapters.setGame(viewHolder.gameThumb, gameEntity) @@ -307,7 +324,6 @@ class GameServersContentAdapter( } } - gameEntity.getApk() if (gameEntity.getApk().isEmpty()) { viewHolder.gameDes.text = gameEntity.brief } else { diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.kt index 622514422c..7c7dadb4a1 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.kt @@ -12,16 +12,19 @@ import androidx.recyclerview.widget.RecyclerView import androidx.viewpager.widget.ViewPager import com.ethanhua.skeleton.Skeleton import com.ethanhua.skeleton.ViewSkeletonScreen -import com.gh.base.fragment.BaseFragment -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.util.* -import com.gh.common.util.MtaHelper.onEvent +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.core.utils.MtaHelper.onEvent import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentKaifuContentBinding import com.gh.gamecenter.eventbus.EBDownloadStatus import com.lightgame.download.DataWatcher @@ -56,12 +59,12 @@ class GameServersContentFragment : BaseFragment() { if (locationList != null && mIsRefreshDownload) { for (location in locationList) { mViewModel?.listLiveData?.value?.second?.safelyGetInRelease(location)?.let { gameEntity -> - DownloadItemUtils.processDate(gameEntity, downloadEntity, mAdapter, location) + DownloadItemUtils.processDate(gameEntity, downloadEntity, mAdapter, location + 1) } } if (XapkUnzipStatus.FAILURE.name == downloadEntity.meta[XapkInstaller.XAPK_UNZIP_STATUS]) { for (position in locationList) { - val targetView = mLayoutManager?.findViewByPosition(position) + val targetView = mLayoutManager?.findViewByPosition(position + 1) if (targetView != null) { DialogUtils.showUnzipFailureDialog(requireContext(), downloadEntity) break @@ -362,6 +365,7 @@ class GameServersContentFragment : BaseFragment() { // mBinding?.kaifuTimeContainer?.kaifuItemTime?.visibility = View.VISIBLE mSkeleton?.hide() mBinding?.run { + root.setBackgroundColor(Color.TRANSPARENT) recyclerView.visibility = View.VISIBLE noConnectionContainer.reuseNoConnection.visibility = View.GONE reuseNoneData.visibility = View.GONE @@ -377,6 +381,7 @@ class GameServersContentFragment : BaseFragment() { mBinding?.run { root.setBackgroundColor(Color.TRANSPARENT) mSkeleton?.hide() + recyclerView.visibility = View.GONE kaifuTimeContainer.kaifuItemTime.visibility = View.GONE noConnectionContainer.reuseNoConnection.visibility = View.VISIBLE reuseNoneData.visibility = View.GONE @@ -390,6 +395,7 @@ class GameServersContentFragment : BaseFragment() { mBinding?.run { root.setBackgroundColor(Color.TRANSPARENT) mSkeleton?.hide() + recyclerView.visibility = View.GONE kaifuTimeContainer.kaifuItemTime.visibility = View.GONE noConnectionContainer.reuseNoConnection.visibility = View.GONE reuseNoneData.visibility = View.VISIBLE @@ -405,4 +411,14 @@ class GameServersContentFragment : BaseFragment() { mBinding?.kaifuTimeContainer?.kaifuItemTime?.layoutParams = mLlParams }, 10) } + + override fun onNightModeChange() { + super.onNightModeChange() + mBinding?.recyclerView?.run { + recycledViewPool.clear() + adapter?.run { + notifyItemRangeChanged(0, itemCount) + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentViewModel.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentViewModel.kt index dacde261ee..6b10881b18 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentViewModel.kt @@ -9,10 +9,13 @@ import androidx.lifecycle.MutableLiveData import com.gh.common.util.* import com.gh.download.DownloadManager import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.countOccurrences +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.ServerCalendarEntity import com.gh.gamecenter.entity.ServerPublishEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers @@ -104,7 +107,7 @@ class GameServersContentViewModel(application: Application) var fixedTopItem: GameEntity? = null // 当页面是由启动弹窗过来的第一或第二个页面的时候添加启动弹窗信息 - if (mEntrance.contains(EntranceUtils.ENTRANCE_WELCOME) + if (mEntrance.contains(EntranceConsts.ENTRANCE_WELCOME) && mEntrance.countOccurrences("+") <= 1) { entity.setWelcomeDialogInfoIfAvailable() } diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt index 896be41ed7..17e29657c0 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersPublishFragment.kt @@ -10,17 +10,17 @@ import android.widget.CheckedTextView import android.widget.LinearLayout import android.widget.PopupWindow import android.widget.TextView -import com.gh.base.fragment.LazyFragment -import com.gh.common.util.EntranceUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentGameServersPublishBinding import com.gh.gamecenter.entity.ServersGameCategory import com.gh.gamecenter.eventbus.EBNetworkState -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers @@ -69,7 +69,7 @@ class GameServersPublishFragment : LazyFragment() { } val bundle = arguments - bundle?.putString(EntranceUtils.KEY_TYPE, "开服") + bundle?.putString(EntranceConsts.KEY_TYPE, "开服") mContentFragment = childFragmentManager.findFragmentByTag(GameServersContentFragment::class.java.simpleName) as? GameServersContentFragment ?: GameServersContentFragment() mContentFragment.arguments = bundle @@ -96,7 +96,7 @@ class GameServersPublishFragment : LazyFragment() { MtaHelper.onEvent("开服表", "开服Tab-游戏分类", "点击游戏分类") v.isChecked = true - v.setTextColor(R.color.theme_font.toColor()) + v.setTextColor(R.color.theme_font.toColor(requireContext())) val inflater = LayoutInflater.from(context) val layout = inflater.inflate(R.layout.popup_server_category, null) @@ -110,8 +110,8 @@ class GameServersPublishFragment : LazyFragment() { val complete = layout.findViewById(R.id.complete) val contentContainer = layout.findViewById(R.id.content_container) - reset.background = DrawableView.getStrokeDrawable(R.color.text_body) - complete.background = DrawableView.getOvalDrawable(R.color.theme) + reset.background = DrawableView.getStrokeDrawable(R.color.text_body, context = requireContext()) + complete.background = DrawableView.getOvalDrawable(R.color.theme, context = requireContext()) contentContainer.removeAllViews() for (entity in mCategoryList) { @@ -126,8 +126,8 @@ class GameServersPublishFragment : LazyFragment() { label.gravity = Gravity.CENTER label.textSize = 13F label.text = name - label.background = DrawableView.getOvalSelectorStyle(R.color.background, R.color.text_e6f3ff) - label.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font)) + label.background = DrawableView.getOvalSelectorStyle(R.color.background, R.color.text_e6f3ff, requireContext()) + label.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font, requireContext())) label.isSingleLine = true labelsContainer.addView(label) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { @@ -192,7 +192,7 @@ class GameServersPublishFragment : LazyFragment() { popupWindow.setOnDismissListener { v.isChecked = false - if (mTags.isNullOrEmpty()) v.setTextColor(R.color.text_title.toColor()) + if (mTags.isNullOrEmpty()) v.setTextColor(R.color.text_title.toColor(requireContext())) } popupWindow.showAsDropDown(mBinding?.divider) } @@ -202,7 +202,7 @@ class GameServersPublishFragment : LazyFragment() { MtaHelper.onEvent("开服表", "开服Tab", "开服时间") v.isChecked = true - v.setTextColor(R.color.theme_font.toColor()) + v.setTextColor(R.color.theme_font.toColor(requireContext())) val inflater = LayoutInflater.from(v.context) val layout = inflater.inflate(R.layout.popup_server_time, null) @@ -240,7 +240,7 @@ class GameServersPublishFragment : LazyFragment() { // position = 0: all val hour = TextView(v.context) hour.textSize = 14F - hour.setTextColor(R.color.text_title.toColor()) + hour.setTextColor(R.color.text_title.toColor(requireContext())) hour.gravity = Gravity.CENTER_VERTICAL hour.setPadding(24F.dip2px(), 0, 0, 0) hourContainer.addView(hour, ViewGroup.LayoutParams.MATCH_PARENT, 43F.dip2px()) @@ -273,9 +273,9 @@ class GameServersPublishFragment : LazyFragment() { } } - today.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font)) - tomorrow.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font)) - after.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font)) + today.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font, requireContext())) + tomorrow.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font, requireContext())) + after.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font, requireContext())) layout.setOnClickListener { popupWindow.dismiss() @@ -306,7 +306,7 @@ class GameServersPublishFragment : LazyFragment() { popupWindow.setOnDismissListener { v.isChecked = false - if (mDay.isNullOrEmpty()) v.setTextColor(R.color.text_title.toColor()) + if (mDay.isNullOrEmpty()) v.setTextColor(R.color.text_title.toColor(requireContext())) } popupWindow.showAsDropDown(mBinding?.divider) } @@ -317,8 +317,8 @@ class GameServersPublishFragment : LazyFragment() { mTags = null mBinding?.run { serverTime.text = "开服时间" - serverTime.setTextColor(R.color.text_title.toColor()) - serverStatus.setTextColor(R.color.text_title.toColor()) + serverTime.setTextColor(R.color.text_title.toColor(requireContext())) + serverStatus.setTextColor(R.color.text_title.toColor(requireContext())) } mContentFragment.filterData(mDay, mHour, mType, mTags) } diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestAdapter.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestAdapter.kt index e7c1e7d9c9..62e9fc8742 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestAdapter.kt @@ -5,19 +5,20 @@ import android.util.SparseArray import android.view.ViewGroup import androidx.annotation.Nullable import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.DownloadItemUtils -import com.gh.common.util.StringUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toBinding +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toBinding import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.ItemTestServerTextBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.game.GameItemViewHolder @@ -98,7 +99,8 @@ class GameServersTestAdapter(context: Context, initViewHolder(gameEntity, holder) } is GameServerTimeViewHolder -> { -// holder.container.setPadding(0, 8F.dip2px(), 0, 4F.dip2px()) + holder.binding.root.setBackgroundColor(R.color.background_white.toColor(mContext)) + holder.binding.kaifuItemTimeTv.setTextColor(R.color.text_title.toColor(mContext)) holder.binding.kaifuItemHeader.setImageResource(R.drawable.kaifu_time_icon) holder.binding.kaifuItemTimeTv.text = mDataList[position].time } @@ -106,6 +108,7 @@ class GameServersTestAdapter(context: Context, initFooterViewHolder(holder) } is TextViewHolder -> { + holder.binding.root.setBackgroundColor(R.color.background_white.toColor(mContext)) holder.binding.contentTv.text = mDataList[position].text } } diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt index f3242b48b2..ddb99965ed 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt @@ -14,16 +14,23 @@ import androidx.recyclerview.widget.RecyclerView import androidx.viewpager.widget.ViewPager import com.ethanhua.skeleton.Skeleton import com.ethanhua.skeleton.ViewSkeletonScreen -import com.gh.base.fragment.LazyFragment -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.exposure.ExposureSource import com.gh.common.util.* -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.view.DrawableView import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProviderFromParent +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.databinding.FragmentGameServersBinding import com.gh.gamecenter.databinding.FragmentKaifuContentBinding import com.gh.gamecenter.databinding.PopupServerStatusBinding @@ -146,8 +153,8 @@ class GameServersTestFragment : LazyFragment() { showDefaultFilter() } - val exposureSource = if (arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE) != null) { - listOf(arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE)!!) + val exposureSource = if (arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE) != null) { + listOf(arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE)!!) } else { null } @@ -182,7 +189,7 @@ class GameServersTestFragment : LazyFragment() { mViewModel?.updateTimeFilter(filterDay) mBinding?.filterView?.updateSelectedMainFilter(filterDay) mBinding?.serverTime?.text = filterDay - mBinding?.serverTime?.setTextColor(R.color.theme_font.toColor()) + mBinding?.serverTime?.setTextColor(R.color.theme_font.toColor(requireContext())) } // 悬挂的文案 @@ -212,7 +219,7 @@ class GameServersTestFragment : LazyFragment() { mViewModel?.updateTimeFilter(mSupremeSelectedDay!!) mBinding?.filterView?.updateSelectedMainFilter(mSupremeSelectedDay!!) mBinding?.serverTime?.text = mSupremeSelectedDay - mBinding?.serverTime?.setTextColor(R.color.theme_font.toColor()) + mBinding?.serverTime?.setTextColor(R.color.theme_font.toColor(requireContext())) mSupremeSelectedDay = null } if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { @@ -302,7 +309,7 @@ class GameServersTestFragment : LazyFragment() { MtaHelper.onEvent("开服表", "开测Tab", "测试状态") v.isChecked = true - v.setTextColor(R.color.theme_font.toColor()) + v.setTextColor(R.color.theme_font.toColor(requireContext())) val binding = PopupServerStatusBinding.inflate(LayoutInflater.from(context)) val layout = binding.root @@ -317,7 +324,7 @@ class GameServersTestFragment : LazyFragment() { for ((index, tv) in tvList.withIndex()) { tv.text = typeList[index] if (tv.text.toString() == mType) { - tv.setTextColor(R.color.theme_font.toColor()) + tv.setTextColor(R.color.theme_font.toColor(requireContext())) } tv.setOnClickListener { callback.invoke(tv.text.toString()) @@ -335,7 +342,7 @@ class GameServersTestFragment : LazyFragment() { popupWindow.setOnDismissListener { v.isChecked = false - if (mType == "全部") v.setTextColor(R.color.text_title.toColor()) + if (mType == "全部") v.setTextColor(R.color.text_title.toColor(requireContext())) } popupWindow.showAsDropDown(v) } @@ -344,7 +351,7 @@ class GameServersTestFragment : LazyFragment() { MtaHelper.onEvent("开服表", "开测Tab", "开测时间") v.isChecked = true - v.setTextColor(R.color.theme_font.toColor()) + v.setTextColor(R.color.theme_font.toColor(requireContext())) val binding = PopupTestTimeBinding.inflate(LayoutInflater.from(v.context)) val layout = binding.root @@ -356,7 +363,7 @@ class GameServersTestFragment : LazyFragment() { for ((index, tv) in tvList.withIndex()) { tv.text = dayList[index] - tv.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font)) + tv.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_title, R.color.theme_font, requireContext())) tv.isChecked = tv.text == v.text tv.setOnClickListener { callback.invoke(tv.text.toString()) @@ -375,7 +382,7 @@ class GameServersTestFragment : LazyFragment() { popupWindow.setOnDismissListener { v.isChecked = false - if (mDay.isNullOrEmpty()) v.setTextColor(R.color.text_title.toColor()) + if (mDay.isNullOrEmpty()) v.setTextColor(R.color.text_title.toColor(requireContext())) } popupWindow.showAsDropDown(v) } @@ -385,8 +392,8 @@ class GameServersTestFragment : LazyFragment() { // mBinding?.serverTime?.text = "开测时间" mBinding?.serverStatus?.text = "测试状态" mBinding?.filterView?.updateSelectedSubFilter(mViewModel!!.typeList.first()) - mBinding?.serverTime?.setTextColor(R.color.text_title.toColor()) - mBinding?.serverStatus?.setTextColor(R.color.text_title.toColor()) + mBinding?.serverTime?.setTextColor(R.color.text_title.toColor(requireContext())) + mBinding?.serverStatus?.setTextColor(R.color.text_title.toColor(requireContext())) mSubBinding?.run { reuseNoneData.visibility = View.GONE noConnectionContainer.root.visibility = View.GONE @@ -475,6 +482,29 @@ class GameServersTestFragment : LazyFragment() { LogUtils.logServerTestSelectTypeEvent(type, mViewModel!!.testTitle, mViewModel!!.testRemark) } + override fun onNightModeChange() { + super.onNightModeChange() + mBinding?.run { + root.setBackgroundColor(R.color.background.toColor(requireContext())) + filterView.run { + setRootBackgroundColor(R.color.background_white.toColor(requireContext())) + updateFilterRecyclerView() + updatePopupWindow() + } + } + + mSubBinding?.run { + kaifuTimeContainer.run { + root.setBackgroundColor(R.color.background_white.toColor(requireContext())) + kaifuItemTimeTv.setTextColor(R.color.text_title.toColor(requireContext())) + } + recyclerView.adapter?.run { + recyclerView.recycledViewPool.clear() + notifyItemRangeChanged(0, itemCount) + } + } + } + companion object { const val TEST_COLUMN_ID = "test_column_id" const val TEST_TITLE = "title" diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt index 4f6b4e9ec5..3658adf18e 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestViewModel.kt @@ -9,13 +9,13 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import com.gh.common.exposure.ExposureEntity +import com.gh.gamecenter.common.entity.ExposureEntity import com.gh.common.util.ApkActiveUtils -import com.gh.common.util.TimeUtils -import com.gh.common.util.safelyGetInRelease +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.safelyGetInRelease import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.ServerTestEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.schedulers.Schedulers import java.text.SimpleDateFormat diff --git a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt index 851cf29c64..ea8287ec5e 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt @@ -3,7 +3,6 @@ package com.gh.gamecenter.servers.add import android.app.Activity import android.content.Context import android.content.Intent -import android.graphics.Color import android.os.Bundle import android.text.SpannableString import android.text.Spanned @@ -12,18 +11,22 @@ import android.text.style.ClickableSpan import android.view.Gravity import android.view.View import android.view.ViewGroup +import android.widget.EditText import android.widget.FrameLayout +import android.widget.LinearLayout import android.widget.TextView -import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProviders import com.bigkoo.pickerview.builder.TimePickerBuilder import com.bigkoo.pickerview.listener.OnTimeSelectListener import com.contrarywind.view.WheelView -import com.gh.base.ToolBarActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.common.databind.AddKaiFuBindingAdapter -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.common.util.HaloWheelViewAdapter import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.databinding.ActivityKaifuAddBinding import com.gh.gamecenter.entity.ServerCalendarEntity import com.gh.gamecenter.gamedetail.fuli.kaifu.ServersCalendarActivity @@ -49,15 +52,16 @@ class AddKaiFuActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) setNavigationTitle("新增开服") - mSelectTime = intent.getLongExtra(EntranceUtils.KEY_KAIFU_SELECT_TIME, 0) + mSelectTime = intent.getLongExtra(EntranceConsts.KEY_KAIFU_SELECT_TIME, 0) // initViewModel mViewModel = ViewModelProviders.of(this).get(AddKaiFuViewModel::class.java) mViewModel?.initData( intent.getParcelableExtra(ServerCalendarEntity.TAG) ?: ServerCalendarEntity(), - intent.getParcelableArrayListExtra(EntranceUtils.KEY_KAIFU_LIST) ?: arrayListOf(), - intent.getStringExtra(EntranceUtils.KEY_GAMEID) ?: "") + intent.getParcelableArrayListExtra(EntranceConsts.KEY_KAIFU_LIST) ?: arrayListOf(), + intent.getStringExtra(EntranceConsts.KEY_GAMEID) ?: "") mViewModel?.postResult?.observe(this, androidx.lifecycle.Observer { it -> if (it == null) { toast(R.string.post_failure_hint) @@ -148,10 +152,10 @@ class AddKaiFuActivity : ToolBarActivity() { .setTitleSize(15) .setOutSideCancelable(false) .isCyclic(false) - .setSubmitColor(ContextCompat.getColor(this, R.color.theme_font)) - .setCancelColor(ContextCompat.getColor(this, R.color.hint)) - .setTitleBgColor(Color.WHITE) - .setBgColor(Color.WHITE) + .setSubmitColor(R.color.theme_font.toColor(this)) + .setCancelColor(R.color.hint.toColor(this)) + .setTitleBgColor(R.color.background_white.toColor(this)) + .setBgColor(R.color.background_white.toColor(this)) .setDate(selectedDate) .setRangDate(startDate, endDate) .setLabel("年", "月", "日", "时", "分", "") @@ -194,6 +198,32 @@ class AddKaiFuActivity : ToolBarActivity() { } } + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + mBinding?.run { + root.setBackgroundColor(R.color.background.toColor(this@AddKaiFuActivity)) + container.setBackgroundColor(R.color.background_white.toColor(this@AddKaiFuActivity)) + kaifuAddContainer.run { + for (i in 1 until childCount) { + (getChildAt(i) as? LinearLayout)?.run { + for (j in 0 until childCount) { + (getChildAt(j) as? EditText)?.run { + AddKaiFuBindingAdapter.kaiFuTextColor( + this, + mViewModel?.calendarList?.safelyGetInRelease(i - 1)?.getDataMark() ?: 0, + i - 1 + ) + } + } + } + } + } + } + } + companion object { fun getIntent(context: Context, entity: ServerCalendarEntity, kaifuList: ArrayList, @@ -201,9 +231,9 @@ class AddKaiFuActivity : ToolBarActivity() { selectTime: Long): Intent { val intent = Intent(context, AddKaiFuActivity::class.java) intent.putExtra(ServerCalendarEntity.TAG, entity) - intent.putExtra(EntranceUtils.KEY_GAMEID, gameId) - intent.putParcelableArrayListExtra(EntranceUtils.KEY_KAIFU_LIST, kaifuList) - intent.putExtra(EntranceUtils.KEY_KAIFU_SELECT_TIME, selectTime) + intent.putExtra(EntranceConsts.KEY_GAMEID, gameId) + intent.putParcelableArrayListExtra(EntranceConsts.KEY_KAIFU_LIST, kaifuList) + intent.putExtra(EntranceConsts.KEY_KAIFU_SELECT_TIME, selectTime) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuPopupAdapter.kt b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuPopupAdapter.kt index e431d62097..8d82285621 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuPopupAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuPopupAdapter.kt @@ -4,10 +4,9 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.R import com.gh.gamecenter.databinding.LayoutAddKaifuPopupItemBinding -import com.gh.gamecenter.entity.ApplyModeratorTaskEntity import com.lightgame.adapter.BaseRecyclerAdapter class AddKaiFuPopupAdapter( diff --git a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt index ac349d4459..b6c318852b 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt @@ -7,10 +7,10 @@ import android.text.Html import android.text.Spanned import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.util.DialogHelper -import com.gh.common.util.GsonUtils +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.GsonUtils import com.gh.gamecenter.entity.ServerCalendarEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils.toast import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuActivity.kt b/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuActivity.kt index 82440aaa41..efb10718c7 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuActivity.kt @@ -6,10 +6,12 @@ import android.content.Intent import android.os.Bundle import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.base.ToolBarActivity -import com.gh.common.util.DialogHelper -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.updateStatusBarColor import com.gh.gamecenter.databinding.ActivityKaifuPatchBinding import com.gh.gamecenter.entity.ServerCalendarEntity import com.gh.gamecenter.gamedetail.fuli.kaifu.ServersCalendarActivity @@ -27,12 +29,13 @@ class PatchKaifuActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + updateStatusBarColor(R.color.black, R.color.white) setNavigationTitle("修改开服") mViewModel = ViewModelProviders.of(this).get(PatchKaifuViewModel::class.java) mViewModel?.initData( intent.getParcelableExtra(ServerCalendarEntity.TAG) ?: ServerCalendarEntity(), - intent.getStringExtra(EntranceUtils.KEY_GAMEID) ?: "" + intent.getStringExtra(EntranceConsts.KEY_GAMEID) ?: "" ) mViewModel?.postResult?.observe(this, Observer { if (it != null) { @@ -99,12 +102,25 @@ class PatchKaifuActivity : ToolBarActivity() { } } + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + mBinding?.run { + root.setBackgroundColor(R.color.background.toColor(this@PatchKaifuActivity)) + kaifuAddItemTitle.root.setBackgroundColor(R.color.title.toColor(this@PatchKaifuActivity)) + patchName.setHintTextColor(R.color.title.toColor(this@PatchKaifuActivity)) + patchName.setTextColor(R.color.title.toColor(this@PatchKaifuActivity)) + } + } + companion object { fun getIntent(context: Context, serverEntity: ServerCalendarEntity, gameId: String): Intent { val intent = Intent(context, PatchKaifuActivity::class.java) intent.putExtra(ServerCalendarEntity.TAG, serverEntity) - intent.putExtra(EntranceUtils.KEY_GAMEID, gameId) + intent.putExtra(EntranceConsts.KEY_GAMEID, gameId) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuViewModel.kt b/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuViewModel.kt index 4c72183a42..9244eea4e6 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuViewModel.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import com.gh.gamecenter.R import com.gh.gamecenter.entity.ServerCalendarEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt b/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt index 7b8c30236c..e6457c150d 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt @@ -2,20 +2,19 @@ package com.gh.gamecenter.setting import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class GameDownloadSettingActivity : NormalActivity() { +class GameDownloadSettingActivity : ToolBarActivity() { companion object { @JvmStatic fun getIntent(context: Context, entrance: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent(context, GameDownloadSettingActivity::class.java, GameDownloadSettingFragment::class.java, bundle) } diff --git a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt b/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt index b0300a8d68..da8822d23e 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt @@ -9,18 +9,18 @@ import android.text.TextUtils import android.view.View import androidx.core.content.FileProvider import com.airbnb.lottie.LottieAnimationView -import com.gh.common.util.MtaHelper.onEvent +import com.gh.gamecenter.core.utils.MtaHelper.onEvent import com.gh.common.util.PackageUtils -import com.gh.common.util.SPUtils -import com.gh.common.util.toColor +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.CleanApkActivity import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentGameDownloadSettingBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.toColor import java.io.File -class GameDownloadSettingFragment: NormalFragment() { +class GameDownloadSettingFragment: ToolbarFragment() { private var mBinding: FragmentGameDownloadSettingBinding? = null diff --git a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt b/app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt index 21d3b2207c..755f71509a 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt @@ -2,20 +2,19 @@ package com.gh.gamecenter.setting import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class VideoSettingActivity : NormalActivity() { +class VideoSettingActivity : ToolBarActivity() { companion object { @JvmStatic fun getIntent(context: Context, entrance: String): Intent { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) return getTargetIntent(context, VideoSettingActivity::class.java, VideoSettingFragment::class.java, bundle) } diff --git a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt b/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt index fa65981a5b..068551b625 100644 --- a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt @@ -3,14 +3,14 @@ package com.gh.gamecenter.setting import android.os.Bundle import android.view.View import com.airbnb.lottie.LottieAnimationView -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.toColor +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentVideoSettingBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.toColor -class VideoSettingFragment: NormalFragment() { +class VideoSettingFragment: ToolbarFragment() { private var mBinding: FragmentVideoSettingBinding? = null diff --git a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameActivity.kt b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameActivity.kt index 97a2bdad5f..b9fb1d6fd6 100644 --- a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameActivity.kt @@ -3,13 +3,23 @@ package com.gh.gamecenter.simulatorgame import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor -class SimulatorGameActivity : NormalActivity() { +class SimulatorGameActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setNavigationTitle("模拟器游戏") + updateStatusBarColor(R.color.black, R.color.white) + } + + override fun isAutoResetViewBackgroundEnabled() = true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) } companion object { diff --git a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameFragment.kt b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameFragment.kt index e9abde2799..d246c9bd40 100644 --- a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameFragment.kt @@ -14,19 +14,22 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentStatePagerAdapter import androidx.lifecycle.Observer import androidx.viewpager.widget.PagerAdapter -import com.gh.base.fragment.BaseFragment_TabLayout -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* import com.gh.common.util.DirectUtils.directToLinkPage -import com.gh.common.view.BugFixedPopupWindow +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.DialogSimulaorGameGuideBinding import com.gh.gamecenter.databinding.FragmentSimulatorGameBinding import com.gh.gamecenter.databinding.PopupSimulatorGuideBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment -class SimulatorGameFragment : NormalFragment() { +class SimulatorGameFragment : ToolbarFragment() { private lateinit var mViewModel: SimulatorGameViewModel private var mTypeAliasList = ArrayList() @@ -98,7 +101,7 @@ class SimulatorGameFragment : NormalFragment() { mBinding.fragmentTabContainer.goneIf(list.size == 1) mTypeAliasList.add(entity.typeAlias) mFragmentsList.add(childFragmentManager.findFragmentByTag("android:switcher:${mBinding.fragmentViewPager.id}:$index") - ?: SimulatorGameListFragment().apply { with(bundleOf(EntranceUtils.KEY_SIMULATOR to entity)) }) + ?: SimulatorGameListFragment().apply { with(bundleOf(EntranceConsts.KEY_SIMULATOR to entity)) }) } if (mBinding.fragmentViewPager.adapter != null) { diff --git a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListAdapter.kt b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListAdapter.kt index f2a346f925..98ed37b32f 100644 --- a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListAdapter.kt @@ -19,19 +19,24 @@ import androidx.core.content.pm.ShortcutManagerCompat import androidx.core.graphics.drawable.IconCompat import androidx.recyclerview.widget.RecyclerView import com.g00fy2.versioncompare.Version -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.simulator.SimulatorDownloadManager import com.gh.common.simulator.SimulatorGameManager import com.gh.common.util.* -import com.gh.common.view.BugFixedPopupWindow +import com.gh.common.util.DialogUtils +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.SimulatorGameItemBinding import com.gh.gamecenter.databinding.SimulatorHeaderViewBinding import com.gh.gamecenter.entity.GameEntity @@ -431,9 +436,9 @@ class SimulatorGameListAdapter(context: Context, val shortcutInfoIntent = Intent(mContext, MainActivity::class.java) shortcutInfoIntent.run { action = Intent.ACTION_VIEW - putExtra(EntranceUtils.KEY_REQUIRE_REDIRECT, true) - putExtra(EntranceUtils.KEY_TO, EntranceUtils.HOST_LAUNCH_SIMULATOR_GAME) - putExtra(EntranceUtils.KEY_GAME, gameEntity.toJson()) + putExtra(EntranceConsts.KEY_REQUIRE_REDIRECT, true) + putExtra(EntranceConsts.KEY_TO, EntranceConsts.HOST_LAUNCH_SIMULATOR_GAME) + putExtra(EntranceConsts.KEY_GAME, gameEntity.toJson()) val info = ShortcutInfoCompat.Builder(mContext, gameName) .setIcon(IconCompat.createWithBitmap(bitmap)) .setShortLabel(gameName) diff --git a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListFragment.kt b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListFragment.kt index 96928464b3..274dbe57e5 100644 --- a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListFragment.kt @@ -2,11 +2,11 @@ package com.gh.gamecenter.simulatorgame import android.os.Bundle import android.view.View -import com.gh.common.AppExecutor -import com.gh.common.util.EntranceUtils -import com.gh.common.util.safelyGetInRelease -import com.gh.common.util.viewModelProvider -import com.gh.common.util.viewModelProviderFromParent +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.utils.viewModelProviderFromParent import com.gh.download.DownloadManager import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.LoadType @@ -69,7 +69,7 @@ class SimulatorGameListFragment : ListFragment - binding.contentTv.setTextColor(R.color.text_title.toColor()) + binding.contentTv.setTextColor(R.color.text_title.toColor(mContext)) }, extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true)) } @@ -172,12 +178,14 @@ class SimulatorManagementAdapter(context: Context, } - fun showUnInstallWindowAndSelectIv(show: Boolean) { + fun showUnInstallWindowAndSelectIv(show: Boolean, isFromUpdate: Boolean? = false) { mShowSelectFlag = show mSingleSelectFlag = false mSingleSelectedPosition = -1 - for (i in 0 until mSelectList.size) { - mSelectList[i] = false + if (isFromUpdate == false) { + for (i in 0 until mSelectList.size) { + mSelectList[i] = false + } } notifyDataSetChanged() dismissPopWindow(true) @@ -197,5 +205,17 @@ class SimulatorManagementAdapter(context: Context, } } + fun updatePopupWindow() { + if (mPopWindow != null && mPopWindow!!.isShowing) { + mPopWindow?.dismiss() + mPopWindow = null + if (mShowSelectFlag) { + showUnInstallWindowAndSelectIv(show = true, isFromUpdate = true) + } else { + showUnInstallWindow(mSingleSelectedPosition) + } + } + } + inner class SimulatorManagementViewHolder(val binding: SimulatorItemBinding) : BaseRecyclerViewHolder(binding.root) } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementFragment.kt b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementFragment.kt index 642db6d12d..1805874dde 100644 --- a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementFragment.kt @@ -1,15 +1,14 @@ package com.gh.gamecenter.simulatorgame import android.os.Bundle -import android.util.Log import android.view.MenuItem import android.view.View import android.widget.ImageView import android.widget.TextView -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px -import com.gh.common.util.viewModelProvider -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.databinding.FragmentSimulatorListBinding @@ -38,7 +37,7 @@ class SimulatorManagementFragment : ListFragment() + + override fun onNightModeChange() { + super.onNightModeChange() + mAdapter?.updatePopupWindow() + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementViewModel.kt b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementViewModel.kt index 4314d9361d..929fafd22a 100644 --- a/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorManagementViewModel.kt @@ -3,7 +3,7 @@ package com.gh.gamecenter.simulatorgame import android.annotation.SuppressLint import android.app.Application import android.content.pm.PackageManager -import com.gh.common.util.NetworkUtils +import com.gh.gamecenter.common.utils.NetworkUtils import com.gh.common.util.PackageUtils import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.ApkEntity diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectActivity.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectActivity.kt index 59d9b6e5bc..651317633f 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectActivity.kt @@ -4,25 +4,23 @@ import android.content.Context import android.content.Intent import android.os.Bundle import androidx.lifecycle.ViewModelProviders -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.updateStatusBarColor -import com.gh.gamecenter.NormalActivity +import com.gh.base.DownloadToolbarActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.SubjectData import com.halo.assistant.HaloApp -class SubjectActivity : NormalActivity() { +class SubjectActivity : DownloadToolbarActivity() { private var mViewModel: SubjectViewModel? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val factory = SubjectViewModel.Factory(HaloApp.getInstance().application, intent.getParcelableExtra(EntranceConsts.KEY_SUBJECT_DATA)) updateStatusBarColor(R.color.black, R.color.white) - - val factory = SubjectViewModel.Factory(HaloApp.getInstance().application, intent.getParcelableExtra(EntranceUtils.KEY_SUBJECT_DATA)) mViewModel = ViewModelProviders.of(this, factory).get(SubjectViewModel::class.java) } @@ -53,10 +51,10 @@ class SubjectActivity : NormalActivity() { MtaHelper.onEvent("详情页面", "专题详情", name) val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) val subjectData = SubjectData(subjectId = id, subjectName = name, isOrder = isOrder) - bundle.putParcelable(EntranceUtils.KEY_SUBJECT_DATA, subjectData) - bundle.putString(EntranceUtils.KEY_ENTRANCE, entrance) + bundle.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subjectData) + bundle.putString(EntranceConsts.KEY_ENTRANCE, entrance) context.startActivity(getTargetIntent(context, SubjectActivity::class.java, SubjectFragment::class.java, bundle)) } } diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.kt index d92b37e31b..a74d362eb9 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectAdapter.kt @@ -7,7 +7,7 @@ import android.view.View import android.view.ViewGroup import androidx.core.view.setPadding import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.databind.BindingAdapters import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource @@ -19,6 +19,8 @@ import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameImageViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.GameImageItemBinding import com.gh.gamecenter.databinding.GameItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt index 30c2b77e92..bc9ee8a423 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectFragment.kt @@ -4,9 +4,9 @@ import android.view.View import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.base.fragment.LazyFragment -import com.gh.common.util.EntranceUtils -import com.gh.common.util.PageSwitchDataHelper +import com.gh.gamecenter.common.base.fragment.LazyFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.PageSwitchDataHelper import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentSubjectBinding import com.gh.gamecenter.entity.SubjectSettingEntity @@ -29,7 +29,7 @@ class SubjectFragment : LazyFragment() { override fun onFragmentFirstVisible() { initMenu(R.menu.menu_download) - val factory = SubjectViewModel.Factory(HaloApp.getInstance().application, arguments?.getParcelable(EntranceUtils.KEY_SUBJECT_DATA)) + val factory = SubjectViewModel.Factory(HaloApp.getInstance().application, arguments?.getParcelable(EntranceConsts.KEY_SUBJECT_DATA)) mViewModel = ViewModelProviders.of(this, factory).get(SubjectViewModel::class.java) super.onFragmentFirstVisible() @@ -86,7 +86,7 @@ class SubjectFragment : LazyFragment() { } } val bundle = arguments - bundle?.putParcelable(EntranceUtils.KEY_SUBJECT_DATA, mViewModel?.subjectData) + bundle?.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, mViewModel?.subjectData) bundle?.putParcelable(SubjectSettingEntity::class.java.simpleName, entity) fragment.arguments = bundle transaction.replace(R.id.subject_content, fragment, tag) diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt index f2b8d4fb55..7fabb2fdb1 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt @@ -4,16 +4,20 @@ import android.view.View import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.util.* -import com.gh.common.view.SpacingItemDecoration +import com.gh.gamecenter.common.view.SpacingItemDecoration import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.LazyListFragment import com.gh.gamecenter.baselist.LoadType +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProviderFromParent +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectData import com.gh.gamecenter.entity.SubjectSettingEntity @@ -51,7 +55,7 @@ class SubjectListFragment : LazyListFragment() override fun getStubLayoutId() = R.layout.fragment_list_base_skeleton_stub override fun getItemDecoration(): RecyclerView.ItemDecoration? { - return if (arguments?.getBoolean(EntranceUtils.KEY_IS_HOME) == true) { + return if (arguments?.getBoolean(EntranceConsts.KEY_IS_HOME) == true) { null } else { SpacingItemDecoration(onlyDecorateTheFirstItem = true, top = DisplayUtils.dip2px(1F)) @@ -63,7 +67,7 @@ class SubjectListFragment : LazyListFragment() mAdapter = SubjectAdapter(requireContext(), mListViewModel, mSubjectViewModel, - arguments?.getString(EntranceUtils.KEY_ENTRANCE), + arguments?.getString(EntranceConsts.KEY_ENTRANCE), mIsColumnCollection) } return mAdapter as SubjectAdapter @@ -72,10 +76,10 @@ class SubjectListFragment : LazyListFragment() override fun provideListViewModel(): SubjectListViewModel { val factory = SubjectListViewModel.Factory( HaloApp.getInstance().application, - arguments?.getParcelable(EntranceUtils.KEY_SUBJECT_DATA)!!, - arguments?.getParcelable(EntranceUtils.KEY_EXPOSURE_SOURCE)) + arguments?.getParcelable(EntranceConsts.KEY_SUBJECT_DATA)!!, + arguments?.getParcelable(EntranceConsts.KEY_EXPOSURE_SOURCE)) if (requireContext() is SubjectActivity) { - requireActivity().intent.getParcelableExtra(EntranceUtils.KEY_SUBJECT_DATA)?.let { + requireActivity().intent.getParcelableExtra(EntranceConsts.KEY_SUBJECT_DATA)?.let { val f = SubjectViewModel.Factory(HaloApp.getInstance().application, it) mSubjectViewModel = viewModelProviderFromParent(f) } @@ -84,12 +88,12 @@ class SubjectListFragment : LazyListFragment() } override fun onFragmentFirstVisible() { - mIsColumnCollection = arguments?.getBoolean(EntranceUtils.KEY_IS_COLUMN_COLLECTION, false) ?: false + mIsColumnCollection = arguments?.getBoolean(EntranceConsts.KEY_IS_COLUMN_COLLECTION, false) ?: false super.onFragmentFirstVisible() (mListViewModel as SubjectListViewModel).lastPageDataMap = arguments?.get(SubjectFragment.LAST_PAGE_DATA) as? HashMap mCachedView?.setBackgroundColor(R.color.background_white.toColor(requireContext())) - val skeletonLayoutId = when (arguments?.getString(EntranceUtils.KEY_SUBJECT_TYPE) ?: "") { + val skeletonLayoutId = when (arguments?.getString(EntranceConsts.KEY_SUBJECT_TYPE) ?: "") { "detail" -> R.layout.fragment_subject_detail_skeleton "tab" -> R.layout.fragment_subject_tab_skeleton else -> R.layout.fragment_subject_skeleton diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectListViewModel.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectListViewModel.kt index ef449fb83a..9016c9b951 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectListViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectListViewModel.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureUtils -import com.gh.common.util.TimeUtils +import com.gh.gamecenter.core.utils.TimeUtils import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.baselist.LoadStatus import com.gh.gamecenter.baselist.LoadType @@ -13,7 +13,7 @@ import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectData import com.gh.gamecenter.entity.SubjectSettingEntity import com.gh.gamecenter.entity.TagStyleEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.Single diff --git a/app/src/main/java/com/gh/gamecenter/subject/SubjectViewModel.kt b/app/src/main/java/com/gh/gamecenter/subject/SubjectViewModel.kt index c96d685e59..b18ea8c702 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/SubjectViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/SubjectViewModel.kt @@ -9,8 +9,8 @@ import androidx.lifecycle.ViewModelProvider import com.gh.common.constant.Config import com.gh.gamecenter.entity.SubjectData import com.gh.gamecenter.entity.SubjectSettingEntity -import com.gh.gamecenter.retrofit.JSONObjectResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.JSONObjectResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt index 5313124815..0f46ae0eb1 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/rows/SubjectRowsFragment.kt @@ -7,11 +7,11 @@ import android.view.ViewGroup import android.widget.CheckedTextView import android.widget.LinearLayout import androidx.core.view.children -import com.gh.base.fragment.BaseFragment -import com.gh.common.util.EntranceUtils -import com.gh.common.util.MtaHelper -import com.gh.common.util.UrlFilterUtils -import com.gh.common.util.goneIf +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.UrlFilterUtils +import com.gh.gamecenter.common.utils.goneIf import com.gh.common.view.ConfigFilterView import com.gh.gamecenter.R import com.gh.gamecenter.entity.SubjectData @@ -40,7 +40,7 @@ class SubjectRowsFragment : BaseFragment() { super.initView(view) mSettingEntity = arguments?.getParcelable(SubjectSettingEntity::class.java.simpleName) ?: return - mSubjectData = arguments?.getParcelable(EntranceUtils.KEY_SUBJECT_DATA) ?: return + mSubjectData = arguments?.getParcelable(EntranceConsts.KEY_SUBJECT_DATA) ?: return val labels = mSettingEntity.typeEntity.labels for (label in labels) { diff --git a/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt index 3563e31b05..abdce5a9f9 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/tab/SubjectTabFragment.kt @@ -9,9 +9,14 @@ import android.widget.TextView import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentStatePagerAdapter import androidx.viewpager.widget.ViewPager -import com.gh.base.fragment.BaseFragment -import com.gh.common.util.* +import com.gh.gamecenter.common.base.fragment.BaseFragment import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.databinding.FragmentSubjectTabBinding import com.gh.gamecenter.entity.SubjectData import com.gh.gamecenter.entity.SubjectSettingEntity @@ -28,13 +33,13 @@ class SubjectTabFragment : BaseFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - val mSubjectList = arguments?.getParcelableArrayList(EntranceUtils.KEY_DATA) + val mSubjectList = arguments?.getParcelableArrayList(EntranceConsts.KEY_DATA) val fragments = ArrayList() var tagList = arrayListOf() val fragmentTag = "android:switcher:${mBinding.subjectViewpager.id}:" if (mSubjectList.isNullOrEmpty()) { // 专题详情 - val subjectData = arguments?.getParcelable(EntranceUtils.KEY_SUBJECT_DATA) + val subjectData = arguments?.getParcelable(EntranceConsts.KEY_SUBJECT_DATA) ?: return val settingsEntity = arguments?.getParcelable(SubjectSettingEntity::class.java.simpleName) ?: return @@ -52,8 +57,8 @@ class SubjectTabFragment : BaseFragment() { } else { UrlFilterUtils.getFilterQuery("tags", tag) } - bundle?.putParcelable(EntranceUtils.KEY_SUBJECT_DATA, copyData) - bundle?.putString(EntranceUtils.KEY_SUBJECT_TYPE, "detail") + bundle?.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, copyData) + bundle?.putString(EntranceConsts.KEY_SUBJECT_TYPE, "detail") element.arguments = bundle fragments.add(element) } @@ -65,8 +70,8 @@ class SubjectTabFragment : BaseFragment() { val element = childFragmentManager.findFragmentByTag("${fragmentTag}$index") ?: SubjectListFragment() val bundle = arguments?.clone() as Bundle? - bundle?.putParcelable(EntranceUtils.KEY_SUBJECT_DATA, subjectData) - bundle?.putString(EntranceUtils.KEY_SUBJECT_TYPE, "tab") + bundle?.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, subjectData) + bundle?.putString(EntranceConsts.KEY_SUBJECT_TYPE, "tab") element.arguments = bundle fragments.add(element) @@ -75,8 +80,8 @@ class SubjectTabFragment : BaseFragment() { mBinding.subjectViewpager.post { mBinding.subjectViewpager.offscreenPageLimit = fragments.size - var position = arguments?.getInt(EntranceUtils.KEY_POSITION, 0) ?: 0 - val columnName = arguments?.getString(EntranceUtils.KEY_COLUMNNAME) ?: "" + var position = arguments?.getInt(EntranceConsts.KEY_POSITION, 0) ?: 0 + val columnName = arguments?.getString(EntranceConsts.KEY_COLUMNNAME) ?: "" if (columnName.isNotEmpty()) { position = mSubjectList.indexOfFirst { it.subjectName == columnName } } @@ -120,7 +125,7 @@ class SubjectTabFragment : BaseFragment() { mBinding.subjectViewpager.adapter = adapter mBinding.subjectTab.setupWithViewPager(mBinding.subjectViewpager) // 首页样式的 tabLayout - if (arguments?.getBoolean(EntranceUtils.KEY_IS_HOME) == true) { + if (arguments?.getBoolean(EntranceConsts.KEY_IS_HOME) == true) { mBinding.subjectTabIndicator.visibility = View.GONE for (i in 0 until mBinding.subjectTab.tabCount) { val tab = mBinding.subjectTab.getTabAt(i) ?: continue @@ -165,4 +170,13 @@ class SubjectTabFragment : BaseFragment() { } return view } + + override fun onNightModeChange() { + super.onNightModeChange() + for (i in 0 until mBinding.subjectTab.tabCount) { + val tab = mBinding.subjectTab.getTabAt(i) ?: continue + tab.customView?.background = if (tab.isSelected) R.drawable.border_round_theme_14.toDrawable(requireContext()) else R.drawable.border_round_eee_14.toDrawable(requireContext()) + tab.customView?.findViewById(R.id.tab_title)?.setTextColor(if (tab.isSelected) R.color.theme_font.toColor() else R.color.text_title.toColor()) + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt b/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt index bcdaecb541..462a52ed8b 100644 --- a/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/subject/tile/SubjectTileFragment.kt @@ -5,16 +5,16 @@ import android.text.TextUtils import android.view.MotionEvent import android.view.View import androidx.recyclerview.widget.GridLayoutManager -import com.gh.base.fragment.BaseFragment -import com.gh.common.util.EntranceUtils -import com.gh.common.util.StringUtils -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentSubjectTiledBinding import com.gh.gamecenter.entity.SubjectData import com.gh.gamecenter.entity.SubjectSettingEntity import com.gh.gamecenter.eventbus.EBReuse -import com.gh.gamecenter.normal.ToolbarController +import com.gh.gamecenter.common.base.fragment.ToolbarController import com.gh.gamecenter.subject.SubjectListFragment import com.google.android.material.appbar.AppBarLayout import org.greenrobot.eventbus.Subscribe @@ -38,7 +38,7 @@ class SubjectTileFragment : BaseFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // 初始化数据 - mSubjectData = arguments?.getParcelable(EntranceUtils.KEY_SUBJECT_DATA) ?: return + mSubjectData = arguments?.getParcelable(EntranceConsts.KEY_SUBJECT_DATA) ?: return mSettingsEntity = arguments?.getParcelable(SubjectSettingEntity::class.java.simpleName) ?: return @@ -148,7 +148,7 @@ class SubjectTileFragment : BaseFragment() { } else { fragmentByTag = SubjectListFragment() val bundle = arguments ?: Bundle() - bundle.putParcelable(EntranceUtils.KEY_SUBJECT_DATA, mSubjectData) + bundle.putParcelable(EntranceConsts.KEY_SUBJECT_DATA, mSubjectData) fragmentByTag.arguments = bundle transaction.add(R.id.subject_content_rl, fragmentByTag, fmTag) } diff --git a/app/src/main/java/com/gh/gamecenter/suggest/GameUploadPicViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/GameUploadPicViewHolder.java index f68298b8b5..52d016f46c 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/GameUploadPicViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/GameUploadPicViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.suggest; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.GameUploadPicItemBinding; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java index 3394193c8b..937a24d05c 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SelectGameViewHolder.java @@ -1,6 +1,6 @@ package com.gh.gamecenter.suggest; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.DialogSelectGameItemBinding; /** diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestGameCollectAdapter.kt b/app/src/main/java/com/gh/gamecenter/suggest/SuggestGameCollectAdapter.kt index 197aebc78c..115bb86172 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestGameCollectAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestGameCollectAdapter.kt @@ -2,8 +2,8 @@ package com.gh.gamecenter.suggest import android.content.Context import android.view.ViewGroup -import com.gh.common.util.MtaHelper -import com.gh.common.util.dip2px +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.databinding.GameItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java index 995b4a14ee..b2f02a6892 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicAdapter.java @@ -4,8 +4,8 @@ import android.content.Context; import android.view.View; import android.view.ViewGroup; -import com.gh.base.OnListClickListener; -import com.gh.common.util.ImageUtils; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.utils.ImageUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.databinding.GameUploadPicItemBinding; import com.gh.gamecenter.databinding.SuggestPicItemBinding; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java index 32079ef3ed..f7deb2efea 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestPicViewHolder.java @@ -1,7 +1,7 @@ package com.gh.gamecenter.suggest; -import com.gh.base.BaseRecyclerViewHolder; -import com.gh.base.OnListClickListener; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.callback.OnListClickListener; import com.gh.gamecenter.databinding.SuggestPicItemBinding; import java.util.List; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java index c85ad14c7b..5b35aa488c 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectFragment.java @@ -7,11 +7,11 @@ import android.view.View; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; -import com.gh.base.fragment.BaseFragment; +import com.gh.gamecenter.common.base.fragment.BaseFragment; import com.gh.common.constant.Config; import com.gh.common.util.DirectUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.ShareUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.common.utils.ShareUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.databinding.FragmentSuggestSelectBinding; import com.gh.gamecenter.entity.SettingsEntity; diff --git a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java index cbb281066c..fe1ff43e13 100644 --- a/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java @@ -7,18 +7,16 @@ import android.graphics.drawable.Drawable; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; - +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.utils.BitmapUtils; import androidx.core.content.ContextCompat; - -import com.gh.base.OnRequestCallBackListener; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.util.BitmapUtils; import com.gh.common.util.PackageUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.SuggestionActivity; import com.gh.gamecenter.databinding.DialogSelectGameItemBinding; import com.gh.gamecenter.entity.InstallGameEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.lightgame.adapter.BaseRecyclerAdapter; import java.io.File; diff --git a/app/src/main/java/com/gh/gamecenter/tag/TagsActivity.kt b/app/src/main/java/com/gh/gamecenter/tag/TagsActivity.kt index 56f71f4fd9..3ace315c98 100644 --- a/app/src/main/java/com/gh/gamecenter/tag/TagsActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/tag/TagsActivity.kt @@ -3,16 +3,15 @@ package com.gh.gamecenter.tag import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils -import com.gh.common.util.updateStatusBarColor +import com.gh.base.DownloadToolbarActivity import com.gh.gamecenter.GameDetailActivity -import com.gh.gamecenter.NormalActivity import com.gh.gamecenter.R import com.gh.gamecenter.SearchActivity +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.updateStatusBarColor -class TagsActivity : NormalActivity() { +class TagsActivity : DownloadToolbarActivity() { companion object { @@ -24,7 +23,7 @@ class TagsActivity : NormalActivity() { fun getIntent(context: Context, tag: String, source: String?, entrance: String, path: String): Intent { val bundle = Bundle() bundle.putString(TAG, tag) - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) bundle.putString(SOURCE, source ?: "") when (context) { diff --git a/app/src/main/java/com/gh/gamecenter/tag/TagsHorizontalAdapter.kt b/app/src/main/java/com/gh/gamecenter/tag/TagsHorizontalAdapter.kt index 1c18cc6d0f..15f16f3abd 100644 --- a/app/src/main/java/com/gh/gamecenter/tag/TagsHorizontalAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/tag/TagsHorizontalAdapter.kt @@ -4,7 +4,7 @@ import android.content.Context import android.graphics.Color import android.view.ViewGroup import androidx.core.content.ContextCompat -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ItemTagBinding import com.gh.gamecenter.entity.TagEntity diff --git a/app/src/main/java/com/gh/gamecenter/tag/TagsListAdapter.kt b/app/src/main/java/com/gh/gamecenter/tag/TagsListAdapter.kt index d6baeaf258..e0540bfdc1 100644 --- a/app/src/main/java/com/gh/gamecenter/tag/TagsListAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/tag/TagsListAdapter.kt @@ -3,19 +3,18 @@ package com.gh.gamecenter.tag import android.content.Context import android.util.SparseArray import android.view.ViewGroup -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable import com.gh.common.util.DownloadItemUtils -import com.gh.common.util.StringUtils -import com.gh.common.util.dip2px +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.adapter.viewholder.GameViewHolder import com.gh.gamecenter.baselist.ListAdapter -import com.gh.gamecenter.baselist.LoadType import com.gh.gamecenter.databinding.GameItemBinding import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.eventbus.EBDownloadStatus diff --git a/app/src/main/java/com/gh/gamecenter/tag/TagsListFragment.kt b/app/src/main/java/com/gh/gamecenter/tag/TagsListFragment.kt index 472987ff44..b12721769c 100644 --- a/app/src/main/java/com/gh/gamecenter/tag/TagsListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/tag/TagsListFragment.kt @@ -4,13 +4,13 @@ import android.os.Bundle import android.view.View import androidx.recyclerview.widget.LinearLayoutManager import com.ethanhua.skeleton.Skeleton -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureListener import com.gh.common.exposure.ExposureSource import com.gh.common.util.DialogUtils -import com.gh.common.util.observeNonNull -import com.gh.common.util.toColor -import com.gh.common.util.viewModelProvider +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.common.view.ConfigFilterView import com.gh.common.xapk.XapkInstaller import com.gh.common.xapk.XapkUnzipStatus diff --git a/app/src/main/java/com/gh/gamecenter/tag/TagsListViewModel.kt b/app/src/main/java/com/gh/gamecenter/tag/TagsListViewModel.kt index 3abaa099a1..230e55a970 100644 --- a/app/src/main/java/com/gh/gamecenter/tag/TagsListViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/tag/TagsListViewModel.kt @@ -5,13 +5,13 @@ import android.app.Application import androidx.lifecycle.MutableLiveData import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.ExposureUtils -import com.gh.common.util.UrlFilterUtils +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.common.view.ConfigFilterView import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.SubjectSettingEntity import com.gh.gamecenter.entity.TagEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.Single diff --git a/app/src/main/java/com/gh/gamecenter/teenagermode/PasswordSettingFragment.kt b/app/src/main/java/com/gh/gamecenter/teenagermode/PasswordSettingFragment.kt index 98ea4953f7..3b6af3a752 100644 --- a/app/src/main/java/com/gh/gamecenter/teenagermode/PasswordSettingFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/teenagermode/PasswordSettingFragment.kt @@ -4,20 +4,20 @@ import android.graphics.Color import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProvider -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.toColor -import com.gh.common.util.toDrawable -import com.gh.common.view.VerifyEditText +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.view.VerifyEditText import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.databinding.FragmentPasswordSettingBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.toDrawable import com.lightgame.utils.AppManager -class PasswordSettingFragment : NormalFragment() { +class PasswordSettingFragment : ToolbarFragment() { private var mBinding: FragmentPasswordSettingBinding? = null private var mViewModel: TeenagerModeViewModel? = null diff --git a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt index b5f6a6d74e..893f919144 100644 --- a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt @@ -4,9 +4,9 @@ import android.content.Context import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.common.base.BaseActivity import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.DisplayUtils class TeenagerModeActivity : BaseActivity() { diff --git a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt index 37db03bfb5..5dc8ab77bc 100644 --- a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt @@ -4,15 +4,20 @@ import android.graphics.Color import android.os.Bundle import android.view.View import androidx.constraintlayout.widget.ConstraintLayout -import com.gh.common.constant.Constants -import com.gh.common.util.* -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.databinding.FragmentTeenagerModeBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.core.utils.ClickUtils -class TeenagerModeFragment : NormalFragment() { +class TeenagerModeFragment : ToolbarFragment() { private var mBinding: FragmentTeenagerModeBinding? = null diff --git a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeViewModel.kt b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeViewModel.kt index 67e2fb2a37..113fdf048a 100644 --- a/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeViewModel.kt @@ -3,8 +3,8 @@ package com.gh.gamecenter.teenagermode import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.AndroidViewModel -import com.gh.common.util.createRequestBody -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.utils.createRequestBody +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockActivity.kt b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockActivity.kt index 586eabf67d..1b3eafce23 100644 --- a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockActivity.kt @@ -14,13 +14,15 @@ import android.widget.TextView import androidx.activity.viewModels import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.SimpleItemAnimator -import com.gh.base.ToolBarActivity -import com.gh.common.util.* -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.gamecenter.R import com.gh.gamecenter.SuggestionActivity import com.gh.gamecenter.WebActivity import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ActivityToolboxBlockBinding import com.gh.gamecenter.suggest.SuggestType import com.google.android.material.appbar.AppBarLayout @@ -51,8 +53,8 @@ class ToolBoxBlockActivity : ToolBarActivity() { updateStatusBarColor(R.color.black, R.color.white) // 跳转到工具箱 https://gitlab.ghzs.com/pm/halo-app-issues/issues/636 - val gameId = intent.getStringExtra(EntranceUtils.KEY_GAMEID) - val targetUrl = intent.getStringExtra(EntranceUtils.KEY_URL) + val gameId = intent.getStringExtra(EntranceConsts.KEY_GAMEID) + val targetUrl = intent.getStringExtra(EntranceConsts.KEY_URL) if (!gameId.isNullOrEmpty() && !targetUrl.isNullOrEmpty()) { mViewModel.getGameToolBoxData(gameId) { for (toolbox in it) { @@ -288,7 +290,7 @@ class ToolBoxBlockActivity : ToolBarActivity() { @JvmStatic fun getIntent(context: Context, entrance: String?): Intent { val intent = Intent(context, ToolBoxBlockActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt index f4ae68459e..8bd290dd17 100644 --- a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt @@ -4,12 +4,12 @@ import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.GridLayoutManager -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.goneIf -import com.gh.common.util.safelyGetInRelease -import com.gh.common.util.toColor import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.safelyGetInRelease import com.gh.gamecenter.baselist.ListExecutor +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.ToolboxBlockItemBinding import com.gh.gamecenter.entity.ToolBoxBlockEntity import com.gh.gamecenter.entity.ToolBoxEntity diff --git a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt index 8f1380ff61..b7603ab6c7 100644 --- a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt @@ -4,16 +4,16 @@ import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder import com.gh.common.constant.Config -import com.gh.common.util.ImageUtils.display -import com.gh.common.util.goneIf -import com.gh.common.util.safelyGetInRelease -import com.gh.common.util.toColor import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity.Companion.getWebByCollectionTools import com.gh.gamecenter.baselist.ListExecutor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils.display +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.ItemToolboxBinding import com.gh.gamecenter.entity.ToolBoxEntity import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxViewModel.kt b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxViewModel.kt index 899bd99de1..fc0a53b7b6 100644 --- a/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxViewModel.kt @@ -3,12 +3,16 @@ package com.gh.gamecenter.toolbox import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.constant.Constants -import com.gh.common.util.* +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.baselist.LoadStatus +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.ToolBoxBlockEntity import com.gh.gamecenter.entity.ToolBoxEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.google.gson.reflect.TypeToken import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/user/UserRepository.java b/app/src/main/java/com/gh/gamecenter/user/UserRepository.java index 48f0d31aa4..40f255019a 100644 --- a/app/src/main/java/com/gh/gamecenter/user/UserRepository.java +++ b/app/src/main/java/com/gh/gamecenter/user/UserRepository.java @@ -3,7 +3,6 @@ package com.gh.gamecenter.user; import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; -import android.os.Build; import android.preference.PreferenceManager; import android.text.TextUtils; @@ -12,25 +11,23 @@ import androidx.annotation.Nullable; import androidx.lifecycle.LiveData; import androidx.lifecycle.MediatorLiveData; -import com.gh.common.PushManager; -import com.gh.common.constant.Constants; -import com.gh.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.constant.Constants; import com.gh.common.repository.ReservationRepository; -import com.gh.common.util.BiCallback; +import com.gh.gamecenter.common.callback.BiCallback; import com.gh.common.util.DataUtils; -import com.gh.common.util.DeviceUtils; +import com.gh.gamecenter.common.retrofit.ApiResponse; +import com.gh.gamecenter.common.utils.DeviceUtils; import com.gh.common.util.EnergyTaskHelper; -import com.gh.common.util.EnvHelper; +import com.gh.gamecenter.common.utils.EnvHelper; import com.gh.common.util.ErrorHelper; import com.gh.common.util.GameSubstituteRepositoryHelper; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.common.util.LoginHelper; import com.gh.common.util.LoginUtils; import com.gh.common.util.NewLogUtils; -import com.gh.common.util.SPUtils; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.common.util.WechatBindHelper; import com.gh.download.DownloadManager; -import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.AvatarBorderEntity; import com.gh.gamecenter.entity.BackgroundImageEntity; @@ -42,8 +39,8 @@ import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.message.MessageUnreadRepository; import com.gh.gamecenter.personal.PersonalFragment; -import com.gh.gamecenter.retrofit.BiResponse; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.BiResponse; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.retrofit.service.ApiService; import com.halo.assistant.HaloApp; @@ -140,8 +137,6 @@ public class UserRepository { SPUtils.setString(mPreferences, Constants.USER_INFO_KEY, null); SPUtils.setString(Constants.SP_REGULATION_TEST_PASS_STATUS, ""); -// ImManager.detachIm(); - PushManager.deleteAlias(); ReservationRepository.clearReservations(); GameSubstituteRepositoryHelper.updateSubstitutableGames(); @@ -239,7 +234,6 @@ public class UserRepository { userTokenHandle(response, loginTag); - PushManager.getAndSetAlias(); GameSubstituteRepositoryHelper.updateSubstitutableGames(); WechatBindHelper.getWechatConfig(null); @@ -276,22 +270,6 @@ public class UserRepository { Utils.toast(mContext, mContext.getString(R.string.login_failure_hint_code, code)); } Utils.log("login->onFailure:: code:" + code + " content:" + content.toString()); - DataUtils.onMtaEvent(mContext, "登录异常统计_手动登录", "错误码", String.valueOf(code) - , "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication()) - , "用户机型", Build.MODEL - , "设备JNFJ", MetaUtil.getBase64EncodedIMEI()); - - DataUtils.onMtaEvent(HaloApp.getInstance().getApplication(), - "登录异常_手动登录_新", - "光环版本", BuildConfig.VERSION_NAME, - "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().getApplication()), - "JNFJ", MetaUtil.getBase64EncodedIMEI(), - "机型", Build.MODEL, - "厂商", Build.MANUFACTURER, - "登录方式", finalLoginTypeForHumanEyes, - "Android版本", Build.VERSION.RELEASE - ); - } else { Utils.toast(mContext, mContext.getString(R.string.login_failure_hint_code, httpException.code())); } diff --git a/app/src/main/java/com/gh/gamecenter/user/UserViewModel.java b/app/src/main/java/com/gh/gamecenter/user/UserViewModel.java index 0acc792451..0f5dc8ef97 100644 --- a/app/src/main/java/com/gh/gamecenter/user/UserViewModel.java +++ b/app/src/main/java/com/gh/gamecenter/user/UserViewModel.java @@ -2,6 +2,7 @@ package com.gh.gamecenter.user; import android.app.Application; +import com.gh.gamecenter.common.retrofit.ApiResponse; import com.gh.gamecenter.entity.UserInfoEntity; import org.json.JSONObject; diff --git a/app/src/main/java/com/gh/gamecenter/video/VideoItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/video/VideoItemViewHolder.kt index 913fa6b111..10e64c4cd4 100644 --- a/app/src/main/java/com/gh/gamecenter/video/VideoItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/video/VideoItemViewHolder.kt @@ -1,9 +1,11 @@ package com.gh.gamecenter.video -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.ImageUtils -import com.gh.common.util.TimeUtils -import com.gh.common.util.toSimpleCount +import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.setRootBackgroundDrawable +import com.gh.gamecenter.core.utils.TimeUtils +import com.gh.gamecenter.common.utils.toSimpleCount import com.gh.gamecenter.databinding.VideoNewItemBinding import com.gh.gamecenter.entity.MyVideoEntity @@ -11,6 +13,7 @@ class VideoItemViewHolder(var binding: VideoNewItemBinding) : BaseRecyclerViewHo fun bindVideoItem(entity: MyVideoEntity) { binding.run { + root.setRootBackgroundDrawable(R.drawable.background_shape_white_radius_6) ImageUtils.display(videoCover, entity.poster) videoLikeCount.text = entity.vote.toSimpleCount() videoCommentCount.text = entity.commentCount.toSimpleCount() diff --git a/app/src/main/java/com/gh/gamecenter/video/VideoVerifyItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/video/VideoVerifyItemViewHolder.kt index 63766be488..969080e59d 100644 --- a/app/src/main/java/com/gh/gamecenter/video/VideoVerifyItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/video/VideoVerifyItemViewHolder.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.video import android.widget.TextView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.toColor +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.R import com.gh.gamecenter.databinding.VideoVerifyItemBinding diff --git a/app/src/main/java/com/gh/gamecenter/video/ViewHolder.kt b/app/src/main/java/com/gh/gamecenter/video/ViewHolder.kt index 7b1c9fec81..10c0c22fed 100644 --- a/app/src/main/java/com/gh/gamecenter/video/ViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/video/ViewHolder.kt @@ -1,6 +1,6 @@ package com.gh.gamecenter.video -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.databinding.VideoStatusItemBinding class VideoStatusItemViewHolder(var binding: VideoStatusItemBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt index 9a198197a8..197e83aa42 100644 --- a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataActivity.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.video.data import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.R class VideoDataActivity : BaseActivity() { @@ -16,9 +16,11 @@ class VideoDataActivity : BaseActivity() { DisplayUtils.transparentStatusBar(this) val containerFragment = supportFragmentManager.findFragmentByTag(VideoDataFragment::class.java.simpleName) - ?: VideoDataFragment().with(intent.extras) + ?: VideoDataFragment().with(intent.extras) // 若 placeholder 外层为 RelativeLayout 的话,会出现莫名的偏移 - supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, VideoDataFragment::class.java.simpleName).commitAllowingStateLoss() + supportFragmentManager.beginTransaction().replace(R.id.placeholder, containerFragment, VideoDataFragment::class.java.simpleName) + .commitAllowingStateLoss() } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataAdapter.kt index 9671d29968..41c79f83f1 100644 --- a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataAdapter.kt @@ -4,10 +4,10 @@ import android.content.Context import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.NumberUtils -import com.gh.common.util.SpanBuilder -import com.gh.common.util.toBinding -import com.gh.common.view.CustomMarkerView +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.view.CustomMarkerView import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.databinding.ItemVideoDataChartBinding diff --git a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataFragment.kt b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataFragment.kt index 20d24441a4..16b0794c6c 100644 --- a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataFragment.kt @@ -5,14 +5,15 @@ import android.view.LayoutInflater import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.Observer -import com.gh.base.fragment.BaseFragment -import com.gh.common.util.DisplayUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toDrawable -import com.gh.common.util.viewModelProvider -import com.gh.common.view.FixLinearLayoutManager -import com.gh.common.view.VerticalItemDecoration +import androidx.recyclerview.widget.RecyclerView import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toDrawable +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.view.VerticalItemDecoration +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.FragmentVideoDataBinding import com.gh.gamecenter.mvvm.Status @@ -45,7 +46,7 @@ class VideoDataFragment : BaseFragment() { mAdapter = VideoDataAdapter(requireContext()) mBinding.listRv.apply { layoutManager = FixLinearLayoutManager(requireContext()) - addItemDecoration(VerticalItemDecoration(requireContext(), 40F, false, R.color.white)) + addItemDecoration(getItemDecoration()) adapter = mAdapter } mViewModel.loadData() @@ -62,7 +63,10 @@ class VideoDataFragment : BaseFragment() { loadErrorControl() } }) + } + private fun getItemDecoration(): RecyclerView.ItemDecoration { + return VerticalItemDecoration(requireContext(), 40F, false, R.color.background_white) } private fun loadErrorControl() { @@ -74,4 +78,12 @@ class VideoDataFragment : BaseFragment() { mViewModel.loadData() } } + + override fun onNightModeChange() { + super.onNightModeChange() + if (mBinding.listRv.itemDecorationCount > 0) { + mBinding.listRv.removeItemDecorationAt(0) + mBinding.listRv.addItemDecoration(getItemDecoration()) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataViewModel.kt index 3d2b94c11d..d329d2a5a9 100644 --- a/app/src/main/java/com/gh/gamecenter/video/data/VideoDataViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/data/VideoDataViewModel.kt @@ -3,12 +3,12 @@ package com.gh.gamecenter.video.data import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.util.TimeUtils +import com.gh.gamecenter.core.utils.TimeUtils import com.gh.gamecenter.entity.VideoDataItem import com.gh.gamecenter.entity.VideoDataOverViewEntity import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt index 3e93a3672b..097c98a6cf 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt @@ -19,16 +19,22 @@ import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import com.airbnb.lottie.LottieAnimationView -import com.gh.common.AppExecutor -import com.gh.common.constant.Constants -import com.gh.common.observer.MuteCallback -import com.gh.common.observer.VolumeObserver -import com.gh.common.runOnIoThread -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.observer.MuteCallback +import com.gh.gamecenter.common.observer.VolumeObserver +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.LogUtils import com.gh.download.cache.ExoCacheManager import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.LayoutVideoDetailSurfaceBinding import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.eventbus.EBRecommed @@ -46,7 +52,6 @@ import com.shuyu.gsyvideoplayer.utils.NetworkUtils import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer import com.shuyu.gsyvideoplayer.video.base.GSYVideoView import com.shuyu.gsyvideoplayer.video.base.GSYVideoViewBridge -import com.squareup.picasso.Picasso import io.reactivex.disposables.Disposable import org.greenrobot.eventbus.EventBus import java.util.concurrent.TimeUnit @@ -166,11 +171,13 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib mBinding.sdvUserBadge.visibility = View.GONE } mBinding.sdvUserBadge.setOnClickListener { - DialogUtils.showViewBadgeDialog(context, videoEntity.user.badge) { - MtaHelper.onEvent("进入徽章墙_用户记录", "视频详情", "${videoEntity.user.name}(${videoEntity.user.id})") - MtaHelper.onEvent("徽章中心", "进入徽章中心", "视频详情") - DirectUtils.directToBadgeWall(context, videoEntity.user.id, videoEntity.user.name, videoEntity.user.icon) - } + DialogUtils.showViewBadgeDialog(context, videoEntity.user.badge, object : ConfirmListener { + override fun onConfirm() { + MtaHelper.onEvent("进入徽章墙_用户记录", "视频详情", "${videoEntity.user.name}(${videoEntity.user.id})") + MtaHelper.onEvent("徽章中心", "进入徽章中心", "视频详情") + DirectUtils.directToBadgeWall(context, videoEntity.user.id, videoEntity.user.name, videoEntity.user.icon) + } + }) } if (videoEntity.me.isVoted && UserManager.getInstance().isLoggedIn) { @@ -410,7 +417,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib } mViewModel?.voteVideo(mVideoEntity) - if (mViewModel?.entrance?.contains(EntranceUtils.ENTRANCE_WELCOME) == true + if (mViewModel?.entrance?.contains(EntranceConsts.ENTRANCE_WELCOME) == true && mViewModel?.entrance?.countOccurrences("+")!! <= 1 ) { LogUtils.uploadLikeFromWelcomeDialog() diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt index 3949c56b2e..1053fac008 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt @@ -7,14 +7,21 @@ import android.view.View import android.widget.TextView import androidx.core.os.bundleOf import androidx.fragment.app.Fragment -import com.gh.base.adapter.FragmentAdapter -import com.gh.base.fragment.BaseLazyFragment +import com.gh.gamecenter.common.base.adapter.FragmentAdapter +import com.gh.gamecenter.common.base.fragment.BaseLazyFragment import com.gh.common.constant.Config -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* import com.gh.common.view.AdBannerView import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.countDownTimer +import com.gh.gamecenter.common.utils.doOnPageSelected +import com.gh.gamecenter.common.utils.visibleIf +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.databinding.FragmentHomeVideoBinding import com.gh.gamecenter.entity.LinkEntity import com.gh.gamecenter.entity.SettingsEntity @@ -62,7 +69,7 @@ class HomeVideoFragment : BaseLazyFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - val mLocation = arguments?.getString(EntranceUtils.KEY_LOCATION) ?: "" + val mLocation = arguments?.getString(EntranceConsts.KEY_LOCATION) ?: "" if (mLocation != VideoDetailContainerViewModel.Location.USER_UPLOADED_VIDEO.value) { mBinding.moreIv.visibility = View.VISIBLE mBinding.moreIv.setOnClickListener { @@ -73,17 +80,17 @@ class HomeVideoFragment : BaseLazyFragment() { override fun onFragmentFirstVisible() { super.onFragmentFirstVisible() - val mIsHomeVideo = arguments?.getBoolean(EntranceUtils.KEY_IS_HOME_VIDEO, false) ?: false + val mIsHomeVideo = arguments?.getBoolean(EntranceConsts.KEY_IS_HOME_VIDEO, false) ?: false titles = if (mIsHomeVideo) { arrayListOf("关注", "推荐") } else { arrayListOf("推荐") } if (mIsHomeVideo) { - val newestBundle = bundleOf(EntranceUtils.KEY_UUID to UUID.randomUUID().toString()) + val newestBundle = bundleOf(EntranceConsts.KEY_UUID to UUID.randomUUID().toString()) newestBundle.putAll(arguments) - newestBundle.putString(EntranceUtils.KEY_PATH, "视频流-关注Tab") - newestBundle.putString(EntranceUtils.KEY_LOCATION, VideoDetailContainerViewModel.Location.VIDEO_ATTENTION.value) + newestBundle.putString(EntranceConsts.KEY_PATH, "视频流-关注Tab") + newestBundle.putString(EntranceConsts.KEY_LOCATION, VideoDetailContainerViewModel.Location.VIDEO_ATTENTION.value) newestVideoDetailFragment = VideoDetailContainerFragment() newestVideoDetailFragment?.with(newestBundle) fragments.add(newestVideoDetailFragment!!) @@ -92,10 +99,10 @@ class HomeVideoFragment : BaseLazyFragment() { recommendVideoDetailFragment = VideoDetailContainerFragment() if (mIsHomeVideo) { - val recommendBundle = bundleOf(EntranceUtils.KEY_UUID to UUID.randomUUID().toString()) + val recommendBundle = bundleOf(EntranceConsts.KEY_UUID to UUID.randomUUID().toString()) recommendBundle.putAll(arguments) - recommendBundle.putString(EntranceUtils.KEY_PATH, "视频流-推荐Tab") - recommendBundle.putString(EntranceUtils.KEY_LOCATION, VideoDetailContainerViewModel.Location.VIDEO_CHOICENESS.value) + recommendBundle.putString(EntranceConsts.KEY_PATH, "视频流-推荐Tab") + recommendBundle.putString(EntranceConsts.KEY_LOCATION, VideoDetailContainerViewModel.Location.VIDEO_CHOICENESS.value) recommendVideoDetailFragment?.with(recommendBundle) } else { recommendVideoDetailFragment?.with(arguments) @@ -116,7 +123,8 @@ class HomeVideoFragment : BaseLazyFragment() { MtaHelper.onEvent("视频流_最新", "顶部Tab", "最新Tab") LogUtils.uploadVideoStreamingPlaying( "点击最新Tab", "", "视频流-最新Tab", - arguments?.getString(EntranceUtils.KEY_REFERER), "", newestVideoDetailFragment?.arguments?.getString(EntranceUtils.KEY_UUID) + arguments?.getString(EntranceConsts.KEY_REFERER), "", newestVideoDetailFragment?.arguments?.getString( + EntranceConsts.KEY_UUID) ?: "", 0.0, 0, 0, "play" ) } else { @@ -125,9 +133,9 @@ class HomeVideoFragment : BaseLazyFragment() { "点击推荐Tab", "", "视频流-推荐Tab", - arguments?.getString(EntranceUtils.KEY_REFERER), + arguments?.getString(EntranceConsts.KEY_REFERER), "", - recommendVideoDetailFragment?.arguments?.getString(EntranceUtils.KEY_UUID) + recommendVideoDetailFragment?.arguments?.getString(EntranceConsts.KEY_UUID) ?: "", 0.0, 0, @@ -163,7 +171,7 @@ class HomeVideoFragment : BaseLazyFragment() { } fun getCurrentFragment(): VideoDetailContainerFragment? { - val mIsHomeVideo = arguments?.getBoolean(EntranceUtils.KEY_IS_HOME_VIDEO, false) ?: false + val mIsHomeVideo = arguments?.getBoolean(EntranceConsts.KEY_IS_HOME_VIDEO, false) ?: false return if (mIsHomeVideo) { if (mBinding.mViewPager.currentItem == 0) { newestVideoDetailFragment diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt index d223db8b65..53e03abe8c 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt @@ -8,8 +8,8 @@ import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.RecyclerView import androidx.swiperefreshlayout.widget.SwipeRefreshLayout -import com.gh.base.BaseActivity -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureSource import com.gh.common.exposure.IExposable @@ -17,6 +17,11 @@ import com.gh.common.util.* import com.gh.common.videolog.VideoRecordUtils import com.gh.download.cache.ExoCacheManager import com.gh.gamecenter.R +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.common.utils.goneIf +import com.gh.gamecenter.common.utils.safelyGetInRelease +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.PluginLocation import com.gh.gamecenter.entity.VideoEntity @@ -28,7 +33,6 @@ import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack import com.shuyu.gsyvideoplayer.utils.OrientationUtils import com.shuyu.gsyvideoplayer.video.base.GSYVideoView -import com.squareup.picasso.Picasso class VideoAdapter( val mContext: Context, diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt index 17c978c524..9b62029a6f 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailActivity.kt @@ -1,8 +1,8 @@ package com.gh.gamecenter.video.detail import android.os.Bundle -import com.gh.base.BaseActivity -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.R import java.util.* diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt index 48f4f8ca11..fcae4209b4 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt @@ -15,15 +15,20 @@ import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer import androidx.recyclerview.widget.OrientationHelper import androidx.recyclerview.widget.RecyclerView -import com.gh.base.fragment.BaseLazyFragment +import com.gh.gamecenter.common.base.fragment.BaseLazyFragment import com.gh.common.exposure.ExposureListener import com.gh.common.util.* +import com.gh.common.util.LogUtils import com.gh.common.videolog.VideoRecordUtils -import com.gh.common.view.vertical_recycler.OnPagerListener -import com.gh.common.view.vertical_recycler.PagerLayoutManager +import com.gh.gamecenter.common.view.vertical_recycler.OnPagerListener +import com.gh.gamecenter.common.view.vertical_recycler.PagerLayoutManager import com.gh.download.DownloadManager import com.gh.download.cache.ExoCacheManager import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.eventbus.EBShare +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentVideoDetailContainerBinding import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.eventbus.* @@ -37,7 +42,6 @@ import com.lightgame.download.DownloadEntity import com.lightgame.listeners.OnBackPressedListener import com.lightgame.utils.AppManager import com.scwang.smartrefresh.layout.footer.ClassicsFooter -import com.squareup.picasso.Picasso import io.reactivex.disposables.Disposable import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -81,25 +85,25 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mInitialVideoId = arguments?.getString(EntranceUtils.KEY_ID) ?: "" - mLocation = arguments?.getString(EntranceUtils.KEY_LOCATION) ?: "" - mReferer = arguments?.getString(EntranceUtils.KEY_REFERER) ?: "" + mInitialVideoId = arguments?.getString(EntranceConsts.KEY_ID) ?: "" + mLocation = arguments?.getString(EntranceConsts.KEY_LOCATION) ?: "" + mReferer = arguments?.getString(EntranceConsts.KEY_REFERER) ?: "" mUserViewModel = viewModelProviderFromParent(UserViewModel.Factory(HaloApp.getInstance().application)) mViewModel = viewModelProvider() - mViewModel.path = arguments?.getString(EntranceUtils.KEY_PATH) ?: "" - mViewModel.entrance = arguments?.getString(EntranceUtils.KEY_ENTRANCE) ?: "" - mViewModel.entranceDetail = arguments?.getString(EntranceUtils.KEY_REFERER) ?: "" - mViewModel.uuid = arguments?.getString(EntranceUtils.KEY_UUID) ?: "" - mViewModel.gameId = arguments?.getString(EntranceUtils.KEY_GAMEID) ?: "" - mViewModel.type = arguments?.getString(EntranceUtils.KEY_TYPE) ?: "" - mViewModel.act = arguments?.getString(EntranceUtils.KEY_ACTIVITY_NAME) ?: "" - mViewModel.paginationType = arguments?.getString(EntranceUtils.KEY_PAGINATION_TYPE) + mViewModel.path = arguments?.getString(EntranceConsts.KEY_PATH) ?: "" + mViewModel.entrance = arguments?.getString(EntranceConsts.KEY_ENTRANCE) ?: "" + mViewModel.entranceDetail = arguments?.getString(EntranceConsts.KEY_REFERER) ?: "" + mViewModel.uuid = arguments?.getString(EntranceConsts.KEY_UUID) ?: "" + mViewModel.gameId = arguments?.getString(EntranceConsts.KEY_GAMEID) ?: "" + mViewModel.type = arguments?.getString(EntranceConsts.KEY_TYPE) ?: "" + mViewModel.act = arguments?.getString(EntranceConsts.KEY_ACTIVITY_NAME) ?: "" + mViewModel.paginationType = arguments?.getString(EntranceConsts.KEY_PAGINATION_TYPE) ?: "type" - mViewModel.fieldId = arguments?.getString(EntranceUtils.KEY_FIELD_ID) ?: "" - mViewModel.sectionName = arguments?.getString(EntranceUtils.KEY_SECTION_NAME) ?: "" - mIsHomeVideo = arguments?.getBoolean(EntranceUtils.KEY_IS_HOME_VIDEO) ?: false - mViewModel.showComment = arguments?.getBoolean(EntranceUtils.KEY_SHOW_COMMENT) ?: false + mViewModel.fieldId = arguments?.getString(EntranceConsts.KEY_FIELD_ID) ?: "" + mViewModel.sectionName = arguments?.getString(EntranceConsts.KEY_SECTION_NAME) ?: "" + mIsHomeVideo = arguments?.getBoolean(EntranceConsts.KEY_IS_HOME_VIDEO) ?: false + mViewModel.showComment = arguments?.getBoolean(EntranceConsts.KEY_SHOW_COMMENT) ?: false mViewModel.location = mLocation mViewModel.isHomeVideo = mIsHomeVideo mViewModel.isPauseVideo = true @@ -728,7 +732,7 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener { videoEntity.commentCount = commentCount findVisibleVideoViewByPosition()?.updateViewDetail(videoEntity) - if (mViewModel.entrance.contains(EntranceUtils.ENTRANCE_WELCOME) + if (mViewModel.entrance.contains(EntranceConsts.ENTRANCE_WELCOME) && mViewModel.entrance.countOccurrences("+") <= 1) { LogUtils.uploadCommentFromWelcomeDialog() } diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerViewModel.kt index 17bfdf8a3c..2647fa6c4d 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerViewModel.kt @@ -5,19 +5,23 @@ import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import androidx.recyclerview.widget.RecyclerView -import com.gh.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.common.history.HistoryDatabase -import com.gh.common.runOnIoThread +import com.gh.gamecenter.core.runOnIoThread import com.gh.common.util.* import com.gh.download.DownloadManager +import com.gh.gamecenter.common.utils.createRequestBodyAny +import com.gh.gamecenter.common.utils.singleToMain +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.utils.UrlFilterUtils import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.MyVideoEntity import com.gh.gamecenter.entity.User import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.eventbus.EBUserFollow import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.google.gson.JsonObject import com.lightgame.utils.Utils @@ -231,11 +235,11 @@ class VideoDetailContainerViewModel(application: Application) : AndroidViewModel .api.getAttentionVideoStream(UserManager.getInstance().userId, body, page) } } - .compose(singleToMain()) - .subscribe(object : BiResponse>>() { - override fun onSuccess(data: retrofit2.Response>) { - val headers = data.headers() - total = headers.get("total")?.toInt() ?: 0 + .compose(singleToMain()) + .subscribe(object : BiResponse>>() { + override fun onSuccess(data: retrofit2.Response>) { + val headers = data.headers() + total = headers.get("total")?.toInt() ?: 0 val videoEntities = data.body() ?: arrayListOf() diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt index f4ff9c80e1..c83766c452 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt @@ -4,14 +4,20 @@ import android.content.Context import android.content.Intent import android.graphics.Color import android.os.Bundle +import android.widget.TextView +import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProviders -import com.gh.base.BaseActivity -import com.gh.base.ToolBarActivity -import com.gh.base.adapter.FragmentAdapter -import com.gh.common.util.* +import com.gh.gamecenter.common.base.BaseActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.base.adapter.FragmentAdapter import com.gh.gamecenter.GameDetailActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.toColor +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.ActivityVideoGameBinding import com.gh.gamecenter.mvvm.Status @@ -34,28 +40,29 @@ class GameVideoActivity : ToolBarActivity() { mBinding = ActivityVideoGameBinding.bind(mContentView) // viewpager & tab content - val gameId = intent.getStringExtra(EntranceUtils.KEY_GAMEID) ?: "" + val gameId = intent.getStringExtra(EntranceConsts.KEY_GAMEID) ?: "" val titles = arrayListOf("最热", "最新") val fragments = ArrayList() val tag = "android:switcher:${mBinding.viewpager.id}:" val hottest = supportFragmentManager.findFragmentByTag("${tag}0") ?: GameVideoFragment() val hottestBundle = Bundle() - hottestBundle.putString(EntranceUtils.KEY_GAMEID, gameId) - hottestBundle.putString(EntranceUtils.KEY_SORT, "vote_recently:-1") + hottestBundle.putString(EntranceConsts.KEY_GAMEID, gameId) + hottestBundle.putString(EntranceConsts.KEY_SORT, "vote_recently:-1") hottest.arguments = hottestBundle fragments.add(hottest) val newest = supportFragmentManager.findFragmentByTag("${tag}1") ?: GameVideoFragment() val newestBundle = Bundle() - newestBundle.putString(EntranceUtils.KEY_GAMEID, gameId) - newestBundle.putString(EntranceUtils.KEY_SORT, "time.upload:-1") + newestBundle.putString(EntranceConsts.KEY_GAMEID, gameId) + newestBundle.putString(EntranceConsts.KEY_SORT, "time.upload:-1") newest.arguments = newestBundle fragments.add(newest) // view mBinding.viewpager.offscreenPageLimit = fragments.size - mBinding.viewpager.adapter = FragmentAdapter(supportFragmentManager, fragments, titles) + mBinding.viewpager.adapter = + FragmentAdapter(supportFragmentManager, fragments, titles) mBinding.tabLayout.setupWithViewPager(mBinding.viewpager) mBinding.tabIndicator.setupWithTabLayout(mBinding.tabLayout) mBinding.tabIndicator.setupWithViewPager(mBinding.viewpager) @@ -65,8 +72,10 @@ class GameVideoActivity : ToolBarActivity() { mViewModel = ViewModelProviders.of(this, factory).get(GameVideoViewModel::class.java) mViewModel.gameViewInfo.observeNonNull(this, callback = { if (it.status == Status.SUCCESS) { - mBinding.gameIcon.displayGameIcon(it.data?.game?.getIcon() - ?: it.data?.gameIcon, it.data?.game?.iconSubscript) + mBinding.gameIcon.displayGameIcon( + it.data?.game?.getIcon() + ?: it.data?.gameIcon, it.data?.game?.iconSubscript + ) mBinding.gameName.text = it.data?.game?.name mBinding.likeCount.text = NumberUtils.transSimpleCount(it.data?.likeCount ?: 0) mBinding.videoCount.text = NumberUtils.transSimpleCount(it.data?.videoCount ?: 0) @@ -87,13 +96,28 @@ class GameVideoActivity : ToolBarActivity() { return R.drawable.ic_toolbar_back_white } + override fun isAutoResetViewBackgroundEnabled(): Boolean = true + + override fun onNightModeChange() { + mToolbar.setBackgroundColor(R.color.transparent.toColor(this)) + mToolbar.setNavigationIcon(R.drawable.ic_toolbar_back_white) + mBinding.tabContainer.setBackgroundColor(R.color.background_white.toColor(this)) + for (i in 0 until mBinding.tabLayout.tabCount) { + val tab = mBinding.tabLayout.getTabAt(i) + if (tab != null) { + val customView = tab.view.getChildAt(1) as? TextView + customView?.setTextColor(ContextCompat.getColorStateList(this, R.color.text_tabbar_style)) + } + } + } + companion object { @JvmStatic fun getIntent(context: Context, gameId: String, entrance: String?, path: String?): Intent { val intent = Intent(context, GameVideoActivity::class.java) - intent.putExtra(EntranceUtils.KEY_GAMEID, gameId) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_GAMEID, gameId) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt index d56c525c98..e1a906507a 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoAdapter.kt @@ -4,7 +4,7 @@ import android.content.Context import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.DirectUtils import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt index 2f5cbcbefa..5f53bd1126 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt @@ -6,9 +6,9 @@ import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.Config -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.GridSpacingItemDecoration import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.baselist.NormalListViewModel import com.gh.gamecenter.entity.MyVideoEntity @@ -24,8 +24,8 @@ class GameVideoFragment : ListFragment> { val api = RetrofitManager.getInstance().api - val gameId = arguments?.getString(EntranceUtils.KEY_GAMEID) - val sort = arguments?.getString(EntranceUtils.KEY_SORT) + val gameId = arguments?.getString(EntranceConsts.KEY_GAMEID) + val sort = arguments?.getString(EntranceConsts.KEY_SORT) return api.getGameVideo(gameId, sort, page, Config.VIDEO_PAGE_SIZE) } + + override fun onNightModeChange() { + super.onNightModeChange() + mListRv.recycledViewPool.clear() + mAdapter?.notifyItemRangeChanged(0, mAdapter?.itemCount ?: 0) + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoViewModel.kt index 96e13e4975..4a29c2ef13 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoViewModel.kt @@ -8,7 +8,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.entity.GameVideoInfo import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelActivity.kt b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelActivity.kt index c2f1c2bde5..3a9226578a 100644 --- a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelActivity.kt @@ -3,10 +3,10 @@ package com.gh.gamecenter.video.label import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity @Deprecated("v5.0.0废弃") -class VideoLabelActivity : NormalActivity() { +class VideoLabelActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelAdapter.kt index 968deb2ac2..b27b39bfbc 100644 --- a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelAdapter.kt @@ -3,12 +3,12 @@ package com.gh.gamecenter.video.label import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.setRootBackgroundColor -import com.gh.common.util.toBinding -import com.gh.common.util.toColor -import com.gh.common.util.visibleIf +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.toBinding +import com.gh.gamecenter.common.utils.visibleIf import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.setRootBackgroundColor +import com.gh.gamecenter.common.utils.toColor import com.gh.gamecenter.databinding.VideoLabelItemBinding import com.gh.gamecenter.entity.ActivityLabelEntity import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelFragment.kt b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelFragment.kt index 643df1c237..69314d48b3 100644 --- a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelFragment.kt @@ -6,17 +6,17 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager -import com.gh.common.util.EntranceUtils -import com.gh.common.util.dip2px -import com.gh.common.util.viewModelProvider -import com.gh.common.view.divider.HorizontalDividerItemDecoration +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.viewModelProvider +import com.gh.gamecenter.common.view.divider.HorizontalDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentListBaseBinding import com.gh.gamecenter.entity.ActivityLabelEntity -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.qa.dialog.ChooseActivityDialogFragment -class VideoLabelFragment : NormalFragment() { +class VideoLabelFragment : ToolbarFragment() { private lateinit var mBinding: FragmentListBaseBinding private var mAdapter: VideoLabelAdapter? = null private lateinit var mViewModel: VideoLabelViewModel @@ -29,8 +29,8 @@ class VideoLabelFragment : NormalFragment() { mBinding.listRefresh.isEnabled = false val selectTagActivityId = arguments?.getString(VideoLabelActivity.TAG_ACTIVITY_ID) ?: "" - val location = arguments?.getString(EntranceUtils.KEY_LOCATION) ?: "" - val bbsId = arguments?.getString(EntranceUtils.KEY_BBS_ID) ?: "" + val location = arguments?.getString(EntranceConsts.KEY_LOCATION) ?: "" + val bbsId = arguments?.getString(EntranceConsts.KEY_BBS_ID) ?: "" mViewModel = viewModelProvider(VideoLabelViewModel.Factory(location, bbsId)) mBinding.listRv.apply { layoutManager = LinearLayoutManager(requireContext()) diff --git a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelViewModel.kt index 420db3edcf..6906da1fc9 100644 --- a/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/label/VideoLabelViewModel.kt @@ -6,7 +6,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.gh.gamecenter.entity.ActivityLabelEntity -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt b/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt index 56b664e0fe..c5d13521af 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/PosterClipActivity.kt @@ -5,14 +5,12 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.view.View -import com.gh.base.ToolBarActivity -import com.gh.common.util.DialogHelper -import com.gh.common.util.DialogUtils -import com.gh.common.util.DisplayUtils -import com.gh.common.util.EntranceUtils +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.R import com.gh.gamecenter.video.poster.video.VideoPosterFragment -import com.gh.gamecenter.video.upload.view.UploadVideoActivity import java.io.File class PosterClipActivity : ToolBarActivity() { @@ -24,7 +22,7 @@ class PosterClipActivity : ToolBarActivity() { super.onCreate(savedInstanceState) setNavigationTitle("剪辑封面") - val videoPath = intent.getStringExtra(EntranceUtils.KEY_PATH_VIDEO) + val videoPath = intent.getStringExtra(EntranceConsts.KEY_PATH_VIDEO) val fragment = supportFragmentManager.findFragmentByTag(VideoPosterFragment::class.java.simpleName) as? VideoPosterFragment ?: VideoPosterFragment.newInstance(videoPath, null) supportFragmentManager @@ -37,8 +35,8 @@ class PosterClipActivity : ToolBarActivity() { fragment.savePicture(clipPath) val intent = Intent() - intent.putExtra(EntranceUtils.KEY_PATH_VIDEO, videoPath) - intent.putExtra(EntranceUtils.KEY_POSTER_PATH, clipPath) + intent.putExtra(EntranceConsts.KEY_PATH_VIDEO, videoPath) + intent.putExtra(EntranceConsts.KEY_POSTER_PATH, clipPath) setResult(Activity.RESULT_OK, intent) finish() } @@ -62,7 +60,7 @@ class PosterClipActivity : ToolBarActivity() { companion object { fun getIntent(context: Context, videoPath: String): Intent { val intent = Intent(context, PosterClipActivity::class.java) - intent.putExtra(EntranceUtils.KEY_PATH_VIDEO, videoPath) + intent.putExtra(EntranceConsts.KEY_PATH_VIDEO, videoPath) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/PosterEditActivity.kt b/app/src/main/java/com/gh/gamecenter/video/poster/PosterEditActivity.kt index 2b77c53e9a..14ed0de0d8 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/PosterEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/PosterEditActivity.kt @@ -12,10 +12,14 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.gh.base.BaseActivity_TabLayout -import com.gh.base.fragment.BaseFragment_TabLayout -import com.gh.common.util.* +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.addOnPageChangeListener +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.databinding.ActivityPosterEditBinding import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.video.poster.photo.PhotoAlbumsAdapter @@ -58,7 +62,7 @@ class PosterEditActivity : BaseActivity_TabLayout(), AdapterView.OnItemSelectedL } override fun initFragmentList(fragments: MutableList) { - val videoPath = intent.getStringExtra(EntranceUtils.KEY_PATH_VIDEO) + val videoPath = intent.getStringExtra(EntranceConsts.KEY_PATH_VIDEO) val videoEntity = intent.getParcelableExtra(VideoEntity::class.java.simpleName) mPhotoPosterFragment = PhotoPosterFragment() mVideoPosterFragment = VideoPosterFragment.newInstance(videoPath, videoEntity) @@ -221,7 +225,7 @@ class PosterEditActivity : BaseActivity_TabLayout(), AdapterView.OnItemSelectedL fun getIntentByPath(context: Context, videoPath: String): Intent { val intent = Intent(context, PosterEditActivity::class.java) - intent.putExtra(EntranceUtils.KEY_PATH_VIDEO, videoPath) + intent.putExtra(EntranceConsts.KEY_PATH_VIDEO, videoPath) return intent } diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterAdapter.kt index 398aa62278..7bd05ed44d 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterAdapter.kt @@ -4,7 +4,7 @@ import android.database.Cursor import android.net.Uri import android.view.LayoutInflater import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder import com.gh.gamecenter.R import com.gh.gamecenter.databinding.PhotoPosterItemBinding import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterFragment.kt b/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterFragment.kt index 3bb3368448..e8ba96cf72 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/photo/PhotoPosterFragment.kt @@ -4,8 +4,8 @@ import android.database.Cursor import android.os.Bundle import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.GridLayoutManager -import com.gh.base.fragment.BaseFragment -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentPhotoPosterBinding import com.zhihu.matisse.internal.entity.Album diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterFragment.kt b/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterFragment.kt index 3964e48b08..1968b4fb7a 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterFragment.kt @@ -5,11 +5,11 @@ import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.GridLayoutManager -import com.gh.base.fragment.BaseFragment -import com.gh.common.util.EntranceUtils -import com.gh.common.util.ImageUtils -import com.gh.common.util.observeNonNull -import com.gh.common.util.throwExceptionInDebug +import com.gh.gamecenter.common.base.fragment.BaseFragment +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.throwExceptionInDebug import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentVideoPosterBinding import com.gh.gamecenter.entity.VideoEntity @@ -30,7 +30,7 @@ class VideoPosterFragment : BaseFragment() { super.onCreate(savedInstanceState) mBinding = FragmentVideoPosterBinding.bind(mCachedView) - val videoPath = arguments?.getString(EntranceUtils.KEY_PATH_VIDEO) + val videoPath = arguments?.getString(EntranceConsts.KEY_PATH_VIDEO) val videoEntity = arguments?.getParcelable(VideoEntity::class.java.simpleName) val factory = VideoPosterViewModel.Factory(HaloApp.getInstance().application, videoPath, videoEntity) @@ -66,7 +66,7 @@ class VideoPosterFragment : BaseFragment() { fun newInstance(videoPath: String?, videoEntity: VideoEntity?): VideoPosterFragment { val fragment = VideoPosterFragment() val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_PATH_VIDEO, videoPath) + bundle.putString(EntranceConsts.KEY_PATH_VIDEO, videoPath) bundle.putParcelable(VideoEntity::class.java.simpleName, videoEntity) fragment.arguments = bundle return fragment diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterReviewAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterReviewAdapter.kt index d12de277d0..965756a458 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterReviewAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterReviewAdapter.kt @@ -5,9 +5,9 @@ import android.net.Uri import android.view.View import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.util.ImageUtils -import com.gh.common.util.dip2px +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.dip2px import com.gh.gamecenter.R import com.gh.gamecenter.databinding.VideoPosterPreviewItemBinding import com.lightgame.adapter.BaseRecyclerAdapter diff --git a/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterViewModel.kt index 3f859e79df..aab2227d8f 100644 --- a/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/poster/video/VideoPosterViewModel.kt @@ -4,10 +4,10 @@ import android.app.Application import android.graphics.Bitmap import android.media.MediaMetadataRetriever import androidx.lifecycle.* -import com.gh.common.AppExecutor -import com.gh.common.util.ImageUtils -import com.gh.common.util.throwExceptionInDebug -import com.gh.common.util.tryCatchInRelease +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.throwExceptionInDebug +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.gamecenter.entity.VideoEntity import java.io.File import kotlin.math.roundToLong diff --git a/app/src/main/java/com/gh/gamecenter/video/upload/UploadManager.kt b/app/src/main/java/com/gh/gamecenter/video/upload/UploadManager.kt index ac5caf4d5d..cf551fdd29 100644 --- a/app/src/main/java/com/gh/gamecenter/video/upload/UploadManager.kt +++ b/app/src/main/java/com/gh/gamecenter/video/upload/UploadManager.kt @@ -2,11 +2,11 @@ package com.gh.gamecenter.video.upload import android.annotation.SuppressLint import com.alibaba.sdk.android.oss.common.OSSLog -import com.gh.common.util.MD5Utils -import com.gh.common.util.tryCatchInRelease +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.entity.OssEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.room.AppDatabase import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/video/upload/UploadThread.kt b/app/src/main/java/com/gh/gamecenter/video/upload/UploadThread.kt index 2156690033..10370904eb 100644 --- a/app/src/main/java/com/gh/gamecenter/video/upload/UploadThread.kt +++ b/app/src/main/java/com/gh/gamecenter/video/upload/UploadThread.kt @@ -10,7 +10,7 @@ import com.alibaba.sdk.android.oss.callback.OSSProgressCallback import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider import com.alibaba.sdk.android.oss.internal.OSSAsyncTask import com.alibaba.sdk.android.oss.model.* -import com.gh.common.util.NetworkUtils +import com.gh.gamecenter.common.utils.NetworkUtils import com.gh.gamecenter.entity.OssEntity import com.halo.assistant.HaloApp import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt index f79c791395..2a0aca3adc 100644 --- a/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt @@ -25,15 +25,23 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders -import com.gh.base.ToolBarActivity -import com.gh.base.fragment.WaitingDialogFragment -import com.gh.common.AppExecutor +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.core.AppExecutor import com.gh.common.util.* -import com.gh.common.view.DrawableView +import com.gh.common.util.DialogUtils +import com.gh.common.util.LogUtils +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.CropImageActivity import com.gh.gamecenter.NewsDetailActivity import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.* +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.ActivityVideoUplaodBinding import com.gh.gamecenter.entity.* import com.gh.gamecenter.mvvm.Status @@ -128,8 +136,8 @@ class UploadVideoActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mVideoLink = intent.getParcelableExtra(VideoLinkEntity::class.java.simpleName) - mEntranceLink = intent.getStringExtra(EntranceUtils.KEY_ENTRANCE_LINK) ?: "" - mPath = intent.getStringExtra(EntranceUtils.KEY_PATH) ?: "其他" + mEntranceLink = intent.getStringExtra(EntranceConsts.KEY_ENTRANCE_LINK) ?: "" + mPath = intent.getStringExtra(EntranceConsts.KEY_PATH) ?: "其他" // toolbar setToolbarMenu(R.menu.menu_text) @@ -172,8 +180,12 @@ class UploadVideoActivity : ToolBarActivity() { return@setOnClickListener } - startActivityForResult(VideoLabelActivity.getIntent(this, mActivityLabelEntity?.id - ?: ""), REQUEST_CODE_CHOOSE_LABEL) + startActivityForResult( + VideoLabelActivity.getIntent( + this, mActivityLabelEntity?.id + ?: "" + ), REQUEST_CODE_CHOOSE_LABEL + ) LogUtils.logVideoStreamingUpload("查看活动标签", mPath, mEntranceLink, "") } mBinding.deleteActivity.setOnClickListener { @@ -284,8 +296,10 @@ class UploadVideoActivity : ToolBarActivity() { mViewModel.activityTagLiveData.observe(this, Observer { mBinding.activityFlexbox.goneIf(!it) if (it && !mVideoLink?.tagActivityId.isNullOrEmpty() && !mVideoLink?.tagActivityName.isNullOrEmpty()) { - mActivityLabelEntity = ActivityLabelEntity(mVideoLink?.tagActivityId - ?: "", mVideoLink?.tagActivityName ?: "") + mActivityLabelEntity = ActivityLabelEntity( + mVideoLink?.tagActivityId + ?: "", mVideoLink?.tagActivityName ?: "" + ) mBinding.activityContainer.visibility = View.VISIBLE mBinding.activityTv.text = mActivityLabelEntity?.name } @@ -400,7 +414,7 @@ class UploadVideoActivity : ToolBarActivity() { mBinding.gameTitle.setSelection(mBinding.gameTitle.text.toString().length) } - initUpload(intent.getStringExtra(EntranceUtils.KEY_PATH_VIDEO)) + initUpload(intent.getStringExtra(EntranceConsts.KEY_PATH_VIDEO)) } } @@ -420,7 +434,7 @@ class UploadVideoActivity : ToolBarActivity() { val videoPath = if (mViewModel.videoDraft != null) { mViewModel.videoDraft?.localPath } else { - intent.getStringExtra(EntranceUtils.KEY_PATH_VIDEO) + intent.getStringExtra(EntranceConsts.KEY_PATH_VIDEO) } var intent: Intent? = null @@ -456,19 +470,22 @@ class UploadVideoActivity : ToolBarActivity() { handleFileNotFound() } else { DialogUtils.showUploadDraftDialog(this@UploadVideoActivity, - { + object :CancelListener{ + override fun onCancel() { if (!File(mVideoFileEntity?.path).exists()) { toast("上传失败,视频文件不存在") handleFileNotFound() } MtaHelper.onEvent("上传视频", "上传视频-存草稿", "继续上传") LogUtils.logVideoStreamingUpload("存草稿-取消", mPath, mEntranceLink, "") - }, - { + } + }, object : ConfirmListener { + override fun onConfirm() { verifyData(true) MtaHelper.onEvent("上传视频", "上传视频-存草稿", "确定保存") LogUtils.logVideoStreamingUpload("存草稿-确定", mPath, mEntranceLink, "") - }) + } + }) } } return super.onMenuItemClick(item) @@ -560,20 +577,21 @@ class UploadVideoActivity : ToolBarActivity() { mViewModel.videoPatch!! } else { VideoEntity( - id = mViewModel.videoDraft?.id ?: "", - title = title.toString(), - url = mVideoFileEntity?.url ?: "", - gameId = mViewModel.gameEntity?.id ?: "", - size = mVideoFileEntity?.size ?: 0, - length = mVideoFileEntity?.length ?: 0, - poster = mViewModel.videoDraft?.poster ?: "", - categoryId = gameCategory, - format = mVideoFileEntity?.format ?: "", - tagsId = GsonUtils.fromJsonList(gameTags), - original = if (mBinding.originalTv.isChecked) "yes" else if (mBinding.reprintTv.isChecked) "no" else "", - source = if (mBinding.reprintTv.isChecked) mBinding.videoSourceEt.text.toString() else "", - tagActivityId = if (mBinding.originalTv.isChecked && mActivityLabelEntity != null) mActivityLabelEntity?.id - ?: "" else "") + id = mViewModel.videoDraft?.id ?: "", + title = title.toString(), + url = mVideoFileEntity?.url ?: "", + gameId = mViewModel.gameEntity?.id ?: "", + size = mVideoFileEntity?.size ?: 0, + length = mVideoFileEntity?.length ?: 0, + poster = mViewModel.videoDraft?.poster ?: "", + categoryId = gameCategory, + format = mVideoFileEntity?.format ?: "", + tagsId = GsonUtils.fromJsonList(gameTags), + original = if (mBinding.originalTv.isChecked) "yes" else if (mBinding.reprintTv.isChecked) "no" else "", + source = if (mBinding.reprintTv.isChecked) mBinding.videoSourceEt.text.toString() else "", + tagActivityId = if (mBinding.originalTv.isChecked && mActivityLabelEntity != null) mActivityLabelEntity?.id + ?: "" else "" + ) } if (mUpdatedPosterPath.isEmpty() && videoData.poster.isNotEmpty()) { @@ -584,8 +602,10 @@ class UploadVideoActivity : ToolBarActivity() { } else { val localVideoPoster = application.cacheDir.absolutePath + File.separator + System.currentTimeMillis() + ".jpg" try { - val bmp = ThumbnailUtils.createVideoThumbnail(mVideoFileEntity?.path - ?: "", MediaStore.Images.Thumbnails.MINI_KIND) + val bmp = ThumbnailUtils.createVideoThumbnail( + mVideoFileEntity?.path + ?: "", MediaStore.Images.Thumbnails.MINI_KIND + ) // bmp 可能为空 FileOutputStream(localVideoPoster).use { out -> bmp?.compress(Bitmap.CompressFormat.PNG, 100, out) @@ -597,13 +617,21 @@ class UploadVideoActivity : ToolBarActivity() { } localVideoPoster } - mViewModel.postVideoPosterAndContent(isDraft, videoData, mVideoFileEntity?.path, posterPath, mBinding.originalTv.isChecked && mBinding.watermarkSb.isChecked) + mViewModel.postVideoPosterAndContent( + isDraft, + videoData, + mVideoFileEntity?.path, + posterPath, + mBinding.originalTv.isChecked && mBinding.watermarkSb.isChecked + ) } } - private fun createFlexContent(flexView: FlexboxLayout, - contentList: List, - clickListener: (View, VideoTagEntity) -> Unit) { + private fun createFlexContent( + flexView: FlexboxLayout, + contentList: List, + clickListener: (View, VideoTagEntity) -> Unit + ) { flexView.removeAllViews() for (index in 0 until contentList.count()) { @@ -653,7 +681,13 @@ class UploadVideoActivity : ToolBarActivity() { } override fun onClick(widget: View) { - startActivity(WebActivity.getWebIntent(this@UploadVideoActivity, this@UploadVideoActivity.getString(R.string.upload_protocol_title), this@UploadVideoActivity.getString(R.string.upload_protocol_url))) + startActivity( + WebActivity.getWebIntent( + this@UploadVideoActivity, + this@UploadVideoActivity.getString(R.string.upload_protocol_title), + this@UploadVideoActivity.getString(R.string.upload_protocol_url) + ) + ) } }, uploadProtocolText.length - 10, uploadProtocolText.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) mBinding.updateProtocol.text = uploadProtocolText @@ -677,7 +711,7 @@ class UploadVideoActivity : ToolBarActivity() { if (!mViewModel.videoDraft?.poster.isNullOrEmpty()) { ImageUtils.display(mBinding.videoPoster, mViewModel.videoDraft?.poster) } else { - val poster = intent.getStringExtra(EntranceUtils.KEY_POSTER_PATH) + val poster = intent.getStringExtra(EntranceConsts.KEY_POSTER_PATH) if (poster.isNullOrEmpty()) { val thumbnail = ThumbnailUtils.createVideoThumbnail(videoPath, MediaStore.Images.Thumbnails.MINI_KIND) mBinding.videoPoster.setImageBitmap(thumbnail) @@ -798,32 +832,32 @@ class UploadVideoActivity : ToolBarActivity() { if (mVideoFileEntity?.path.isNullOrEmpty() || !File(mVideoFileEntity?.path).exists()) { val id = mViewModel.videoDraft?.id ?: return false DialogHelper.showDialog(this, - "提示", "视频文件不存在,无法完成上传", - "退出并删除草稿", "", { - // delete draft - mViewModel.deleteDraft(id) - }) + "提示", "视频文件不存在,无法完成上传", + "退出并删除草稿", "", { + // delete draft + mViewModel.deleteDraft(id) + }) return true } if (mVideoFileEntity?.url.isNullOrEmpty()) { DialogHelper.showDialog(this, "提示", - "视频正在上传中,确定要退出吗?", "确定退出", - "暂时不了", { - finish() - LogUtils.logVideoStreamingUpload("返回-确定返回", mPath, mEntranceLink, "") - }, { - LogUtils.logVideoStreamingUpload("返回-暂时不了", mPath, mEntranceLink, "") - }) + "视频正在上传中,确定要退出吗?", "确定退出", + "暂时不了", { + finish() + LogUtils.logVideoStreamingUpload("返回-确定返回", mPath, mEntranceLink, "") + }, { + LogUtils.logVideoStreamingUpload("返回-暂时不了", mPath, mEntranceLink, "") + }) } else { DialogHelper.showDialog(this, "提示", - "视频已上传完毕,确定退出并放弃提交吗?", "确定退出", - "继续提交", { - LogUtils.logVideoStreamingUpload("返回-确定返回", mPath, mEntranceLink, "") - finish() - }, { - LogUtils.logVideoStreamingUpload("返回-继续提交", mPath, mEntranceLink, "") - }) + "视频已上传完毕,确定退出并放弃提交吗?", "确定退出", + "继续提交", { + LogUtils.logVideoStreamingUpload("返回-确定返回", mPath, mEntranceLink, "") + finish() + }, { + LogUtils.logVideoStreamingUpload("返回-继续提交", mPath, mEntranceLink, "") + }) } return true @@ -903,10 +937,10 @@ class UploadVideoActivity : ToolBarActivity() { */ fun getIntent(context: Context, videoPath: String, entrance: String, path: String, poster: String? = null): Intent { val intent = Intent(context, UploadVideoActivity::class.java) - intent.putExtra(EntranceUtils.KEY_PATH, path) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_PATH_VIDEO, videoPath) - intent.putExtra(EntranceUtils.KEY_POSTER_PATH, poster) + intent.putExtra(EntranceConsts.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_PATH_VIDEO, videoPath) + intent.putExtra(EntranceConsts.KEY_POSTER_PATH, poster) return intent } @@ -915,20 +949,22 @@ class UploadVideoActivity : ToolBarActivity() { * * @param link 只用于数据统计 */ - fun getIntent(context: Context, - videoPath: String, - linkEntity: VideoLinkEntity, - simpleGameEntity: SimpleGameEntity? = null, - entrance: String, - path: String, - poster: String? = null): Intent { + fun getIntent( + context: Context, + videoPath: String, + linkEntity: VideoLinkEntity, + simpleGameEntity: SimpleGameEntity? = null, + entrance: String, + path: String, + poster: String? = null + ): Intent { val intent = Intent(context, UploadVideoActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_PATH, path) intent.putExtra(VideoLinkEntity::class.java.simpleName, linkEntity) intent.putExtra(SimpleGameEntity::class.java.simpleName, simpleGameEntity) - intent.putExtra(EntranceUtils.KEY_PATH_VIDEO, videoPath) - intent.putExtra(EntranceUtils.KEY_POSTER_PATH, poster) + intent.putExtra(EntranceConsts.KEY_PATH_VIDEO, videoPath) + intent.putExtra(EntranceConsts.KEY_POSTER_PATH, poster) return intent } @@ -937,8 +973,8 @@ class UploadVideoActivity : ToolBarActivity() { */ fun getIntent(context: Context, videoDraft: VideoDraftEntity, entrance: String, path: String): Intent { val intent = Intent(context, UploadVideoActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_PATH, path) intent.putExtra(VideoDraftEntity::class.java.simpleName, videoDraft) return intent } @@ -948,8 +984,8 @@ class UploadVideoActivity : ToolBarActivity() { */ fun getIntent(context: Context, video: VideoEntity, entrance: String, path: String): Intent { val intent = Intent(context, UploadVideoActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) - intent.putExtra(EntranceUtils.KEY_PATH, path) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_PATH, path) intent.putExtra(VideoEntity::class.java.simpleName, video) return intent } diff --git a/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoViewModel.kt index 0a67b1814b..3bd6d84176 100644 --- a/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoViewModel.kt @@ -7,13 +7,17 @@ import android.net.Uri import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.entity.* import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mvvm.Resource -import com.gh.gamecenter.retrofit.BiResponse -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.google.gson.JsonObject import com.lightgame.utils.Utils diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftActivity.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftActivity.kt index 91d2406bf3..a86461233d 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftActivity.kt @@ -3,15 +3,24 @@ package com.gh.gamecenter.video.videomanager import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.gamecenter.NormalActivity +import com.gh.gamecenter.common.base.ToolBarActivity +import com.gh.gamecenter.R +import com.gh.gamecenter.common.utils.updateStatusBarColor -class VideoDraftActivity : NormalActivity() { +class VideoDraftActivity : ToolBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setNavigationTitle("视频草稿") + updateStatusBarColor(R.color.black, R.color.white) } + override fun isAutoResetViewBackgroundEnabled(): Boolean =true + + override fun onNightModeChange() { + super.onNightModeChange() + updateStatusBarColor(R.color.black, R.color.white) + } companion object { fun getIntent(context: Context): Intent { return getTargetIntent(context, VideoDraftActivity::class.java, VideoDraftFragment::class.java) diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt index 416535cfc0..99a5f6130e 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftAdapter.kt @@ -8,13 +8,18 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* -import com.gh.common.view.BugFixedPopupWindow +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.common.utils.PermissionHelper +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.showAutoOrientation import com.gh.gamecenter.databinding.CommunityVideoDraftItemBinding import com.gh.gamecenter.entity.VideoDraftEntity diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt index 4b47adce31..ec69e58ecb 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftFragment.kt @@ -4,14 +4,10 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import android.view.View -import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat -import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px -import com.gh.common.view.CustomDividerItemDecoration -import com.gh.common.view.FixLinearLayoutManager -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.view.CustomDividerItemDecoration +import com.gh.gamecenter.common.view.FixLinearLayoutManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.entity.VideoDraftEntity @@ -58,4 +54,12 @@ class VideoDraftFragment : ListFragment() super.onViewCreated(view, savedInstanceState) mListRv.layoutManager = FixLinearLayoutManager(requireContext()) } + + override fun onNightModeChange() { + super.onNightModeChange() + if ((mListRv?.itemDecorationCount ?: 0) > 0) { + mListRv?.removeItemDecorationAt(0) + mListRv?.addItemDecoration(itemDecoration) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftViewModel.kt index 5a9807a048..36638bcb81 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoDraftViewModel.kt @@ -6,7 +6,7 @@ import com.gh.common.util.ErrorHelper import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.VideoDraftEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoManagerActivity.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoManagerActivity.kt index f79e8e0f01..98796f6cef 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoManagerActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoManagerActivity.kt @@ -7,10 +7,14 @@ import android.view.MenuItem import android.view.View import android.widget.TextView import androidx.fragment.app.Fragment -import com.gh.base.BaseActivity +import com.gh.gamecenter.common.base.BaseActivity import com.gh.base.BaseActivity_TabLayout import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.common.utils.PermissionHelper +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.entity.SimpleGameEntity import com.gh.gamecenter.entity.VideoLinkEntity import com.gh.gamecenter.video.upload.view.UploadVideoActivity @@ -108,18 +112,18 @@ class VideoManagerActivity : BaseActivity_TabLayout() { @JvmStatic fun getIntent(context: Context, entrance: String?, path: String?): Intent { val intent = Intent(context, VideoManagerActivity::class.java) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) return intent } @JvmStatic fun getVideoManagerBundle(linkEntity: VideoLinkEntity, simpleGameEntity: SimpleGameEntity, entrance: String? = null, path: String? = ""): Bundle { val bundle = Bundle() - bundle.putString(EntranceUtils.KEY_PATH, path) + bundle.putString(EntranceConsts.KEY_PATH, path) bundle.putParcelable(VideoLinkEntity::class.java.simpleName, linkEntity) bundle.putParcelable(SimpleGameEntity::class.java.simpleName, simpleGameEntity) - bundle.putString(EntranceUtils.KEY_TO, VideoManagerActivity::class.java.name) - bundle.putString(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(EntranceConsts.KEY_TO, VideoManagerActivity::class.java.name) + bundle.putString(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) return bundle } @@ -135,7 +139,7 @@ class VideoManagerActivity : BaseActivity_TabLayout() { path: String?): Intent { val intent = Intent(context, VideoManagerActivity::class.java) intent.putExtra(VideoLinkEntity::class.java.simpleName, linkEntity) - intent.putExtra(EntranceUtils.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + intent.putExtra(EntranceConsts.KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyAdapter.kt index 7324678126..c86fa55d56 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyAdapter.kt @@ -8,12 +8,15 @@ import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView import androidx.recyclerview.widget.RecyclerView -import com.gh.common.constant.ItemViewType +import com.gh.gamecenter.common.constant.ItemViewType import com.gh.common.util.* -import com.gh.common.view.BugFixedPopupWindow +import com.gh.common.util.LogUtils +import com.gh.gamecenter.common.view.BugFixedPopupWindow import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter +import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.VideoVerifyItemBinding import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.video.VideoVerifyItemViewHolder diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyFragment.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyFragment.kt index 2ff637a5c1..6c8ecd8363 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyFragment.kt @@ -4,9 +4,9 @@ import android.content.Intent import android.os.Bundle import android.view.View import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px -import com.gh.common.view.FixLinearLayoutManager -import com.gh.common.view.GridSpacingItemDecoration +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.view.FixLinearLayoutManager +import com.gh.gamecenter.common.view.GridSpacingItemDecoration import com.gh.gamecenter.baselist.ListFragment import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.video.upload.view.UploadVideoActivity diff --git a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyViewModel.kt b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyViewModel.kt index 799cdee1ac..eaf712209f 100644 --- a/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/video/videomanager/VideoVerifyViewModel.kt @@ -6,7 +6,7 @@ import com.gh.common.util.ErrorHelper import com.gh.gamecenter.baselist.ListViewModel import com.gh.gamecenter.entity.VideoEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.Response +import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.lightgame.utils.Utils import io.reactivex.Observable diff --git a/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java b/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java index 337983c843..3812e36d51 100644 --- a/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java +++ b/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java @@ -9,12 +9,10 @@ import android.widget.TextView; import com.gh.common.DefaultUrlHandler; import com.gh.common.constant.Config; import com.gh.common.util.EnergyTaskHelper; -import com.gh.common.util.LogUtils; import com.gh.common.util.LoginHelper; -import com.gh.common.util.NewLogUtils; -import com.gh.common.util.ShareUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.eventbus.EBShare; +import com.gh.gamecenter.common.eventbus.EBShare; +import com.gh.gamecenter.common.utils.ShareUtils; import com.lightgame.utils.Utils; import com.tencent.mm.opensdk.modelbase.BaseReq; import com.tencent.mm.opensdk.modelbase.BaseResp; @@ -74,13 +72,13 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC resultString = "分享成功"; Utils.toast(this, resultString); EventBus.getDefault().post(new EBShare(ShareUtils.shareEntrance)); - LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "success", + com.gh.gamecenter.common.utils.LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "success", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); EnergyTaskHelper.postEnergyTaskForShare(ShareUtils.shareEntrance.getName(), ShareUtils.resourceId, ShareUtils.shareEntity.getShareUrl()); if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.communityArticle || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.video) { - NewLogUtils.logShareResult(ShareUtils.additionalParams, true); + com.gh.gamecenter.common.utils.NewLogUtils.logShareResult(ShareUtils.additionalParams, true); } else if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.gameCollection) { String shareType; if ("wechat_friend".equals(ShareUtils.shareType)) { @@ -88,7 +86,7 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC } else { shareType = "朋友圈"; } - NewLogUtils.logViewOrClickGameCollectionDetail( + com.gh.gamecenter.common.utils.NewLogUtils.logViewOrClickGameCollectionDetail( "click_game_collect_detail_favorite_success", ShareUtils.shareEntity.getShareTitle(), ShareUtils.resourceId, @@ -110,12 +108,12 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC case BaseResp.ErrCode.ERR_USER_CANCEL: if (RETURN_MSG_TYPE_SHARE == baseResp.getType()) { resultString = getString(R.string.share_cancel_hint); - LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "cancel", + com.gh.gamecenter.common.utils.LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "cancel", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.communityArticle || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.video) { - NewLogUtils.logShareResult(ShareUtils.additionalParams, false); + com.gh.gamecenter.common.utils.NewLogUtils.logShareResult(ShareUtils.additionalParams, false); } } else { resultString = "登录已取消"; @@ -133,12 +131,12 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC default: if (RETURN_MSG_TYPE_SHARE == baseResp.getType()) { resultString = "分享错误"; - LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "fail", + com.gh.gamecenter.common.utils.LogUtils.uploadShareResult(ShareUtils.shareType, ShareUtils.shareEntrance.getName(), "fail", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.communityArticle || ShareUtils.shareEntrance == ShareUtils.ShareEntrance.video) { - NewLogUtils.logShareResult(ShareUtils.additionalParams, false); + com.gh.gamecenter.common.utils.NewLogUtils.logShareResult(ShareUtils.additionalParams, false); } } else { resultString = "登录错误"; diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index fbd8efe327..70be32861c 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -11,45 +11,50 @@ import android.os.StrictMode; import android.preference.PreferenceManager; import android.text.TextUtils; +import androidx.annotation.NonNull; import androidx.collection.ArrayMap; import androidx.lifecycle.ProcessLifecycleOwner; import androidx.multidex.MultiDexApplication; import androidx.work.Configuration; +import com.alibaba.android.arouter.launcher.ARouter; import com.facebook.animated.giflite.GifDecoder; import com.facebook.imageformat.DefaultImageFormats; import com.facebook.imagepipeline.core.ImagePipelineConfig; import com.facebook.imagepipeline.core.ImageTranscoderType; import com.facebook.imagepipeline.core.MemoryChunkType; import com.facebook.imagepipeline.decoder.ImageDecoderConfig; +import com.gh.base.AppUncaughtHandler; import com.gh.base.GlobalActivityLifecycleObserver; -import com.gh.common.AppExecutor; import com.gh.common.FixedRateJobHelper; -import com.gh.common.constant.Config; -import com.gh.common.constant.Constants; import com.gh.common.exposure.ExposureManager; import com.gh.common.filter.RegionSettingHelper; -import com.gh.common.image.EmptyDecoder; -import com.gh.common.loghub.LoghubUtils; -import com.gh.common.tracker.Tracker; import com.gh.common.util.DataUtils; -import com.gh.common.util.DeviceUtils; import com.gh.common.util.DownloadNotificationHelper; import com.gh.common.util.DownloadObserver; -import com.gh.common.util.EmulatorUtil; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.HomeBottomBarHelper; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.NightModeUtils; -import com.gh.common.util.PackageFlavorHelper; import com.gh.common.util.PackageHelper; import com.gh.common.util.PackageUtils; -import com.gh.common.util.SPUtils; -import com.gh.common.util.TimestampUtils; import com.gh.common.videolog.VideoRecordUtils; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.Injection; +import com.gh.gamecenter.common.constant.Config; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.image.EmptyDecoder; +import com.gh.gamecenter.common.loghub.LoghubUtils; +import com.gh.gamecenter.common.tracker.Tracker; +import com.gh.gamecenter.common.utils.DeviceUtils; +import com.gh.gamecenter.common.utils.EmulatorUtil; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NightModeUtils; +import com.gh.gamecenter.common.utils.PackageFlavorHelper; +import com.gh.gamecenter.common.utils.TimestampUtils; +import com.gh.gamecenter.core.AppExecutor; +import com.gh.gamecenter.core.iinterface.IApplication; +import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.entity.SubjectRecommendEntity; +import com.gh.gamecenter.fragment.MainWrapperRepository; import com.gh.gamecenter.packagehelper.PackageRepository; import com.gh.gamecenter.receiver.ActivitySkipReceiver; import com.gh.gamecenter.receiver.DownloadReceiver; @@ -66,6 +71,7 @@ import com.shuyu.gsyvideoplayer.cache.CacheFactory; import com.shuyu.gsyvideoplayer.player.PlayerFactory; import java.lang.reflect.Method; +import java.util.ServiceLoader; import java.util.concurrent.ExecutorService; import io.reactivex.plugins.RxJavaPlugins; @@ -95,6 +101,8 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid public int mCacheKeyboardHeight = 0; + private final ServiceLoader mApplicationList = ServiceLoader.load(IApplication.class, this.getClass().getClassLoader()); + public static void put(String key, Object object) { sObjectMap.put(key, object); } @@ -166,13 +174,19 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid @Override public void onCreate() { super.onCreate(); + initArouter(); if (!Injection.appInit(this)) { return; } + initAppUncaughtHandler(); mInstance = this; + for (IApplication application : mApplicationList) { + application.onCreate(mInstance); + } + // 70ms PlayerFactory.setPlayManager(Exo2PlayerManager.class); CacheFactory.setCacheManager(ExoPlayerCacheManager.class); @@ -228,6 +242,13 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid NightModeUtils.INSTANCE.initNightMode(); } + private void initAppUncaughtHandler(){ + if (!BuildConfig.DEBUG) { + AppUncaughtHandler appUncaughtHandler = new AppUncaughtHandler(this); + Thread.setDefaultUncaughtExceptionHandler(appUncaughtHandler); + } + } + /** * 需要延迟初始化的东西,以下代码调用都放置到用户同意了隐私政策之后 */ @@ -255,7 +276,9 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid // 刷新内存中的用户信息,避免应用进程重建时因没有用户信息数据而显示为掉登录状态 // 必须放在外面,否则不能及时刷新用户数据 UserRepository.getInstance().getLoginUserInfo(); - + + MainWrapperRepository.Companion.getInstance().getHomeNavBar(); + AppExecutor.getUiExecutor().executeWithDelay(() -> { initThirdPartySdk(); @@ -287,6 +310,14 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid }, delay); } + private void initArouter() { + if (BuildConfig.DEBUG) { // 这两行必须写在init之前,否则这些配置在init过程中将无效 + ARouter.openLog(); // 打印日志 + ARouter.openDebug(); // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险) + } + ARouter.init(this); // 尽可能早,推荐在Application中初始化 + } + private void initThirdPartySdk() { DataUtils.init(this, mChannel); } @@ -373,21 +404,21 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid || Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP_MR1) { pipelineConfigBuilder.setMemoryChunkType(MemoryChunkType.BUFFER_MEMORY) .setImageTranscoderType(ImageTranscoderType.JAVA_TRANSCODER); - + decodeConfigBuilder.overrideDecoder(DefaultImageFormats.GIF, new GifDecoder()).build(); String manufacture = Build.MANUFACTURER.toLowerCase(); - + // OPPO 和 VIVO 的 5.1.1 设备还会去加载 WEBP_ANIMATED 的 SO, // 实测没有发现有地方使用 WEBP_ANIMATED 的图片,这里用空占位图来替换 WEBP 动图 if ("oppo".equals(manufacture) || "vivo".equals(manufacture)) { decodeConfigBuilder.overrideDecoder(DefaultImageFormats.WEBP_ANIMATED, new EmptyDecoder()).build(); } - + pipelineConfigBuilder - .setImageDecoderConfig(decodeConfigBuilder.build()) - .experiment() - .setNativeCodeDisabled(true); + .setImageDecoderConfig(decodeConfigBuilder.build()) + .experiment() + .setNativeCodeDisabled(true); // 图片仅加载静态图片 ImageUtils.disableAnimatedImage(); @@ -450,4 +481,44 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid public Configuration getWorkManagerConfiguration() { return new Configuration.Builder().build(); } + + @Override + protected void attachBaseContext(Context base) { + super.attachBaseContext(base); + for (IApplication application : mApplicationList) { + application.attachBaseContext(); + } + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + for (IApplication application : mApplicationList) { + application.onLowMemory(); + } + } + + @Override + public void onConfigurationChanged(@NonNull android.content.res.Configuration newConfig) { + super.onConfigurationChanged(newConfig); + for (IApplication application : mApplicationList) { + application.onConfigurationChanged(newConfig); + } + } + + @Override + public void onTerminate() { + super.onTerminate(); + for (IApplication application : mApplicationList) { + application.onTerminate(); + } + } + + @Override + public void onTrimMemory(int level) { + super.onTrimMemory(level); + for (IApplication application : mApplicationList) { + application.onTrimMemory(level); + } + } } diff --git a/app/src/main/java/com/halo/assistant/fragment/AboutFragment.kt b/app/src/main/java/com/halo/assistant/fragment/AboutFragment.kt index 78b7f9015c..ca1341c523 100644 --- a/app/src/main/java/com/halo/assistant/fragment/AboutFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/AboutFragment.kt @@ -10,17 +10,21 @@ import android.preference.PreferenceManager import android.view.View import androidx.core.content.ContextCompat import com.gh.common.util.* -import com.gh.common.util.MtaHelper.onEvent -import com.gh.common.util.TimeUtils.getFormatTime +import com.gh.gamecenter.core.utils.MtaHelper.onEvent +import com.gh.gamecenter.core.utils.TimeUtils.getFormatTime import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.StringUtils +import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.databinding.FragmentAboutBinding import com.gh.gamecenter.manager.UpdateManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.utils.* import com.halo.assistant.HaloApp import java.util.* -class AboutFragment : NormalFragment() { +class AboutFragment : ToolbarFragment() { private lateinit var mBinding: FragmentAboutBinding @@ -58,7 +62,7 @@ class AboutFragment : NormalFragment() { val year = getFormatTime(serverTime, "yyyy") mBinding.copyrightTv.text = getString(R.string.copyright_hint, year) - if (arguments != null && requireArguments().getBoolean(EntranceUtils.KEY_VERSION_UPDATE)) { + if (arguments != null && requireArguments().getBoolean(EntranceConsts.KEY_VERSION_UPDATE)) { UpdateManager.getInstance(context).checkUpdate(false, mBaseHandler) // 检查更新 } diff --git a/app/src/main/java/com/halo/assistant/fragment/ApkCleanerFragment.java b/app/src/main/java/com/halo/assistant/fragment/ApkCleanerFragment.java index 45565eff10..2a84552216 100644 --- a/app/src/main/java/com/halo/assistant/fragment/ApkCleanerFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/ApkCleanerFragment.java @@ -17,18 +17,18 @@ import androidx.lifecycle.Lifecycle; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.ToastUtils; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.ToastUtils; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.download.DownloadManager; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.CleanApkAdapter; import com.gh.gamecenter.entity.InstallGameEntity; import com.gh.gamecenter.fragment.MainWrapperFragment; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import com.lightgame.utils.Utils; import java.io.File; @@ -40,7 +40,7 @@ import java.util.List; *

* 扫描并删除apk */ -public class ApkCleanerFragment extends NormalFragment implements CleanApkAdapter.OnScanListener { +public class ApkCleanerFragment extends ToolbarFragment implements CleanApkAdapter.OnScanListener { private TextView mApkCount; private TextView mApkDeleteBtn; @@ -78,7 +78,7 @@ public class ApkCleanerFragment extends NormalFragment implements CleanApkAdapte mApkDeleteBtn.setOnClickListener(this); mNodataSkipBtn.setOnClickListener(this); - isChooseApk = requireArguments().getBoolean(EntranceUtils.KEY_IS_CHOOSE_APK, false); + isChooseApk = requireArguments().getBoolean(EntranceConsts.KEY_IS_CHOOSE_APK, false); setNavigationTitle(isChooseApk ? getString(R.string.title_choose_apk) : getString(R.string.title_clean_apk)); mNodataSkipLl.setVisibility(View.GONE); @@ -153,8 +153,8 @@ public class ApkCleanerFragment extends NormalFragment implements CleanApkAdapte ToastUtils.showToast("请选择需要上传的安装包"); } else { Intent intent = new Intent(); - intent.putExtra(EntranceUtils.KEY_PACKAGENAME, installGameEntity.getPackageName()); - intent.putExtra(EntranceUtils.KEY_PATH, installGameEntity.getGamePath()); + intent.putExtra(EntranceConsts.KEY_PACKAGENAME, installGameEntity.getPackageName()); + intent.putExtra(EntranceConsts.KEY_PATH, installGameEntity.getGamePath()); requireActivity().setResult(Activity.RESULT_OK, intent); requireActivity().finish(); } diff --git a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt index 5e288849e2..9349451a05 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt @@ -11,13 +11,18 @@ import android.view.View import androidx.lifecycle.ViewModelProvider import com.airbnb.lottie.LottieAnimationView import com.gh.common.constant.Config -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.history.HistoryHelper -import com.gh.common.runOnIoThread -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnIoThread +import com.gh.gamecenter.core.runOnUiThread import com.gh.common.util.* +import com.gh.common.util.DialogUtils +import com.gh.common.util.NewLogUtils import com.gh.download.server.BrowserInstallHelper import com.gh.gamecenter.* +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentSettingBinding import com.gh.gamecenter.entity.UserInfoEntity import com.gh.gamecenter.entity.WechatConfigEntity @@ -25,11 +30,13 @@ import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.fragment.MainWrapperFragment import com.gh.gamecenter.game.upload.GameSubmissionActivity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.callback.CancelListener +import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.security.SecurityActivity import com.gh.gamecenter.setting.GameDownloadSettingActivity import com.gh.gamecenter.setting.VideoSettingActivity -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.user.UserRepository import com.gh.gamecenter.user.UserViewModel import com.lightgame.download.FileUtils @@ -43,7 +50,7 @@ import io.reactivex.schedulers.Schedulers import org.greenrobot.eventbus.EventBus import java.io.File -class SettingsFragment : NormalFragment() { +class SettingsFragment : ToolbarFragment() { private lateinit var mBinding: FragmentSettingBinding private var checkSizeIndex = 0 @@ -60,7 +67,7 @@ class SettingsFragment : NormalFragment() { super.onCreate(savedInstanceState) initView() if (arguments != null) { - mIsUpdate = requireArguments().getBoolean(EntranceUtils.KEY_VERSION_UPDATE, false) + mIsUpdate = requireArguments().getBoolean(EntranceConsts.KEY_VERSION_UPDATE, false) if (mIsUpdate) { mBinding.aboutItem.contentTv.text = getString(R.string.personal_update_hint) mBinding.aboutItem.contentTv.setTextColor(Color.WHITE) @@ -229,9 +236,14 @@ class SettingsFragment : NormalFragment() { ) } else { DialogUtils.showUsageStatsDialog( - requireContext(), { - UsageStatsHelper.skipToUsageStats(requireContext(), UsageStatsHelper.USAGE_STATUS_REQUEST_CODE) - }) {} + requireContext(), object : ConfirmListener { + override fun onConfirm() { + UsageStatsHelper.skipToUsageStats(requireContext(), UsageStatsHelper.USAGE_STATUS_REQUEST_CODE) + } + },object :CancelListener{ + override fun onCancel() { + } + }) } } } @@ -392,12 +404,14 @@ class SettingsFragment : NormalFragment() { mBinding.settingLogout.setOnClickListener { DialogUtils.showForceDialog( context, "退出登录", "退出账号即会回到游客状态,很多功能将无法使用(例如评论、客服消息),确定退出吗?", - "确定退出", "取消", { - loadingDialog = DialogUtils.showWaitDialog(context, "退出登录中...") - LoginUtils.logout { - UserRepository.getInstance().logout() - if (loadingDialog != null) loadingDialog!!.dismiss() - if (activity != null) requireActivity().finish() + "确定退出", "取消", object : ConfirmListener { + override fun onConfirm() { + loadingDialog = DialogUtils.showWaitDialog(context, "退出登录中...") + LoginUtils.logout { + UserRepository.getInstance().logout() + if (loadingDialog != null) loadingDialog!!.dismiss() + if (activity != null) requireActivity().finish() + } } }, null ) diff --git a/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt b/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt index ea3d8ed4fd..4be91395d1 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/SwitchInstallMethodFragment.kt @@ -5,21 +5,21 @@ import android.os.Build import android.os.Bundle import android.provider.Settings import android.view.View -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.SpanBuilder -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.core.utils.SpanBuilder +import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.download.server.BrowserInstallHelper import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.gh.gamecenter.databinding.FragmentSwitchInstallMethodBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import java.util.* /** * 切换安装方式 */ -class SwitchInstallMethodFragment : NormalFragment() { +class SwitchInstallMethodFragment : ToolbarFragment() { private var mBinding: FragmentSwitchInstallMethodBinding? = null diff --git a/app/src/main/java/com/halo/assistant/fragment/VoteFragment.java b/app/src/main/java/com/halo/assistant/fragment/VoteFragment.java index 4888911bff..b0f455f1df 100644 --- a/app/src/main/java/com/halo/assistant/fragment/VoteFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/VoteFragment.java @@ -9,7 +9,6 @@ import android.view.inputmethod.EditorInfo; import android.widget.EditText; import android.widget.TextView; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -18,9 +17,9 @@ import com.gh.common.util.AdHelper; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DialogUtils; import com.gh.common.util.DirectUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.MtaHelper; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.VoteAdapter; import com.gh.gamecenter.baselist.ListAdapter; @@ -30,7 +29,7 @@ import com.gh.gamecenter.baselist.NormalListViewModel; import com.gh.gamecenter.entity.MeEntity; import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.entity.VersionVoteEntity; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.utils.Util_System_Keyboard; @@ -80,8 +79,8 @@ public class VoteFragment extends ListFragment= Build.VERSION_CODES.LOLLIPOP) { settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW } @@ -519,7 +523,7 @@ class WebFragment : LazyFragment(), IScrollable { fun reload() { if (arguments != null) { mClearHistoryOnLoaded = true - requireArguments().getString(EntranceUtils.KEY_URL)?.let { + requireArguments().getString(EntranceConsts.KEY_URL)?.let { mBinding?.newsWebview?.loadUrl( it ) @@ -745,6 +749,11 @@ class WebFragment : LazyFragment(), IScrollable { } } + override fun onNightModeChange() { + super.onNightModeChange() + mBinding?.newsWebview?.enableForceDark(NightModeUtils.isNightMode(requireContext())) + } + companion object { const val KEY_ISTOOLS = "isTools" const val KEY_IS_BIND_WECHAT = "is_bind_wechat" diff --git a/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java b/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java index 2d83d62e14..58134c4189 100644 --- a/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java @@ -20,13 +20,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.common.util.ErrorHelper; -import com.gh.common.util.KeyboardHeightObserver; -import com.gh.common.util.KeyboardHeightProvider; +import com.gh.gamecenter.core.utils.KeyboardHeightObserver; +import com.gh.gamecenter.core.utils.KeyboardHeightProvider; import com.gh.common.util.PostCommentUtils; -import com.gh.common.util.TextHelper; +import com.gh.gamecenter.common.utils.TextHelper; import com.gh.gamecenter.CommentDetailActivity; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; @@ -34,7 +34,7 @@ import com.gh.gamecenter.adapter.CommentDetailAdapter; import com.gh.gamecenter.adapter.OnCommentCallBackListener; import com.gh.gamecenter.entity.CommentEntity; import com.gh.gamecenter.entity.MessageEntity; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import com.lightgame.utils.Util_System_Keyboard; import org.json.JSONException; @@ -47,7 +47,7 @@ import retrofit2.HttpException; *

* 评论详情页面-查看对话详情 */ -public class CommentDetailFragment extends NormalFragment implements OnCommentCallBackListener, KeyboardHeightObserver { +public class CommentDetailFragment extends ToolbarFragment implements OnCommentCallBackListener, KeyboardHeightObserver { private EditText mCommentDetailCommentEt; private TextView mCommentSend; @@ -106,7 +106,7 @@ public class CommentDetailFragment extends NormalFragment implements OnCommentCa return true; }); - String commentId = getArguments().getString(EntranceUtils.KEY_COMMENTID); + String commentId = getArguments().getString(EntranceConsts.KEY_COMMENTID); mArticle = getArguments().getParcelable(MessageEntity.Article.TAG); mCommentDetailCommentEt.addTextChangedListener(watcher); diff --git a/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchFragment.java b/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchFragment.java index 1e5a131630..bc629402e2 100644 --- a/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchFragment.java @@ -18,14 +18,14 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.GameNewsAdapter; import com.gh.gamecenter.adapter.GameNewsTypeListAdapter; import com.gh.gamecenter.eventbus.EBTypeChange; -import com.gh.gamecenter.normal.NormalFragment; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import org.greenrobot.eventbus.Subscribe; @@ -43,7 +43,7 @@ import retrofit2.HttpException; *

* Created by CsHeng on 14/12/2017. */ -public class GameNewsSearchFragment extends NormalFragment { +public class GameNewsSearchFragment extends ToolbarFragment { private RecyclerView mGameNewsRv; private RecyclerView mGameNewsTypeRv; @@ -62,9 +62,9 @@ public class GameNewsSearchFragment extends NormalFragment { public static GameNewsSearchFragment newInstance(String gameName, String gameId, String entrance) { final GameNewsSearchFragment fragment = new GameNewsSearchFragment(); Bundle args = new Bundle(); - args.putString(EntranceUtils.KEY_GAMENAME, gameName); - args.putString(EntranceUtils.KEY_GAMEID, gameId); - args.putString(EntranceUtils.KEY_ENTRANCE, entrance); + args.putString(EntranceConsts.KEY_GAMENAME, gameName); + args.putString(EntranceConsts.KEY_GAMEID, gameId); + args.putString(EntranceConsts.KEY_ENTRANCE, entrance); fragment.setArguments(args); return fragment; } @@ -112,7 +112,7 @@ public class GameNewsSearchFragment extends NormalFragment { if (args == null) return; - String gameName = args.getString(EntranceUtils.KEY_GAMENAME); + String gameName = args.getString(EntranceConsts.KEY_GAMENAME); setNavigationTitle(gameName); noDataTv.setText("暂无内容"); @@ -120,7 +120,7 @@ public class GameNewsSearchFragment extends NormalFragment { mAdapterMap = new ArrayMap<>(); mTypeList = new ArrayList<>(); - mGameId = args.getString(EntranceUtils.KEY_GAMEID); + mGameId = args.getString(EntranceConsts.KEY_GAMEID); mLayoutManager = new LinearLayoutManager(getContext()); mGameNewsRv.setHasFixedSize(true); diff --git a/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchResultFragment.java b/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchResultFragment.java index 5dd7bfdd09..f6e025e43a 100644 --- a/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchResultFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/game/GameNewsSearchResultFragment.java @@ -17,19 +17,19 @@ import android.widget.TextView; import com.gh.common.constant.Config; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.EnvHelper; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.EnvHelper; import com.gh.common.util.NewsUtils; -import com.gh.common.util.UrlFilterUtils; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.core.utils.UrlFilterUtils; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsTextViewHolder; import com.gh.gamecenter.databinding.NewsTextItemBinding; import com.gh.gamecenter.entity.NewsEntity; -import com.gh.gamecenter.normal.NormalFragment; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.utils.Util_System_Keyboard; @@ -44,7 +44,7 @@ import retrofit2.HttpException; * Created by CsHeng on 14/12/2017. * 游戏新闻搜索结果界面 */ -public class GameNewsSearchResultFragment extends NormalFragment { +public class GameNewsSearchResultFragment extends ToolbarFragment { private LinearLayout mNoneData; private EditText mNewsSearchEt; @@ -84,9 +84,9 @@ public class GameNewsSearchResultFragment extends NormalFragment { Bundle args = getArguments(); - String gameName = args.getString(EntranceUtils.KEY_GAMENAME); - mSearchKey = args.getString(EntranceUtils.KEY_SEARCHKEY); - mGameId = args.getString(EntranceUtils.KEY_GAMEID); + String gameName = args.getString(EntranceConsts.KEY_GAMENAME); + mSearchKey = args.getString(EntranceConsts.KEY_SEARCHKEY); + mGameId = args.getString(EntranceConsts.KEY_GAMEID); setNavigationTitle(gameName); diff --git a/app/src/main/java/com/halo/assistant/fragment/game/GamePluggableViewHolder.kt b/app/src/main/java/com/halo/assistant/fragment/game/GamePluggableViewHolder.kt index d798576133..7a7c9d2160 100644 --- a/app/src/main/java/com/halo/assistant/fragment/game/GamePluggableViewHolder.kt +++ b/app/src/main/java/com/halo/assistant/fragment/game/GamePluggableViewHolder.kt @@ -1,8 +1,8 @@ package com.halo.assistant.fragment.game import android.view.View -import com.gh.base.BaseRecyclerViewHolder -import com.gh.common.view.DrawableView +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder +import com.gh.gamecenter.common.view.DrawableView import com.gh.gamecenter.databinding.GamePluggableItemBinding import com.gh.gamecenter.entity.GameEntity diff --git a/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java b/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java index f1477fc16a..1cb86229c9 100644 --- a/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java +++ b/app/src/main/java/com/halo/assistant/fragment/game/GamePluginAdapter.java @@ -8,17 +8,17 @@ import android.widget.LinearLayout; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.constant.ItemViewType; +import com.gh.gamecenter.common.constant.ItemViewType; import com.gh.common.databind.BindingAdapters; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.common.util.DownloadItemUtils; -import com.gh.common.util.ExtensionsKt; import com.gh.common.util.HomePluggableHelper; -import com.gh.common.util.MtaHelper; +import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.common.util.PlatformUtils; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.GameViewHolder; diff --git a/app/src/main/java/com/halo/assistant/fragment/game/GamePluginViewHolder.java b/app/src/main/java/com/halo/assistant/fragment/game/GamePluginViewHolder.java index 9b90a7368d..ee8ca18362 100644 --- a/app/src/main/java/com/halo/assistant/fragment/game/GamePluginViewHolder.java +++ b/app/src/main/java/com/halo/assistant/fragment/game/GamePluginViewHolder.java @@ -1,7 +1,7 @@ package com.halo.assistant.fragment.game; -import com.gh.base.BaseRecyclerViewHolder; +import com.gh.gamecenter.common.base.BaseRecyclerViewHolder; import com.gh.gamecenter.databinding.GamePluginItemBinding; /** diff --git a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernAdapter.java b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernAdapter.java index 41891cdf35..c83416a7cd 100644 --- a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernAdapter.java +++ b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernAdapter.java @@ -6,30 +6,27 @@ import android.view.ViewGroup; import androidx.core.content.ContextCompat; -import com.gh.base.OnRequestCallBackListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; import com.gh.common.databind.BindingAdapters; import com.gh.common.filter.RegionSettingHelper; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.ConcernUtils; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; import com.gh.gamecenter.databinding.ConcernItemBinding; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.manager.UserManager; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -107,15 +104,17 @@ class MyConcernAdapter extends BaseRecyclerAdapter { BindingAdapters.setGame(holder.binding.concernItemIcon, gameEntity); + holder.binding.getRoot().setBackground(ContextCompat.getDrawable(mContext, R.drawable.reuse_listview_item_style)); holder.binding.concernItemName.setText(gameEntity.getName()); + holder.binding.concernItemName.setTextColor(ContextCompat.getColor(mContext, R.color.text_title)); if (gameEntity.isRelated()) { holder.binding.concernItemConcern.setText("关联关注"); holder.binding.concernItemConcern.setTextColor(ContextCompat.getColor(mContext, R.color.content)); - holder.binding.concernItemConcern.setBackgroundResource(R.drawable.button_border_gray_oval); + holder.binding.concernItemConcern.setBackground(ContextCompat.getDrawable(mContext, R.drawable.button_border_gray_oval)); } else { holder.binding.concernItemConcern.setText(R.string.cancel_concern); holder.binding.concernItemConcern.setTextColor(ContextCompat.getColor(mContext, R.color.theme_font)); - holder.binding.concernItemConcern.setBackgroundResource(R.drawable.button_border_blue_oval); + holder.binding.concernItemConcern.setBackground(ContextCompat.getDrawable(mContext, R.drawable.button_border_blue_oval)); } holder.binding.concernItemConcern.setOnClickListener(v -> { holder.binding.concernItemConcern.setClickable(false); @@ -134,10 +133,6 @@ class MyConcernAdapter extends BaseRecyclerAdapter { // 更新界面->cancelConcern() cancelConcern(gameEntity.getId()); - Map kv = new HashMap<>(); - kv.put("状态", R.string.cancel_concern); - DataUtils.onEvent(mContext, "游戏关注", gameEntity.getName(), kv); - DataCollectionUtils.uploadConcern(mContext, gameEntity.getName(), gameEntity.getId(), diff --git a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java index 01a0f0c6dd..f8e8eefb4e 100644 --- a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java @@ -5,14 +5,14 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import com.gh.base.OnRequestCallBackListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; import com.gh.common.util.CheckLoginUtils; import com.gh.common.view.Concern_LinearLayout; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -30,7 +30,7 @@ import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG; *

* 我的关注grid页面 */ -public class MyConcernFragment extends NormalFragment implements OnRequestCallBackListener { +public class MyConcernFragment extends ToolbarFragment implements OnRequestCallBackListener { private RecyclerView mConcernRv; private LinearLayout mNoneData; @@ -144,4 +144,12 @@ public class MyConcernFragment extends NormalFragment implements OnRequestCallBa } } + @Override + protected void onNightModeChange() { + super.onNightModeChange(); + if (concernAdapter != null) { + mConcernRv.getRecycledViewPool().clear(); + concernAdapter.notifyItemRangeChanged(0, concernAdapter.getItemCount()); + } + } } diff --git a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernRecommendAdapter.java b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernRecommendAdapter.java index ff1ce63082..d58a922560 100644 --- a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernRecommendAdapter.java +++ b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernRecommendAdapter.java @@ -6,7 +6,7 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; -import com.gh.base.OnRequestCallBackListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; import com.gh.common.constant.Config; import com.gh.common.databind.BindingAdapters; import com.gh.common.filter.RegionSettingHelper; @@ -15,9 +15,8 @@ import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.ConcernUtils; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.StringUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.gh.gamecenter.GameDetailActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder; @@ -25,16 +24,14 @@ import com.gh.gamecenter.databinding.ConcernItemBinding; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameInstall; import com.gh.gamecenter.manager.PackagesManager; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; import com.lightgame.utils.Utils; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -173,8 +170,8 @@ public class MyConcernRecommendAdapter extends BaseRecyclerAdapter CheckLoginUtils.checkLogin(mContext, "我的关注-热门游戏推荐-[关注]", () -> { holder.binding.concernItemConcern.setClickable(false); @@ -183,11 +180,6 @@ public class MyConcernRecommendAdapter extends BaseRecyclerAdapterconcernGame() - - Map kv = new HashMap<>(); - kv.put("状态", R.string.concern); - DataUtils.onEvent(mContext, "游戏关注", gameEntity.getName(), kv); - DataCollectionUtils.uploadConcern(mContext, gameEntity.getName(), gameEntity.getId(), mContext.getString(R.string.concern)); diff --git a/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameFragment.kt b/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameFragment.kt index fe6b02756b..194a8d5405 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameFragment.kt @@ -9,16 +9,22 @@ import android.text.TextUtils import android.view.View import androidx.core.widget.doOnTextChanged import androidx.fragment.app.viewModels -import com.gh.base.fragment.WaitingDialogFragment +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.util.* import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.common.utils.PermissionHelper +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.utils.enlargeTouchArea +import com.gh.gamecenter.common.utils.ImageUtils import com.gh.gamecenter.databinding.FragmentManuallyRealNameBinding import com.gh.gamecenter.entity.IdCardEntity -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.squareup.picasso.MemoryPolicy import io.reactivex.disposables.Disposable -class ManuallyRealNameFragment : NormalFragment() { +class ManuallyRealNameFragment : ToolbarFragment() { private var mDialog: WaitingDialogFragment? = null private var mDisposable: Disposable? = null @@ -103,8 +109,8 @@ class ManuallyRealNameFragment : NormalFragment() { updateSubmitBtn() } - mBinding.nameEt.setText(arguments?.getString(EntranceUtils.KEY_NAME) ?: "") - mBinding.idCardEt.setText(arguments?.getString(EntranceUtils.KEY_ID) ?: "") + mBinding.nameEt.setText(arguments?.getString(EntranceConsts.KEY_NAME) ?: "") + mBinding.idCardEt.setText(arguments?.getString(EntranceConsts.KEY_ID) ?: "") mBinding.nameEt.setSelection(mBinding.nameEt.text.length) mBinding.idCardEt.setSelection(mBinding.idCardEt.text.length) diff --git a/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameViewModel.kt b/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameViewModel.kt index 163ad1a3f0..c5b33519c9 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameViewModel.kt +++ b/app/src/main/java/com/halo/assistant/fragment/user/ManuallyRealNameViewModel.kt @@ -5,11 +5,11 @@ import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData import com.gh.common.util.ErrorHelper -import com.gh.common.util.GsonUtils -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.entity.IdCardEntity import com.gh.gamecenter.entity.UserInfoEntity -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoFragment.kt b/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoFragment.kt index 89c9fde871..4217787f8d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoFragment.kt @@ -12,15 +12,23 @@ import androidx.constraintlayout.widget.ConstraintSet import androidx.core.widget.doOnTextChanged import androidx.fragment.app.viewModels import com.gh.common.util.* -import com.gh.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.ShellActivity +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.enlargeTouchArea +import com.gh.gamecenter.common.utils.observeNonNull +import com.gh.gamecenter.common.utils.DialogHelper +import com.gh.gamecenter.common.utils.TextHelper +import com.gh.gamecenter.common.utils.visibleIf +import com.gh.gamecenter.core.utils.* import com.gh.gamecenter.databinding.FragmentRealNameBinding -import com.gh.gamecenter.normal.NormalFragment +import com.gh.gamecenter.common.base.fragment.ToolbarFragment import org.json.JSONObject -class RealNameInfoFragment : NormalFragment() { +class RealNameInfoFragment : ToolbarFragment() { private var mHasBackdoor: Boolean = false // 是否留有不实名完成也自动开始下载的后门 private var mIsForcedToCertificate: Boolean = false @@ -41,11 +49,11 @@ class RealNameInfoFragment : NormalFragment() { super.onViewCreated(view, savedInstanceState) mIsForcedToCertificate = - arguments?.getBoolean(EntranceUtils.KEY_IS_FORCED_TO_CERTIFICATE) ?: false + arguments?.getBoolean(EntranceConsts.KEY_IS_FORCED_TO_CERTIFICATE) ?: false mHasBackdoor = - arguments?.getBoolean(EntranceUtils.KEY_IS_FORCED_TO_CERTIFICATE_BUT_WITH_BACKDOOR) + arguments?.getBoolean(EntranceConsts.KEY_IS_FORCED_TO_CERTIFICATE_BUT_WITH_BACKDOOR) ?: false - mGameId = arguments?.getString(EntranceUtils.KEY_GAME_ID) ?: "" + mGameId = arguments?.getString(EntranceConsts.KEY_GAME_ID) ?: "" mBinding.toolbar.normalTitle.text = "实名认证" mBinding.toolbar.normalToolbar.setNavigationOnClickListener { requireActivity().finish() } @@ -71,8 +79,8 @@ class RealNameInfoFragment : NormalFragment() { requireContext(), ShellActivity.Type.MANUALLY_REAL_NAME, Bundle().apply { - putString(EntranceUtils.KEY_NAME, mBinding.nameEt.text.toString()) - putString(EntranceUtils.KEY_ID, mBinding.idCardEt.text.toString()) + putString(EntranceConsts.KEY_NAME, mBinding.nameEt.text.toString()) + putString(EntranceConsts.KEY_ID, mBinding.idCardEt.text.toString()) } ) ) @@ -153,8 +161,8 @@ class RealNameInfoFragment : NormalFragment() { requireContext(), ShellActivity.Type.MANUALLY_REAL_NAME, Bundle().apply { - putString(EntranceUtils.KEY_NAME, mBinding.nameEt.text.toString()) - putString(EntranceUtils.KEY_ID, mBinding.idCardEt.text.toString()) + putString(EntranceConsts.KEY_NAME, mBinding.nameEt.text.toString()) + putString(EntranceConsts.KEY_ID, mBinding.idCardEt.text.toString()) } ) ) @@ -222,7 +230,7 @@ class RealNameInfoFragment : NormalFragment() { mBinding.reEditInfoBtn.setOnClickListener { startActivity( ShellActivity.getIntent(requireContext(), ShellActivity.Type.REAL_NAME_INFO).apply { - putExtra(EntranceUtils.KEY_IS_FORCED_TO_CERTIFICATE, true) + putExtra(EntranceConsts.KEY_IS_FORCED_TO_CERTIFICATE, true) } ) requireActivity().finish() diff --git a/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoViewModel.kt b/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoViewModel.kt index bd2cf8c365..62a3a5cf0d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoViewModel.kt +++ b/app/src/main/java/com/halo/assistant/fragment/user/RealNameInfoViewModel.kt @@ -5,15 +5,19 @@ import android.app.Application import android.text.TextUtils import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData -import com.gh.common.constant.Constants -import com.gh.common.json.json +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.json.json import com.gh.common.util.* -import com.gh.common.util.GsonUtils.fromJson +import com.gh.gamecenter.core.utils.GsonUtils.fromJson import com.gh.download.DownloadManager +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.toObject +import com.gh.gamecenter.common.utils.toRequestBody +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import com.gh.gamecenter.entity.IdCardEntity import com.gh.gamecenter.entity.UserInfoEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.retrofit.BiResponse +import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.gh.gamecenter.user.UserRepository import com.halo.assistant.HaloApp diff --git a/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java index 33c976a39d..3f429cfcf4 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/SelectPortraitFragment.java @@ -16,12 +16,12 @@ import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProviders; import com.gh.common.util.DialogUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.PermissionHelper; -import com.gh.common.util.RandomUtils; -import com.gh.common.util.UserIconUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.utils.PermissionHelper; +import com.gh.gamecenter.core.utils.RandomUtils; +import com.gh.gamecenter.common.utils.UserIconUtils; import com.gh.gamecenter.R; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import com.gh.gamecenter.user.UserViewModel; import com.lightgame.utils.Utils; import com.zhihu.matisse.internal.utils.PathUtils; @@ -38,7 +38,7 @@ import java.util.Locale; *

* 选择用户头像 */ -public class SelectPortraitFragment extends NormalFragment { +public class SelectPortraitFragment extends ToolbarFragment { public final static int REQUEST_CROP_ICON = 12; public final static int REQUEST_MEDIA_ICON = 13; @@ -77,7 +77,7 @@ public class SelectPortraitFragment extends NormalFragment { break; case REQUEST_CROP_ICON: if (data != null && data.getExtras() != null) { - String url = data.getExtras().getString(EntranceUtils.KEY_URL); + String url = data.getExtras().getString(EntranceConsts.KEY_URL); change(url); } break; diff --git a/app/src/main/java/com/halo/assistant/fragment/user/SelectRegionFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/SelectRegionFragment.java index ce07f0118f..24ea8c9a64 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/SelectRegionFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/SelectRegionFragment.java @@ -14,12 +14,12 @@ import androidx.fragment.app.FragmentTransaction; import android.text.TextUtils; import com.gh.common.util.DialogUtils; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.UserInfoEntity; -import com.gh.gamecenter.user.ApiResponse; +import com.gh.gamecenter.common.retrofit.ApiResponse; import com.gh.gamecenter.user.UserViewModel; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import com.halo.assistant.fragment.user.region.OnRegionSelectListener; import com.halo.assistant.fragment.user.region.RegionCountFragment; import com.halo.assistant.fragment.user.region.RegionProvFragment; @@ -33,7 +33,7 @@ import java.util.List; *

* 修改用户归属地 */ -public class SelectRegionFragment extends NormalFragment implements OnBackPressedListener, OnRegionSelectListener { +public class SelectRegionFragment extends ToolbarFragment implements OnBackPressedListener, OnRegionSelectListener { private String mProvinceName; private RegionProvFragment mProvFragment; @@ -76,7 +76,7 @@ public class SelectRegionFragment extends NormalFragment implements OnBackPresse } else { mProvFragment = alterFragment(transaction, RegionProvFragment.class); Bundle args = new Bundle(); - args.putStringArrayList(EntranceUtils.KEY_PROLIST, new ArrayList<>(provinceList)); + args.putStringArrayList(EntranceConsts.KEY_PROLIST, new ArrayList<>(provinceList)); if (mProvFragment != null) { mProvFragment.setArguments(args); } diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.kt b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.kt index c1dc9a2e59..48432487ac 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.kt @@ -13,17 +13,22 @@ import android.view.View import android.widget.EditText import android.widget.TextView import androidx.lifecycle.ViewModelProviders -import com.gh.common.constant.Constants +import com.gh.gamecenter.common.constant.Constants import com.gh.common.util.* -import com.gh.common.view.UrlInterceptedLinkMovementMethod +import com.gh.gamecenter.common.view.UrlInterceptedLinkMovementMethod import com.gh.gamecenter.R +import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.core.utils.GsonUtils +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.fromHtml +import com.gh.gamecenter.common.utils.TextHelper import com.gh.gamecenter.databinding.FragmentUserinfoEditBinding import com.gh.gamecenter.entity.UserInfoEntity import com.gh.gamecenter.manager.UserManager -import com.gh.gamecenter.normal.NormalFragment -import com.gh.gamecenter.retrofit.JSONObjectResponse +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.retrofit.JSONObjectResponse import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.user.UserViewModel import com.halo.assistant.HaloApp import io.reactivex.android.schedulers.AndroidSchedulers @@ -33,7 +38,7 @@ import org.json.JSONObject import java.lang.StringBuilder import java.util.* -class UserInfoEditFragment : NormalFragment() { +class UserInfoEditFragment : ToolbarFragment() { private lateinit var mBinding: FragmentUserinfoEditBinding private var mSaveMenuItem: MenuItem? = null @@ -52,7 +57,7 @@ class UserInfoEditFragment : NormalFragment() { super.onCreate(savedInstanceState) setHasOptionsMenu(true) mEditType = requireArguments().getString(UserViewModel.KEY_EDIT_TYPE)!! - mIsForcedToCertificate = requireArguments().getBoolean(EntranceUtils.KEY_IS_FORCED_TO_CERTIFICATE) + mIsForcedToCertificate = requireArguments().getBoolean(EntranceConsts.KEY_IS_FORCED_TO_CERTIFICATE) initMenu(R.menu.menu_button) mSaveMenuItem = getItemMenu(R.id.menu_button) diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoFragment.kt b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoFragment.kt index d4d0580b6a..b7c78490a8 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoFragment.kt +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoFragment.kt @@ -5,16 +5,16 @@ import android.text.TextUtils import android.view.View import androidx.lifecycle.ViewModelProviders import com.gh.common.util.DirectUtils -import com.gh.common.util.ImageUtils.display -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.common.utils.ImageUtils.display +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.* import com.gh.gamecenter.databinding.FragmentUserinfoBinding import com.gh.gamecenter.entity.UserInfoEntity -import com.gh.gamecenter.normal.NormalFragment -import com.gh.gamecenter.user.ApiResponse +import com.gh.gamecenter.common.base.fragment.ToolbarFragment +import com.gh.gamecenter.common.retrofit.ApiResponse import com.gh.gamecenter.user.UserViewModel -class UserInfoFragment : NormalFragment() { +class UserInfoFragment : ToolbarFragment() { private lateinit var mBinding: FragmentUserinfoBinding diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserPortraitCropImageActivity.java b/app/src/main/java/com/halo/assistant/fragment/user/UserPortraitCropImageActivity.java index bda5c09948..6f828713ee 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserPortraitCropImageActivity.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserPortraitCropImageActivity.java @@ -12,12 +12,12 @@ import android.view.MenuItem; import androidx.annotation.NonNull; -import com.gh.base.fragment.WaitingDialogFragment; -import com.gh.common.util.EntranceUtils; +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment; +import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.common.util.UploadImageUtils; import com.gh.gamecenter.CropImageActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.retrofit.Response; +import com.gh.gamecenter.common.retrofit.Response; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -132,7 +132,7 @@ public class UserPortraitCropImageActivity extends CropImageActivity { sp.edit().putString("updateIconCount", jsonObject.toString()).apply(); Intent data = new Intent(); - data.putExtra(EntranceUtils.KEY_URL, url); + data.putExtra(EntranceConsts.KEY_URL, url); setResult(RESULT_OK, data); finish(); } catch (Exception e) { @@ -187,9 +187,9 @@ public class UserPortraitCropImageActivity extends CropImageActivity { @NonNull public static Intent getIntent(Context context, String picturePath, float cropRatio, String entrance) { Intent intent = new Intent(context, UserPortraitCropImageActivity.class); - intent.putExtra(EntranceUtils.KEY_PATH, picturePath); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance); - intent.putExtra(EntranceUtils.KEY_IMAGE_CROP_RATIO, cropRatio); + intent.putExtra(EntranceConsts.KEY_PATH, picturePath); + intent.putExtra(EntranceConsts.KEY_ENTRANCE, entrance); + intent.putExtra(EntranceConsts.KEY_IMAGE_CROP_RATIO, cropRatio); return intent; } } diff --git a/app/src/main/java/com/halo/assistant/fragment/user/VerifiedConfirmDialog.kt b/app/src/main/java/com/halo/assistant/fragment/user/VerifiedConfirmDialog.kt index 4ee96c6efb..061502945d 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/VerifiedConfirmDialog.kt +++ b/app/src/main/java/com/halo/assistant/fragment/user/VerifiedConfirmDialog.kt @@ -2,8 +2,8 @@ package com.halo.assistant.fragment.user import android.content.Context import android.os.Bundle -import com.gh.common.dialog.TrackableDialog -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.common.base.TrackableDialog +import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.R import com.gh.gamecenter.databinding.DialogVerifiedConfirmBinding diff --git a/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCounAdapter.java b/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCounAdapter.java index ae8ccc210f..c24900df55 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCounAdapter.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCounAdapter.java @@ -7,13 +7,12 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.gh.common.util.GsonUtils; +import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.AreaViewHolder; import com.gh.gamecenter.databinding.AreaItemBinding; import com.gh.gamecenter.entity.LocalEntity; import com.gh.gamecenter.manager.UserManager; -import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.lightgame.adapter.BaseRecyclerAdapter; diff --git a/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCountFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCountFragment.java index a6bfe37181..a17716d0b2 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCountFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/region/RegionCountFragment.java @@ -10,8 +10,8 @@ import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import java.util.List; diff --git a/app/src/main/java/com/halo/assistant/fragment/user/region/RegionProvFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/region/RegionProvFragment.java index 805573b5a7..7f462ed050 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/region/RegionProvFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/region/RegionProvFragment.java @@ -8,9 +8,9 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.util.EntranceUtils; -import com.gh.common.view.VerticalItemDecoration; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.view.VerticalItemDecoration; import com.gh.gamecenter.R; import java.util.List; @@ -35,8 +35,8 @@ public class RegionProvFragment extends BaseFragment implements OnRegionSelectLi recyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), false)); Bundle arguments = getArguments(); - if (arguments != null && arguments.getStringArrayList(EntranceUtils.KEY_PROLIST) != null) { - recyclerView.setAdapter(new RegionProvAdapter(getContext(), arguments.getStringArrayList(EntranceUtils.KEY_PROLIST), this)); + if (arguments != null && arguments.getStringArrayList(EntranceConsts.KEY_PROLIST) != null) { + recyclerView.setAdapter(new RegionProvAdapter(getContext(), arguments.getStringArrayList(EntranceConsts.KEY_PROLIST), this)); } } diff --git a/app/src/main/res/drawable-xhdpi/voting_game_selected.webp b/app/src/main/res/drawable-xhdpi/voting_game_selected.webp deleted file mode 100644 index b00074be02..0000000000 Binary files a/app/src/main/res/drawable-xhdpi/voting_game_selected.webp and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/search_column_icon.webp b/app/src/main/res/drawable-xxhdpi/search_column_icon.webp deleted file mode 100644 index 22e782e067..0000000000 Binary files a/app/src/main/res/drawable-xxhdpi/search_column_icon.webp and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/search_special_column_icon.png b/app/src/main/res/drawable-xxhdpi/search_special_column_icon.png deleted file mode 100644 index 46ecfa1019..0000000000 Binary files a/app/src/main/res/drawable-xxhdpi/search_special_column_icon.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_comment_original_arrow.webp b/app/src/main/res/drawable-xxxhdpi/ic_comment_original_arrow.webp new file mode 100644 index 0000000000..1eb1172c61 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_comment_original_arrow.webp differ diff --git a/app/src/main/res/drawable/bg_add_kaifu.xml b/app/src/main/res/drawable/bg_add_kaifu.xml index 2c64b4a953..0170a909c1 100644 --- a/app/src/main/res/drawable/bg_add_kaifu.xml +++ b/app/src/main/res/drawable/bg_add_kaifu.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/bg_add_kaifu_bottom_left.xml b/app/src/main/res/drawable/bg_add_kaifu_bottom_left.xml index e7cd0a1b5e..d923589374 100644 --- a/app/src/main/res/drawable/bg_add_kaifu_bottom_left.xml +++ b/app/src/main/res/drawable/bg_add_kaifu_bottom_left.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/bg_add_kaifu_bottom_right.xml b/app/src/main/res/drawable/bg_add_kaifu_bottom_right.xml index d9bf33a3e4..97c6c3384c 100644 --- a/app/src/main/res/drawable/bg_add_kaifu_bottom_right.xml +++ b/app/src/main/res/drawable/bg_add_kaifu_bottom_right.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/bg_add_kaifu_top.xml b/app/src/main/res/drawable/bg_add_kaifu_top.xml index b76dc239f6..2526c3295d 100644 --- a/app/src/main/res/drawable/bg_add_kaifu_top.xml +++ b/app/src/main/res/drawable/bg_add_kaifu_top.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/drawable/bg_add_kaifu_top_left.xml b/app/src/main/res/drawable/bg_add_kaifu_top_left.xml index 9c04800d0e..297b3ad4ad 100644 --- a/app/src/main/res/drawable/bg_add_kaifu_top_left.xml +++ b/app/src/main/res/drawable/bg_add_kaifu_top_left.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/drawable/bg_add_kaifu_top_right.xml b/app/src/main/res/drawable/bg_add_kaifu_top_right.xml index e98756cb66..abf07a251b 100644 --- a/app/src/main/res/drawable/bg_add_kaifu_top_right.xml +++ b/app/src/main/res/drawable/bg_add_kaifu_top_right.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/drawable/bg_shape_f2_radius_999.xml b/app/src/main/res/drawable/bg_shape_f2_radius_999.xml index c910da78a2..2832d2730f 100644 --- a/app/src/main/res/drawable/bg_shape_f2_radius_999.xml +++ b/app/src/main/res/drawable/bg_shape_f2_radius_999.xml @@ -1,6 +1,6 @@ + - \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_shape_f8_radius_8.xml b/app/src/main/res/drawable/bg_shape_f8_radius_8.xml index a49afdae08..89ae3c0093 100644 --- a/app/src/main/res/drawable/bg_shape_f8_radius_8.xml +++ b/app/src/main/res/drawable/bg_shape_f8_radius_8.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_shape_white_editor_label_left.xml b/app/src/main/res/drawable/bg_shape_white_editor_label_left.xml index b439e68e0c..f3020b4bab 100644 --- a/app/src/main/res/drawable/bg_shape_white_editor_label_left.xml +++ b/app/src/main/res/drawable/bg_shape_white_editor_label_left.xml @@ -9,5 +9,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_shape_white_editor_label_right.xml b/app/src/main/res/drawable/bg_shape_white_editor_label_right.xml index 7387725fd5..013c1d07a2 100644 --- a/app/src/main/res/drawable/bg_shape_white_editor_label_right.xml +++ b/app/src/main/res/drawable/bg_shape_white_editor_label_right.xml @@ -6,7 +6,7 @@ android:bottomRightRadius="4dp" android:topLeftRadius="1dp" android:topRightRadius="4dp" /> - + diff --git a/app/src/main/res/drawable/bg_shape_white_radius_1.xml b/app/src/main/res/drawable/bg_shape_white_radius_1.xml index dc14a42ce6..f5011d2552 100644 --- a/app/src/main/res/drawable/bg_shape_white_radius_1.xml +++ b/app/src/main/res/drawable/bg_shape_white_radius_1.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/bg_shape_white_radius_8.xml b/app/src/main/res/drawable/bg_shape_white_radius_8.xml index e3d1bdb280..8a9e9ee524 100644 --- a/app/src/main/res/drawable/bg_shape_white_radius_8.xml +++ b/app/src/main/res/drawable/bg_shape_white_radius_8.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/border_round_stroke_eee_4.xml b/app/src/main/res/drawable/border_round_stroke_eee_4.xml index 89417aa899..358e603295 100644 --- a/app/src/main/res/drawable/border_round_stroke_eee_4.xml +++ b/app/src/main/res/drawable/border_round_stroke_eee_4.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/dialog_app_updating_bg.xml b/app/src/main/res/drawable/dialog_app_updating_bg.xml index ac9845d098..acf9b061e9 100644 --- a/app/src/main/res/drawable/dialog_app_updating_bg.xml +++ b/app/src/main/res/drawable/dialog_app_updating_bg.xml @@ -2,7 +2,7 @@ - + diff --git a/app/src/main/res/drawable/divider_item_line_space_20.xml b/app/src/main/res/drawable/divider_item_line_space_20.xml index 50d9e9e25b..e657b1334b 100644 --- a/app/src/main/res/drawable/divider_item_line_space_20.xml +++ b/app/src/main/res/drawable/divider_item_line_space_20.xml @@ -3,7 +3,7 @@ - + diff --git a/app/src/main/res/drawable/launcher_background.xml b/app/src/main/res/drawable/launcher_background.xml index 5d74867a78..f010f0bfe7 100644 --- a/app/src/main/res/drawable/launcher_background.xml +++ b/app/src/main/res/drawable/launcher_background.xml @@ -1,7 +1,7 @@ - + - + - + - + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_message_unread_hint.xml b/app/src/main/res/drawable/shape_message_unread_hint.xml new file mode 100644 index 0000000000..0b59aa8717 --- /dev/null +++ b/app/src/main/res/drawable/shape_message_unread_hint.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_amway.xml b/app/src/main/res/layout/activity_amway.xml index 8e9eae2216..501cf5a52b 100644 --- a/app/src/main/res/layout/activity_amway.xml +++ b/app/src/main/res/layout/activity_amway.xml @@ -1,12 +1,12 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_ask_search.xml b/app/src/main/res/layout/activity_ask_search.xml deleted file mode 100644 index 3770a436db..0000000000 --- a/app/src/main/res/layout/activity_ask_search.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_background_clip.xml b/app/src/main/res/layout/activity_background_clip.xml index f9c65fc4af..49c8ca158b 100644 --- a/app/src/main/res/layout/activity_background_clip.xml +++ b/app/src/main/res/layout/activity_background_clip.xml @@ -1,5 +1,5 @@ - - - + diff --git a/app/src/main/res/layout/activity_community_article_edit.xml b/app/src/main/res/layout/activity_community_article_edit.xml index d046b441d0..84c6e67d18 100644 --- a/app/src/main/res/layout/activity_community_article_edit.xml +++ b/app/src/main/res/layout/activity_community_article_edit.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/white" + android:background="@color/background_white" android:focusable="true" android:focusableInTouchMode="true" android:orientation="vertical"> diff --git a/app/src/main/res/layout/activity_cropimage.xml b/app/src/main/res/layout/activity_cropimage.xml index 826ece8e81..54583bf6aa 100644 --- a/app/src/main/res/layout/activity_cropimage.xml +++ b/app/src/main/res/layout/activity_cropimage.xml @@ -1,5 +1,5 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_editor_insert_game.xml b/app/src/main/res/layout/activity_editor_insert_game.xml index d853d68753..77a9441df8 100644 --- a/app/src/main/res/layout/activity_editor_insert_game.xml +++ b/app/src/main/res/layout/activity_editor_insert_game.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/background" android:orientation="vertical"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> diff --git a/app/src/main/res/layout/activity_full_screen_video.xml b/app/src/main/res/layout/activity_full_screen_video.xml index 0b2ef59f56..d30f9aa96a 100644 --- a/app/src/main/res/layout/activity_full_screen_video.xml +++ b/app/src/main/res/layout/activity_full_screen_video.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_game_servers.xml b/app/src/main/res/layout/activity_game_servers.xml index 52329ee667..6b60ce0dab 100644 --- a/app/src/main/res/layout/activity_game_servers.xml +++ b/app/src/main/res/layout/activity_game_servers.xml @@ -44,7 +44,7 @@ android:gravity="center" android:singleLine="true" android:text="开服" - android:textColor="@color/black" + android:textColor="@color/text_black" android:textSize="15sp" android:textStyle="bold" /> @@ -58,7 +58,7 @@ android:gravity="center" android:singleLine="true" android:text="开测" - android:textColor="@color/black" + android:textColor="@color/text_black" android:textSize="15sp" android:textStyle="bold" /> @@ -77,7 +77,7 @@ style="@style/toolbar_title" android:layout_width="100dp" android:layout_height="match_parent" - android:background="@color/white" + android:background="@color/background_white" android:text="开服表" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> @@ -86,6 +86,7 @@ + android:layout_height="match_parent" + android:background="@color/background" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_help_and_feedback.xml b/app/src/main/res/layout/activity_help_and_feedback.xml index 0aa23b1076..62dbbcd688 100644 --- a/app/src/main/res/layout/activity_help_and_feedback.xml +++ b/app/src/main/res/layout/activity_help_and_feedback.xml @@ -20,7 +20,7 @@ android:layout_alignParentBottom="true" android:background="@color/divider" /> - + android:orientation="vertical" + android:background="@color/background"> + android:background="@color/background_white"> + android:background="@color/background_white"> @@ -36,7 +37,7 @@ android:layout_height="50dp" android:layout_marginRight="1dp" android:layout_weight="15" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:maxLines="2" android:textColor="@color/title" @@ -49,7 +50,7 @@ android:layout_height="match_parent" android:layout_marginRight="1dp" android:layout_weight="29" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:maxLines="2" android:textColor="@color/title" @@ -61,7 +62,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="15" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:maxLines="2" android:textColor="@color/title" @@ -86,7 +87,7 @@ android:layout_height="50dp" android:layout_marginRight="1dp" android:layout_weight="15" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:orientation="horizontal"> @@ -108,7 +109,7 @@ android:layout_height="match_parent" android:layout_marginRight="1dp" android:layout_weight="29" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:hint="点击填写" android:singleLine="true" @@ -121,7 +122,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="15" - android:background="@color/white" + android:background="@color/background_white" android:enabled="false" android:gravity="center" android:maxLength="4" @@ -148,7 +149,7 @@ android:layout_height="50dp" android:layout_marginRight="1dp" android:layout_weight="15" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:orientation="horizontal"> @@ -170,7 +171,7 @@ android:layout_height="match_parent" android:layout_marginRight="1dp" android:layout_weight="29" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:maxLines="2" android:textColor="@color/hint" @@ -182,7 +183,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="15" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:maxLines="2" android:textColor="@color/hint" @@ -196,7 +197,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" - android:background="@color/white"> + android:background="@color/background_white"> - - - @@ -164,7 +164,7 @@ android:layout_width="match_parent" android:layout_height="44dp" android:layout_above="@+id/editor_insert_container" - android:background="@color/white"> + android:background="@color/background_white"> + android:background="@color/background_white"> - - diff --git a/app/src/main/res/layout/activity_rating_reply.xml b/app/src/main/res/layout/activity_rating_reply.xml index dc5b14f5ca..761e657a17 100644 --- a/app/src/main/res/layout/activity_rating_reply.xml +++ b/app/src/main/res/layout/activity_rating_reply.xml @@ -1,5 +1,5 @@ - - - + diff --git a/app/src/main/res/layout/activity_tablayout_viewpager.xml b/app/src/main/res/layout/activity_tablayout_viewpager.xml index eb11f791a3..90564023b4 100644 --- a/app/src/main/res/layout/activity_tablayout_viewpager.xml +++ b/app/src/main/res/layout/activity_tablayout_viewpager.xml @@ -1,28 +1,29 @@ - + - + + android:id="@+id/activity_tab_container" + android:layout_width="match_parent" + android:layout_height="@dimen/tab_layout_height" + android:background="@color/background_white"> - + + android:id="@+id/activity_tab_layout" + android:layout_width="match_parent" + android:layout_height="@dimen/tab_layout_height" + app:tabTextAppearance="@style/TabLayoutTextAppearance" /> + android:id="@+id/activity_view_pager" + android:layout_width="match_parent" + android:layout_height="match_parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_toolbox.xml b/app/src/main/res/layout/activity_toolbox.xml index ab7bd48e0d..cec4f2b217 100644 --- a/app/src/main/res/layout/activity_toolbox.xml +++ b/app/src/main/res/layout/activity_toolbox.xml @@ -28,7 +28,7 @@ android:background="@color/background" android:gravity="center" app:elevation="0dp" - app:layout_behavior="com.gh.common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> diff --git a/app/src/main/res/layout/activity_toolbox_block.xml b/app/src/main/res/layout/activity_toolbox_block.xml index d9ecced122..22785e7e0e 100644 --- a/app/src/main/res/layout/activity_toolbox_block.xml +++ b/app/src/main/res/layout/activity_toolbox_block.xml @@ -28,7 +28,7 @@ android:background="@color/background" android:gravity="center" app:elevation="0dp" - app:layout_behavior="com.gh.common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - @@ -48,7 +48,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" - app:layout_behavior="com.gh.common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> + android:background="@color/background_white"> - - - - + - diff --git a/app/src/main/res/layout/amway_comment_item.xml b/app/src/main/res/layout/amway_comment_item.xml index 3eadc2c01b..b615b8ea9e 100644 --- a/app/src/main/res/layout/amway_comment_item.xml +++ b/app/src/main/res/layout/amway_comment_item.xml @@ -97,7 +97,7 @@ app:layout_constraintLeft_toLeftOf="@id/gameContainer" app:layout_constraintTop_toBottomOf="@id/gameContainer"> - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/ask_search_item.xml b/app/src/main/res/layout/ask_search_item.xml deleted file mode 100644 index f2e9ab34c9..0000000000 --- a/app/src/main/res/layout/ask_search_item.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/ask_search_question_item.xml b/app/src/main/res/layout/ask_search_question_item.xml deleted file mode 100644 index cdc1657161..0000000000 --- a/app/src/main/res/layout/ask_search_question_item.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - diff --git a/app/src/main/res/layout/ask_selectgame_item.xml b/app/src/main/res/layout/ask_selectgame_item.xml deleted file mode 100644 index 340e7c2152..0000000000 --- a/app/src/main/res/layout/ask_selectgame_item.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/catalog_banner_item.xml b/app/src/main/res/layout/catalog_banner_item.xml index 5ac11fa548..2f622b4562 100644 --- a/app/src/main/res/layout/catalog_banner_item.xml +++ b/app/src/main/res/layout/catalog_banner_item.xml @@ -6,7 +6,7 @@ android:layout_marginLeft="16dp" android:layout_marginRight="16dp"> - - + android:paddingTop="12dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/category_game_item.xml b/app/src/main/res/layout/category_game_item.xml index 0a8827b141..59b94c8855 100644 --- a/app/src/main/res/layout/category_game_item.xml +++ b/app/src/main/res/layout/category_game_item.xml @@ -245,7 +245,7 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/community_search_columm_item.xml b/app/src/main/res/layout/community_search_columm_item.xml deleted file mode 100644 index 9aa7c2e7fd..0000000000 --- a/app/src/main/res/layout/community_search_columm_item.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/community_search_special_columm_item.xml b/app/src/main/res/layout/community_search_special_columm_item.xml deleted file mode 100644 index f11eeef598..0000000000 --- a/app/src/main/res/layout/community_search_special_columm_item.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/community_select_opened_head_item.xml b/app/src/main/res/layout/community_select_opened_head_item.xml deleted file mode 100644 index e0c1de271b..0000000000 --- a/app/src/main/res/layout/community_select_opened_head_item.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/community_select_opened_item.xml b/app/src/main/res/layout/community_select_opened_item.xml deleted file mode 100644 index a7f77c17a0..0000000000 --- a/app/src/main/res/layout/community_select_opened_item.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/daily_task_item.xml b/app/src/main/res/layout/daily_task_item.xml index 01feafcf4d..78e4299c4d 100644 --- a/app/src/main/res/layout/daily_task_item.xml +++ b/app/src/main/res/layout/daily_task_item.xml @@ -9,6 +9,7 @@ android:background="#E9F3FF"> - - - - + diff --git a/app/src/main/res/layout/dialog_game_big_event.xml b/app/src/main/res/layout/dialog_game_big_event.xml index 2cd3233c7e..385a8ef492 100644 --- a/app/src/main/res/layout/dialog_game_big_event.xml +++ b/app/src/main/res/layout/dialog_game_big_event.xml @@ -28,7 +28,7 @@ android:text="游戏动态"/> - - - + - - - + diff --git a/app/src/main/res/layout/dialog_privacy_protocol.xml b/app/src/main/res/layout/dialog_privacy_protocol.xml index ebed4dd031..12086af979 100644 --- a/app/src/main/res/layout/dialog_privacy_protocol.xml +++ b/app/src/main/res/layout/dialog_privacy_protocol.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - app:cardBackgroundColor="@color/white" + app:cardBackgroundColor="@color/background_white" app:cardCornerRadius="8dp" app:cardElevation="0dp"> @@ -42,7 +42,7 @@ android:id="@+id/titleContainer" android:layout_width="match_parent" android:layout_height="64dp" - android:background="@color/white" + android:background="@color/background_white" android:gravity="center" android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/dialog_servers_calendear_detail.xml b/app/src/main/res/layout/dialog_servers_calendear_detail.xml index 12b41e95f1..94d0618053 100644 --- a/app/src/main/res/layout/dialog_servers_calendear_detail.xml +++ b/app/src/main/res/layout/dialog_servers_calendear_detail.xml @@ -55,7 +55,7 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/feedback" /> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_simulaor_game_guide.xml b/app/src/main/res/layout/dialog_simulaor_game_guide.xml index 019395e904..ed538b018a 100644 --- a/app/src/main/res/layout/dialog_simulaor_game_guide.xml +++ b/app/src/main/res/layout/dialog_simulaor_game_guide.xml @@ -10,6 +10,7 @@ android:layout_height="wrap_content" android:layout_marginLeft="6dp" android:layout_marginRight="6dp" + app:cardBackgroundColor="@color/background_white" app:cardCornerRadius="12dp" app:cardElevation="0dp"> diff --git a/app/src/main/res/layout/dialog_stop_service_explanation.xml b/app/src/main/res/layout/dialog_stop_service_explanation.xml index 571e6860c1..edb508524e 100644 --- a/app/src/main/res/layout/dialog_stop_service_explanation.xml +++ b/app/src/main/res/layout/dialog_stop_service_explanation.xml @@ -26,7 +26,7 @@ android:textSize="16sp" android:textStyle="bold" /> - - + - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_wechat_reserve_success.xml b/app/src/main/res/layout/dialog_wechat_reserve_success.xml index dd74712374..dfa635ff0d 100644 --- a/app/src/main/res/layout/dialog_wechat_reserve_success.xml +++ b/app/src/main/res/layout/dialog_wechat_reserve_success.xml @@ -5,7 +5,7 @@ android:layout_height="wrap_content" android:background="@drawable/background_shape_white_radius_8"> - - + - diff --git a/app/src/main/res/layout/download_simulator_dialog.xml b/app/src/main/res/layout/download_simulator_dialog.xml index 23678f7002..edbaa177a0 100644 --- a/app/src/main/res/layout/download_simulator_dialog.xml +++ b/app/src/main/res/layout/download_simulator_dialog.xml @@ -13,7 +13,7 @@ android:layout_marginTop="48dp" android:layout_marginBottom="10dp" android:text="正在下载模拟器,请耐心等待" - android:textColor="@color/black" + android:textColor="@color/text_black" android:textSize="16sp" android:textStyle="bold" app:layout_constraintLeft_toLeftOf="parent" @@ -54,7 +54,7 @@ android:background="@drawable/app_updating_percent_bg" android:gravity="center_horizontal" android:paddingTop="2dp" - android:textColor="@color/white" + android:textColor="@color/text_white" android:textSize="13sp" app:layout_constraintBottom_toTopOf="@id/progress_anchor" app:layout_constraintLeft_toLeftOf="@id/progress_anchor" diff --git a/app/src/main/res/layout/downloadmanager.xml b/app/src/main/res/layout/downloadmanager.xml index 64d3e20d28..7633181cc6 100644 --- a/app/src/main/res/layout/downloadmanager.xml +++ b/app/src/main/res/layout/downloadmanager.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/app/src/main/res/layout/empty_control_video.xml b/app/src/main/res/layout/empty_control_video.xml index b4f3e316cc..1895a48f1d 100644 --- a/app/src/main/res/layout/empty_control_video.xml +++ b/app/src/main/res/layout/empty_control_video.xml @@ -1,5 +1,5 @@ - - - + diff --git a/app/src/main/res/layout/followers_or_fans_item.xml b/app/src/main/res/layout/followers_or_fans_item.xml index fb5e08ec64..d5837f4d6b 100644 --- a/app/src/main/res/layout/followers_or_fans_item.xml +++ b/app/src/main/res/layout/followers_or_fans_item.xml @@ -106,7 +106,7 @@ app:layout_constraintLeft_toRightOf="@id/user_name" app:layout_constraintTop_toTopOf="@id/user_name" /> - - + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - @@ -124,7 +124,7 @@ android:textStyle="bold" /> - + diff --git a/app/src/main/res/layout/fragment_answer_detail.xml b/app/src/main/res/layout/fragment_answer_detail.xml index 82bebd227f..01c9b886a2 100644 --- a/app/src/main/res/layout/fragment_answer_detail.xml +++ b/app/src/main/res/layout/fragment_answer_detail.xml @@ -3,7 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="@color/background"> - - diff --git a/app/src/main/res/layout/fragment_answer_detail_skeleton.xml b/app/src/main/res/layout/fragment_answer_detail_skeleton.xml index ad6b7d8ea1..7db4a53910 100644 --- a/app/src/main/res/layout/fragment_answer_detail_skeleton.xml +++ b/app/src/main/res/layout/fragment_answer_detail_skeleton.xml @@ -3,7 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="@color/background"> + android:background="@color/background_white"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - + android:background="@color/background_white"> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_article_detail_comment.xml b/app/src/main/res/layout/fragment_article_detail_comment.xml index 1a278644bc..2e6b5fb9be 100644 --- a/app/src/main/res/layout/fragment_article_detail_comment.xml +++ b/app/src/main/res/layout/fragment_article_detail_comment.xml @@ -8,15 +8,15 @@ + android:layout_height="@dimen/dialog_panel_titlebar_height" /> + android:layout_height="match_parent" + android:background="@color/background"> - - - @@ -25,7 +25,7 @@ android:layout_height = "wrap_content" android:background = "@color/white" android:gravity = "center" - app:layout_behavior = "com.gh.common.view.FixAppBarLayoutBehavior" > + app:layout_behavior = ".common.view.FixAppBarLayoutBehavior" > @@ -37,4 +37,4 @@ app:layout_behavior = "@string/appbar_scrolling_view_behavior" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_avatar_border.xml b/app/src/main/res/layout/fragment_avatar_border.xml index a00355a54d..a7b2bf458e 100644 --- a/app/src/main/res/layout/fragment_avatar_border.xml +++ b/app/src/main/res/layout/fragment_avatar_border.xml @@ -20,9 +20,9 @@ android:background="@color/background" android:fitsSystemWindows="true" android:gravity="center" - app:layout_behavior="com.gh.common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - - @@ -124,7 +124,7 @@ android:textStyle="bold" /> - + - @@ -156,7 +156,7 @@ app:layout_constraintEnd_toStartOf="@+id/alphaSeek" app:layout_constraintStart_toStartOf="parent" /> - - + android:background="@color/background_white"> - + android:background="@color/background_white"> @@ -103,6 +104,7 @@ diff --git a/app/src/main/res/layout/fragment_category.xml b/app/src/main/res/layout/fragment_category.xml index 99b9900d49..fda43337dc 100644 --- a/app/src/main/res/layout/fragment_category.xml +++ b/app/src/main/res/layout/fragment_category.xml @@ -1,10 +1,10 @@ + android:layout_height="match_parent" + android:background="@color/background_white"> + android:layout_height="match_parent" + android:background="@color/background" /> + android:background="@color/background_white"> diff --git a/app/src/main/res/layout/fragment_category_list.xml b/app/src/main/res/layout/fragment_category_list.xml index f0c25eef08..f2981a7a61 100644 --- a/app/src/main/res/layout/fragment_category_list.xml +++ b/app/src/main/res/layout/fragment_category_list.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/white"> + android:background="@color/background_white"> - @@ -98,7 +98,7 @@ android:layout_alignParentBottom="true" android:background="@color/divider" /> - - diff --git a/app/src/main/res/layout/fragment_community_home.xml b/app/src/main/res/layout/fragment_community_home.xml index c64a7e2343..538d96893d 100644 --- a/app/src/main/res/layout/fragment_community_home.xml +++ b/app/src/main/res/layout/fragment_community_home.xml @@ -25,7 +25,7 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toBottomOf="@+id/tabContainer" /> - - + android:orientation="vertical" + android:background="@color/background"> + android:background="@color/background_white" /> @@ -36,7 +37,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:text="@string/concern_recommend" - android:textColor="@color/white" + android:textColor="@color/text_white" android:textSize="15sp" android:textStyle="bold" /> @@ -57,7 +58,7 @@ android:id="@+id/concern_rv_recommend" android:layout_width="match_parent" android:layout_height="300dp" - android:background="@color/white" + android:background="@color/background_white" android:overScrollMode="never" android:visibility="gone" /> diff --git a/app/src/main/res/layout/fragment_energy_center.xml b/app/src/main/res/layout/fragment_energy_center.xml index 3f72b8d317..df89218e7f 100644 --- a/app/src/main/res/layout/fragment_energy_center.xml +++ b/app/src/main/res/layout/fragment_energy_center.xml @@ -2,14 +2,15 @@ + android:background="@color/background_white"> - - diff --git a/app/src/main/res/layout/fragment_energy_house.xml b/app/src/main/res/layout/fragment_energy_house.xml index 553d21793f..89207c0c33 100644 --- a/app/src/main/res/layout/fragment_energy_house.xml +++ b/app/src/main/res/layout/fragment_energy_house.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/cl" - android:background="@color/white" + android:background="@color/background_white" android:layout_width="match_parent" android:layout_height="match_parent"> @@ -19,14 +19,14 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" /> - - - - - diff --git a/app/src/main/res/layout/fragment_followed_game.xml b/app/src/main/res/layout/fragment_followed_game.xml index 907c12ee65..2bbd613b06 100644 --- a/app/src/main/res/layout/fragment_followed_game.xml +++ b/app/src/main/res/layout/fragment_followed_game.xml @@ -35,7 +35,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:text="@string/concern_recommend" - android:textColor="@color/white" + android:textColor="@color/text_white" android:textSize="15sp" android:textStyle="bold" /> @@ -56,7 +56,7 @@ android:id="@+id/concern_rv_recommend" android:layout_width="match_parent" android:layout_height="300dp" - android:background="@color/white" + android:background="@color/background_white" android:overScrollMode="never" android:visibility="gone" /> @@ -82,7 +82,7 @@ android:drawablePadding="4dp" android:textSize="12sp" android:drawableLeft="@drawable/ico_concern" - android:textColor="@color/white" + android:textColor="@color/text_white" android:text="管理关注 >" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_forum.xml b/app/src/main/res/layout/fragment_forum.xml index a8fef88f84..e68be88a9e 100644 --- a/app/src/main/res/layout/fragment_forum.xml +++ b/app/src/main/res/layout/fragment_forum.xml @@ -96,13 +96,14 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent"> - + + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - - - - - - @@ -39,7 +39,7 @@ android:layout_height="wrap_content" android:background="@color/white" android:gravity="center" - app:layout_behavior="com.gh.common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - + + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - + android:background="@color/background_white" /> - + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - @@ -80,7 +80,7 @@ android:paddingRight="16dp" android:paddingBottom="16dp"> - + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - - + - - + android:layout_height="match_parent" + android:background="@color/background"> - @@ -77,6 +78,7 @@ android:id="@+id/layout_fragment_content" android:layout_width="match_parent" android:layout_height="0dp" + android:background="@color/background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" diff --git a/app/src/main/res/layout/fragment_gamedetail.xml b/app/src/main/res/layout/fragment_gamedetail.xml index 8a257c9d54..d030be05ef 100644 --- a/app/src/main/res/layout/fragment_gamedetail.xml +++ b/app/src/main/res/layout/fragment_gamedetail.xml @@ -1,5 +1,5 @@ - - @@ -110,4 +110,4 @@ android:layout_marginBottom="164dp" android:visibility="invisible" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_help_contaier.xml b/app/src/main/res/layout/fragment_help_contaier.xml index 3c7c162873..24c91382e4 100644 --- a/app/src/main/res/layout/fragment_help_contaier.xml +++ b/app/src/main/res/layout/fragment_help_contaier.xml @@ -14,7 +14,7 @@ android:id="@+id/search_bar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/white" + android:background="@color/background_white" android:focusableInTouchMode="true"> + android:background="@color/background_white" /> + android:layout_height="match_parent" + android:background="@color/background_white"> - @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:elevation="0dp" - app:layout_behavior="com.gh.common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - - @@ -704,7 +704,7 @@ app:layout_constraintTop_toTopOf="parent" app:tabTextAppearance="@style/TabLayoutTextAppearance" /> - - + - - @@ -48,7 +48,7 @@ android:visibility="gone" android:src="@drawable/ic_video_detail_menu_more"/> - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_invite.xml b/app/src/main/res/layout/fragment_invite.xml index 577898c89f..c7cf0aff7b 100644 --- a/app/src/main/res/layout/fragment_invite.xml +++ b/app/src/main/res/layout/fragment_invite.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/background" android:orientation="vertical"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - @@ -46,7 +46,7 @@ - + - - - - @@ -240,4 +240,4 @@ android:layout_marginLeft="2dp" android:src="@drawable/ic_login_close"/> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 49aa686a56..83cb23c90b 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -1,4 +1,4 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_home.xml b/app/src/main/res/layout/fragment_main_home.xml index 5ea97f08b2..d0b7da4fd9 100644 --- a/app/src/main/res/layout/fragment_main_home.xml +++ b/app/src/main/res/layout/fragment_main_home.xml @@ -10,7 +10,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - @@ -24,7 +24,7 @@ android:layout_height="wrap_content" android:background="@color/transparent" app:elevation="0dp" - app:layout_behavior="com.gh.common.view.FixAppBarLayoutBehavior"> + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - - @@ -462,7 +462,7 @@ - + - - - diff --git a/app/src/main/res/layout/fragment_password_setting.xml b/app/src/main/res/layout/fragment_password_setting.xml index 658fc1a57b..fc60bf57e5 100644 --- a/app/src/main/res/layout/fragment_password_setting.xml +++ b/app/src/main/res/layout/fragment_password_setting.xml @@ -40,7 +40,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleTv" /> - + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> - - - @@ -339,7 +339,7 @@ - + - + android:background="@color/background_white"> - - + - - + + android:background="@color/background_white"> - - + app:layout_behavior=".common.view.FixAppBarLayoutBehavior"> + + + + + + + + + + + - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_video_comment_list.xml b/app/src/main/res/layout/fragment_video_comment_list.xml index f5e4906232..1d816d8442 100644 --- a/app/src/main/res/layout/fragment_video_comment_list.xml +++ b/app/src/main/res/layout/fragment_video_comment_list.xml @@ -12,13 +12,13 @@ + android:background="@color/background_white" /> @@ -43,7 +43,7 @@ android:text="0" android:textColor="@color/text_subtitleDesc" /> - diff --git a/app/src/main/res/layout/fragment_video_data.xml b/app/src/main/res/layout/fragment_video_data.xml index 19ff8b3e8b..47535acfb7 100644 --- a/app/src/main/res/layout/fragment_video_data.xml +++ b/app/src/main/res/layout/fragment_video_data.xml @@ -7,7 +7,7 @@ + android:background="@color/background_white"> - diff --git a/app/src/main/res/layout/fragment_video_detail_container.xml b/app/src/main/res/layout/fragment_video_detail_container.xml index 6baa3dd889..2738cd85e9 100644 --- a/app/src/main/res/layout/fragment_video_detail_container.xml +++ b/app/src/main/res/layout/fragment_video_detail_container.xml @@ -26,7 +26,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - @@ -57,7 +57,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"> - diff --git a/app/src/main/res/layout/fragment_video_poster.xml b/app/src/main/res/layout/fragment_video_poster.xml index 1cdfb38e63..8ef5406566 100644 --- a/app/src/main/res/layout/fragment_video_poster.xml +++ b/app/src/main/res/layout/fragment_video_poster.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:background="@color/background_white"> - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_wrapper_toolbar.xml b/app/src/main/res/layout/fragment_wrapper_toolbar.xml index 8d7bca88ef..8ceb24edce 100644 --- a/app/src/main/res/layout/fragment_wrapper_toolbar.xml +++ b/app/src/main/res/layout/fragment_wrapper_toolbar.xml @@ -6,7 +6,7 @@ android:orientation="vertical" android:paddingBottom="@dimen/main_bottom_tab_height"> - - - - - - - - - - - + diff --git a/app/src/main/res/layout/game_image_item.xml b/app/src/main/res/layout/game_image_item.xml index 3336df74f8..729dc23871 100644 --- a/app/src/main/res/layout/game_image_item.xml +++ b/app/src/main/res/layout/game_image_item.xml @@ -68,11 +68,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/game_image_icon" - android:background="@color/white" + android:background="@color/background_white" android:paddingLeft="20dp" android:paddingTop="13dp" android:paddingBottom="13dp" - android:textColor="@color/black" + android:textColor="@color/text_black" android:textSize="12sp" android:visibility="gone" fresco:layout_constraintLeft_toLeftOf="parent" diff --git a/app/src/main/res/layout/game_item.xml b/app/src/main/res/layout/game_item.xml index c5c5cedaa8..17e5a7f53d 100644 --- a/app/src/main/res/layout/game_item.xml +++ b/app/src/main/res/layout/game_item.xml @@ -247,7 +247,7 @@ app:layout_constraintLeft_toLeftOf="@+id/gameDesSpace" app:layout_constraintTop_toTopOf="@+id/gameDesSpace" /> - - - - @@ -274,7 +273,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - - - - - - + android:background="@color/background_white"> + \ No newline at end of file diff --git a/app/src/main/res/layout/home_amway_item.xml b/app/src/main/res/layout/home_amway_item.xml index eb2932cb95..47ced1409b 100644 --- a/app/src/main/res/layout/home_amway_item.xml +++ b/app/src/main/res/layout/home_amway_item.xml @@ -175,7 +175,7 @@ app:layout_constraintLeft_toRightOf="@id/sdv_user_badge" app:layout_constraintTop_toTopOf="@id/user_icon_container" /> - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_article_detail_comment.xml b/app/src/main/res/layout/item_article_detail_comment.xml index ccac2f07a2..0dc086e03f 100644 --- a/app/src/main/res/layout/item_article_detail_comment.xml +++ b/app/src/main/res/layout/item_article_detail_comment.xml @@ -6,7 +6,18 @@ android:layout_height="wrap_content" android:background="@color/background_white"> - + + + + - - + app:layout_constraintEnd_toEndOf="parent"> + - + + + + + + - + android:layout_height="wrap_content" + android:background="@color/background"> - diff --git a/app/src/main/res/layout/item_choose_games.xml b/app/src/main/res/layout/item_choose_games.xml index 73b752ca58..8bbb18a831 100644 --- a/app/src/main/res/layout/item_choose_games.xml +++ b/app/src/main/res/layout/item_choose_games.xml @@ -54,7 +54,7 @@ app:layout_constraintStart_toEndOf="@+id/gameIcon" app:layout_constraintTop_toBottomOf="@+id/gameNameTv" /> - - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_skeleton_game_detail_gallery.xml b/app/src/main/res/layout/item_skeleton_game_detail_gallery.xml index 62120b21f4..3ef0779e53 100644 --- a/app/src/main/res/layout/item_skeleton_game_detail_gallery.xml +++ b/app/src/main/res/layout/item_skeleton_game_detail_gallery.xml @@ -13,7 +13,7 @@ android:layout_marginTop="24dp" android:background="@drawable/bg_skeleton_radius_4" /> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_skeleton_game_detail_video.xml b/app/src/main/res/layout/item_skeleton_game_detail_video.xml index 0ba4e75a5b..614b583e43 100644 --- a/app/src/main/res/layout/item_skeleton_game_detail_video.xml +++ b/app/src/main/res/layout/item_skeleton_game_detail_video.xml @@ -13,7 +13,7 @@ android:layout_marginTop="24dp" android:background="@drawable/bg_skeleton_radius_4" /> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_skeleton_horizontal_forum_list.xml b/app/src/main/res/layout/item_skeleton_horizontal_forum_list.xml index 0c2d9834c4..6e9ec1adad 100644 --- a/app/src/main/res/layout/item_skeleton_horizontal_forum_list.xml +++ b/app/src/main/res/layout/item_skeleton_horizontal_forum_list.xml @@ -6,7 +6,7 @@ - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_skeleton_horizontal_simple_list.xml b/app/src/main/res/layout/item_skeleton_horizontal_simple_list.xml index 1309fc5d23..3359901f2c 100644 --- a/app/src/main/res/layout/item_skeleton_horizontal_simple_list.xml +++ b/app/src/main/res/layout/item_skeleton_horizontal_simple_list.xml @@ -14,7 +14,7 @@ android:layout_marginStart="16dp" android:background="@drawable/bg_skeleton_radius_4" /> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_skeleton_simple_gallery_subject.xml b/app/src/main/res/layout/item_skeleton_simple_gallery_subject.xml index 470a8a1777..85bb260ea5 100644 --- a/app/src/main/res/layout/item_skeleton_simple_gallery_subject.xml +++ b/app/src/main/res/layout/item_skeleton_simple_gallery_subject.xml @@ -14,7 +14,7 @@ android:layout_marginStart="16dp" android:background="@drawable/bg_skeleton_radius_4" /> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/item_user_comment_history.xml b/app/src/main/res/layout/item_user_comment_history.xml index 741d45fb0d..5d938f8fcd 100644 --- a/app/src/main/res/layout/item_user_comment_history.xml +++ b/app/src/main/res/layout/item_user_comment_history.xml @@ -72,7 +72,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - diff --git a/app/src/main/res/layout/item_video_desc_top.xml b/app/src/main/res/layout/item_video_desc_top.xml index c3dbf8b7b5..82cb7de9e6 100644 --- a/app/src/main/res/layout/item_video_desc_top.xml +++ b/app/src/main/res/layout/item_video_desc_top.xml @@ -4,13 +4,13 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/white" + android:background="@color/background_white" android:paddingLeft="8dp" android:paddingTop="16dp" android:paddingRight="16dp"> - + type="com.gh.gamecenter.common.callback.OnViewClickListener" /> - + - + + android:layout_width="0dp" + android:layout_height="30dp" + android:layout_marginRight="1dp" + android:layout_weight="15" + android:background="@color/background_white" + android:gravity="center" + android:maxLines="2" + android:text="时间" + android:textColor="@color/title" + android:textSize="12sp" /> + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_marginRight="1dp" + android:layout_weight="29" + android:background="@color/background_white" + android:gravity="center" + android:maxLines="2" + android:text="名字" + android:textColor="@color/title" + android:textSize="12sp" /> + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="15" + android:background="@color/background_white" + android:gravity="center" + android:maxLines="2" + android:text="备注" + android:textColor="@color/title" + android:textSize="12sp" /> diff --git a/app/src/main/res/layout/layout_article_item_video.xml b/app/src/main/res/layout/layout_article_item_video.xml index aca7bd94a8..c9e6bbf129 100644 --- a/app/src/main/res/layout/layout_article_item_video.xml +++ b/app/src/main/res/layout/layout_article_item_video.xml @@ -1,5 +1,5 @@ - - - + diff --git a/app/src/main/res/layout/layout_category_filter.xml b/app/src/main/res/layout/layout_category_filter.xml index 2040dc194e..d5df07d250 100644 --- a/app/src/main/res/layout/layout_category_filter.xml +++ b/app/src/main/res/layout/layout_category_filter.xml @@ -1,6 +1,7 @@ - - - + android:background="@color/text_black" /> - @@ -33,7 +33,7 @@ android:gravity="center" android:ellipsize="end" android:maxLines="1" - android:textColor="#000000" + android:textColor="@color/text_black" android:textSize="12sp" tools:text="空海爭霸" /> @@ -53,7 +53,7 @@ android:layout_height="wrap_content" android:gravity="center" android:maxLines="1" - android:textColor="#000000" + android:textColor="@color/text_black" android:textSize="12sp" tools:text="地海爭霸" /> \ No newline at end of file diff --git a/app/src/main/res/layout/layout_video_detail_surface.xml b/app/src/main/res/layout/layout_video_detail_surface.xml index c9cf4ad86f..f9cddd7324 100644 --- a/app/src/main/res/layout/layout_video_detail_surface.xml +++ b/app/src/main/res/layout/layout_video_detail_surface.xml @@ -1,5 +1,5 @@ - - + diff --git a/app/src/main/res/layout/message_item.xml b/app/src/main/res/layout/message_item.xml index 867bce9fb0..a50288d39e 100644 --- a/app/src/main/res/layout/message_item.xml +++ b/app/src/main/res/layout/message_item.xml @@ -6,40 +6,29 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/reuse_listview_item_style" - android:paddingLeft="20dp" - android:paddingTop="10dp" - android:paddingRight="20dp" - android:paddingBottom="15dp"> + android:paddingRight="16dp" + android:paddingBottom="16dp"> - - - - - - - + app:layout_constraintTop_toTopOf="parent" /> @@ -47,10 +36,12 @@ android:id="@+id/message_user_name" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="12dp" - android:textColor="@color/text_black" - android:textSize="12sp" - app:layout_constraintLeft_toRightOf="@id/message_icon_container" + android:layout_marginTop="18dp" + android:layout_marginLeft="3dp" + android:includeFontPadding="false" + android:textColor="@color/text_title" + android:textSize="14sp" + app:layout_constraintLeft_toRightOf="@id/message_user_icon" app:layout_constraintTop_toTopOf="parent" tools:text="欢喜哥" /> @@ -58,111 +49,91 @@ android:id="@+id/message_user_more" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:includeFontPadding="false" android:textColor="@color/theme_font" - android:textSize="12sp" + android:textSize="14sp" android:visibility="visible" app:layout_constraintLeft_toRightOf="@id/message_user_name" - app:layout_constraintTop_toTopOf="parent" + app:layout_constraintTop_toTopOf="@id/message_user_name" tools:text="等2人" /> - + tools:text="这是一个神奇的饿回答这是一个神奇的饿回答这是一个神奇的饿回答这是一个神奇的饿回答这是一个神奇的饿回答这是一个神奇的饿回答这是一个神奇的饿回答这是一个神奇的饿回答这是一个神奇的饿回答" /> - - - - - - - - - - + - + android:textColor="@color/text_subtitleDesc" + android:textSize="12sp" + tools:text="我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容" + app:layout_constrainedWidth="true" + app:layout_constraintHorizontal_bias="0" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toLeftOf="@+id/message_original_icon" /> + diff --git a/app/src/main/res/layout/message_item_top.xml b/app/src/main/res/layout/message_item_top.xml index 1b4f21f76e..ac576968a0 100644 --- a/app/src/main/res/layout/message_item_top.xml +++ b/app/src/main/res/layout/message_item_top.xml @@ -1,15 +1,19 @@ - + android:layout_height="wrap_content" + android:paddingBottom="8dp"> + android:background="@drawable/reuse_listview_item_style" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toLeftOf="@+id/message_invite" + app:layout_constraintTop_toTopOf="parent"> + android:background="@drawable/reuse_listview_item_style" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintLeft_toRightOf="@+id/message_vote" + app:layout_constraintRight_toLeftOf="@+id/message_service" + app:layout_constraintTop_toTopOf="parent"> + android:background="@drawable/reuse_listview_item_style" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintLeft_toRightOf="@+id/message_invite" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent"> - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/message_kefu_item.xml b/app/src/main/res/layout/message_kefu_item.xml index d720eb914e..30d42c68fa 100644 --- a/app/src/main/res/layout/message_kefu_item.xml +++ b/app/src/main/res/layout/message_kefu_item.xml @@ -82,7 +82,7 @@ android:background="@drawable/message_unread_hint" /> - diff --git a/app/src/main/res/layout/news_image2_item.xml b/app/src/main/res/layout/news_image2_item.xml index 9af9f8bdd3..e7a040625a 100644 --- a/app/src/main/res/layout/news_image2_item.xml +++ b/app/src/main/res/layout/news_image2_item.xml @@ -90,7 +90,7 @@ android:layout_alignParentRight="true" android:gravity="center" android:text="@string/news_activity" - android:textColor="@color/white" + android:textColor="@color/text_white" android:textSize="10sp" /> diff --git a/app/src/main/res/layout/news_image3_item.xml b/app/src/main/res/layout/news_image3_item.xml index 1eeddc20fc..91ecd5c1e0 100644 --- a/app/src/main/res/layout/news_image3_item.xml +++ b/app/src/main/res/layout/news_image3_item.xml @@ -64,7 +64,7 @@ android:layout_alignParentRight="true" android:gravity="center" android:text="@string/news_activity" - android:textColor="@color/white" + android:textColor="@color/text_white" android:textSize="10sp" /> diff --git a/app/src/main/res/layout/novice_task_item.xml b/app/src/main/res/layout/novice_task_item.xml index e31cb78919..df8a72bdbe 100644 --- a/app/src/main/res/layout/novice_task_item.xml +++ b/app/src/main/res/layout/novice_task_item.xml @@ -26,7 +26,7 @@ android:includeFontPadding="false" android:maxEms="5" android:maxLines="1" - android:textColor="@color/text_title" + android:textColor="#333333" android:textSize="14sp" app:layout_constraintLeft_toLeftOf="@+id/taskIcon" app:layout_constraintRight_toLeftOf="@+id/taskNotice" @@ -53,7 +53,7 @@ android:layout_marginTop="8dp" android:background="@drawable/bg_energy_task_btn_normal" android:gravity="center" - android:textColor="@color/white" + android:textColor="@color/text_white" android:textSize="12sp" android:textStyle="bold" app:layout_constraintLeft_toLeftOf="parent" diff --git a/app/src/main/res/layout/personal_home_rating.xml b/app/src/main/res/layout/personal_home_rating.xml index b262489e1b..a63ea08d56 100644 --- a/app/src/main/res/layout/personal_home_rating.xml +++ b/app/src/main/res/layout/personal_home_rating.xml @@ -11,7 +11,7 @@ android:paddingTop="11dp" android:paddingRight="20dp"> - - - @@ -72,7 +72,7 @@ app:layout_constraintRight_toLeftOf="@id/filterDivider" app:layout_constraintTop_toTopOf="parent" />--> - - diff --git a/app/src/main/res/layout/piece_question_content.xml b/app/src/main/res/layout/piece_question_content.xml index 7d1544078b..d29a3b7cad 100644 --- a/app/src/main/res/layout/piece_question_content.xml +++ b/app/src/main/res/layout/piece_question_content.xml @@ -7,7 +7,7 @@ android:orientation="vertical" tools:showIn="@layout/questionsdetail_item"> - diff --git a/app/src/main/res/layout/popup_test_time.xml b/app/src/main/res/layout/popup_test_time.xml index 250b875feb..dbb1b39823 100644 --- a/app/src/main/res/layout/popup_test_time.xml +++ b/app/src/main/res/layout/popup_test_time.xml @@ -8,7 +8,7 @@ - - - - - - - - - + android:background="@color/background_white"> - + + @@ -125,6 +136,7 @@ android:id="@+id/vote" android:layout_width="wrap_content" android:layout_height="48dp" + android:layout_marginRight="20dp" android:drawableLeft="@drawable/comment_vote_selector" android:drawablePadding="4dp" android:gravity="center_vertical" diff --git a/app/src/main/res/layout/reuse_none_data.xml b/app/src/main/res/layout/reuse_none_data.xml index 7fef040a6f..550123f7a0 100644 --- a/app/src/main/res/layout/reuse_none_data.xml +++ b/app/src/main/res/layout/reuse_none_data.xml @@ -6,6 +6,7 @@ android:layout_gravity="center" android:gravity="center" android:orientation="vertical" + android:background="@color/background" android:visibility="gone"> - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/toolbox_item.xml b/app/src/main/res/layout/toolbox_item.xml index 6a042d0e3a..325abb35e7 100644 --- a/app/src/main/res/layout/toolbox_item.xml +++ b/app/src/main/res/layout/toolbox_item.xml @@ -3,7 +3,7 @@ xmlns:fresco = "http://schemas.android.com/apk/res-auto" android:layout_width = "match_parent" android:layout_height = "wrap_content" - android:background = "@color/white" + android:background = "@color/background_white" android:paddingBottom = "16dp" android:paddingLeft = "18dp" android:paddingRight = "18dp" diff --git a/app/src/main/res/layout/user_history_item.xml b/app/src/main/res/layout/user_history_item.xml new file mode 100644 index 0000000000..9c8b8062b0 --- /dev/null +++ b/app/src/main/res/layout/user_history_item.xml @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/video_albums_item.xml b/app/src/main/res/layout/video_albums_item.xml index 4c7a20ccbe..edc4d56102 100644 --- a/app/src/main/res/layout/video_albums_item.xml +++ b/app/src/main/res/layout/video_albums_item.xml @@ -1,7 +1,7 @@ + android:background="@color/background_white"> - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/viewimage_normal_item.xml b/app/src/main/res/layout/viewimage_normal_item.xml index 56098c0552..4dd8da0f40 100644 --- a/app/src/main/res/layout/viewimage_normal_item.xml +++ b/app/src/main/res/layout/viewimage_normal_item.xml @@ -1,10 +1,10 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_comment_detail.xml b/app/src/main/res/menu/menu_comment_detail.xml new file mode 100644 index 0000000000..3b63d7452f --- /dev/null +++ b/app/src/main/res/menu/menu_comment_detail.xml @@ -0,0 +1,17 @@ + +

+ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index d00d37054a..134b699a7a 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -1,311 +1,6 @@ - - #2888E0 - #332888E0 - - #EB9238 - - #E0393E - - #07A385 - - #2888E0 - #991383EB - - - #E0FFFFFF - #A3FFFFFF - #7AFFFFFF - #3DFFFFFF - @color/black - @color/white - - - #121212 - #000000 - #00121212 - - #333333 - - #1A000000 - - #66000000 - - #33000000 - - - @color/white - - @color/text_title - - @color/text_subtitleDesc - - #B3B3B3 - - - @color/divider - - - #0D000000 - - #14FFFFFF - - #d1e5f7 - - - #08FFFFFF - - - @color/theme - #06D0A8 - #FFB13C - @color/c7c7c7 - #A7A8B2 - - - #05C400 - #FFB13C - #FF6A28 - - - #FDA34D - - #1BA4FC - - #D63338 - - #FDA34D - - #2EC991 - - #ECECEC - - #30000000 - - #1668d0 - - #59d3ff - - #717171 - - #676767 - - #f8f8f8 - - #FF4E00 - - #175aa3 - - #60d6d5ff - - #949494 - - #454545 - - #e9e9e9 - - #FFB048 - - #F7F7F7 - - @color/white_alpha_20 - - #CCCCCC - #FFFDF2 - - #4BC3FF - - #ecfaff - - #FA8850 - - #39B5FA - - @android:color/black - #08000000 - #0D000000 - #1A000000 - #33000000 - #4D000000 - #99000000 - #66000000 - #80000000 - - #1AFFFFFF - #33FFFFFF - #66FFFFFF - #80FFFFFF - #99FFFFFF - #CCFFFFFF - #E6FFFFFF - @android:color/white - @android:color/white - @android:color/transparent - - #b3b3b3 - - #5C8399 - #5C9599 - #6F5EA8 - #996283 - #748054 - #946262 - - - #aaaaaa - #AAAAAA - @color/background - #c7c7c7 - #d6d5ff - @color/background - #e5e5e5 - #e6e6e6 - #ECF6FF - #EDEDED - @color/divider - #FFC247 - #FF9933 - #F4F5F6 - #CDF5F0 - #80000000 - #404040 - #ededed - #26262B - #1F1F23 - @color/text_subtitle - #F7F7F7 - #FFF6E6 - #EBF5FF - #3797FF - #EFF7FF - #806F9CEF - #EBFDFF - #7CE7F8 - #E6F8FA - #91F0FD - #F6FBFF - #50DCDC - #81B5FF - #20FFB5 - #00DDDD - #74FFFF - #60D5FF - #EDF5FC - #F2F7FC - #EBFAF7 - #b2b2b2 - @color/text_subtitleDesc - @color/text_title - #3A3A3A - #5d5d5d - #5D5D5D - #949494 - #fbfbfb - #d5d5d5 - #b3b3b3 - #B3B3B3 - @color/text_subtitle - #ff5151 - #ffbf00 - #FA8500 - #f67722 - #989898 - @color/text_title - #777777 - @color/background - #292929 - #00DD08 - #E0FFF9 - #F10000 - #EA3333 - #FF700F - #FF7C1F - #181927 - #e6f3ff - #1F89EC - #EEF5FB - #C1BFC9 - #FF5F14 - #FFDAA2 - #F9A755 - #FF9B06 - #D8D8D8 - @color/background - #3BABFF - #2461FF - #FF0000 - #A1A5B7 - #50556B - #979A9F - #C2C6CC - #C0C0C0 - #242529 - #ebebeb - #4BC7FF - @color/background - @color/background - #00DBB0 - #00B8B8 - #00D7B0 - #dddddd - #FFB749 - #FF6D3C - #F56614 - #FF6455 - #F0F8FF - #2A85FB - #F3F3F3 - #3CB9FF - #E8F3FF - #05CBA3 - #F2F3F7 - #EDF4FB - #2E96FF - #FFB84F - #FFEACC - #FEDD26 - #140B6D - #16161A - #28282E - #8798A8 - #3796FF - #213964 - #06CCF4 - #F8A142 - #f9f9f9 - #a9a9a9 - @color/text_subtitle - @color/text_title - #F9FAFB - #00CDEB - #80EFFF - #00BFDB - #00DFFF - #3682C2 - #F67722 - #4B4B4B - #FF925C - #3087D9 - #C0C6CC - #717C8E - #DAF7F1 - #FFE5E6 - #17C2A1 - #0089D1 - #00DBA4 - #07B896 - #279BFE - #C4C4C4 - - #99666666 - #6621282E \ No newline at end of file diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 6bd4722eed..3a94a4e102 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -76,14 +76,6 @@ fixed - - - - - - - - - - - - - - @@ -173,20 +122,6 @@ @drawable/fontsize_radio_style - - - - - - - - - - - - diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index fdbb391965..09c9199135 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -1,110 +1,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -114,80 +16,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 65dcd51f2e..134b699a7a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,319 +1,6 @@ - - #2496FF - #332496FF - #CC2496FF - - #FFA142 - - #FF4147 - - #06CEA8 - - #1383EB - #991383EB - - - #333333 - #666666 - #999999 - #CCCCCC - @color/white - @color/black - - - #F5F5F5 - #FFFFFF - #00F5F5F5 - - #EEEEEE - - #1A000000 - - #66000000 - - #33000000 - - - @color/white - - @color/text_5d5d5d - - @color/text_9a9a9a - - #B3B3B3 - - - @color/bg_ededed - - - #0D000000 - - #E1E1E1 - - #d1e5f7 - - - #F5F5F5 - - - @color/theme - #06D0A8 - #FFB13C - @color/c7c7c7 - #A7A8B2 - - - #05C400 - #FFB13C - #FF6A28 - - - #FDA34D - - #1BA4FC - - #D63338 - - #FDA34D - - #2EC991 - - #ECECEC - - #30000000 - - #1668d0 - - #59d3ff - - #717171 - - #676767 - - #f8f8f8 - - #FF4E00 - - #175aa3 - - #60d6d5ff - - #949494 - - #454545 - - #e9e9e9 - - #FFB048 - - #F7F7F7 - - @color/white_alpha_20 - - #CCCCCC - #FFFDF2 - - #4BC3FF - - #ecfaff - - #FA8850 - - #39B5FA - - @android:color/black - #08000000 - #0D000000 - #1A000000 - #33000000 - #4D000000 - #99000000 - #66000000 - #80000000 - - #1AFFFFFF - #33FFFFFF - #66FFFFFF - #80FFFFFF - #99FFFFFF - #CCFFFFFF - #E6FFFFFF - @android:color/white - @android:color/white - @android:color/transparent - - #b3b3b3 - - #5C8399 - #5C9599 - #6F5EA8 - #996283 - #748054 - #946262 - - - #aaaaaa - #AAAAAA - #dcdcdc - #c7c7c7 - #d6d5ff - #f8f8f8 - #e5e5e5 - #e6e6e6 - #ECF6FF - #EDEDED - #F2F2F2 - #FFC247 - #FF9933 - #F4F5F6 - #CDF5F0 - #EBF8FF - #80000000 - #404040 - #ededed - #26262B - #1F1F23 - #303030 - #F7F7F7 - #FFF6E6 - #EBF5FF - #3797FF - #EFF7FF - #806F9CEF - #EBFDFF - #7CE7F8 - #E6F8FA - #91F0FD - #F6FBFF - #50DCDC - #81B5FF - #20FFB5 - #00DDDD - #74FFFF - #60D5FF - #EDF5FC - #F2F7FC - #EBFAF7 - #FFF3EB - #F5F6F7 - #46DBAA - #b2b2b2 - #9a9a9a - #3a3a3a - #3A3A3A - #5d5d5d - #5D5D5D - #949494 - #fbfbfb - #d5d5d5 - #b3b3b3 - #B3B3B3 - #6c6c6c - #ff5151 - #ffbf00 - #FA8500 - #f67722 - #989898 - #444444 - #777777 - #f2f2f2 - #292929 - #00DD08 - #E0FFF9 - #F10000 - #EA3333 - #FF700F - #FF7C1F - #181927 - #e6f3ff - #1F89EC - #EEF5FB - #C1BFC9 - #FF5F14 - #FFDAA2 - #F9A755 - #FF9B06 - #D8D8D8 - #FAFAFA - #3BABFF - #2461FF - #FF0000 - #A1A5B7 - #50556B - #979A9F - #C2C6CC - #C0C0C0 - #242529 - #ebebeb - #4BC7FF - #F8F8F8 - #F0F0F0 - #00DBB0 - #00B8B8 - #00D7B0 - #dddddd - #FFB749 - #FF6D3C - #F56614 - #FF6455 - #F0F8FF - #2A85FB - #F3F3F3 - #3CB9FF - #E8F3FF - #05CBA3 - #F2F3F7 - #EDF4FB - #2E96FF - #FFB84F - #FFEACC - #FEDD26 - #140B6D - #16161A - #28282E - #8798A8 - #3796FF - #213964 - #06CCF4 - #F8A142 - #f9f9f9 - #a9a9a9 - #757575 - #0E0E0E - #F9FAFB - #00CDEB - #80EFFF - #00BFDB - #00DFFF - #3682C2 - #F67722 - #4B4B4B - #FF925C - #3087D9 - #C0C6CC - #717C8E - #DAF7F1 - #FFE5E6 - #17C2A1 - #0089D1 - #00DBA4 - #07B896 - #279BFE - #C4C4C4 - #FA8850 - #A2ADB8 - #CCFF5269 - - #99666666 - #6621282E \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 2bc18228d3..559ffc06f9 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,69 +1,5 @@ - - 20sp - 18sp - 16sp - 14sp - 13sp - 12sp - 11sp - 10sp - 0dp - - - 150dp - - 22dp - - 48dp - - 45dp - - 0.5dp - - 146dp - 81dp - - 80dp - 20dp - 55dp - - 54dp - - 16dp - 6dp - 4dp - - 122dp - - 300dp - - 20dp - 3dp - 14dp - - 48dp - - 40dp - 16dp - 4dp - - 113dp - - 16dp - - - \ No newline at end of file diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml index 3e9ad43cab..6418ecfb93 100644 --- a/app/src/main/res/values/ids.xml +++ b/app/src/main/res/values/ids.xml @@ -2,6 +2,5 @@ - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 148b5c4f92..ec423508d7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,7 +15,6 @@ 返回 请选出你要指定的游戏 请选择你希望开通问答的游戏 - 不需要内存缓存 全部开始 搜索中... 热门搜索 @@ -87,7 +86,6 @@ 暂无符合条件的游戏哦 请输入文字... 搜索 - 检查更新中... 帖子投稿 投票 正在寻找周围的小伙伴... @@ -293,10 +291,7 @@ 原创 正在反馈... 下载管理 - 分享跳转中... - 分享成功 - 分享已取消 - 分享失败 + 输入手机号码 输入验证码 获取验证码 @@ -401,7 +396,6 @@ 安装《%1$s》]]> 安装《%1$s》%2$s]]> - 取消关注游戏后,您将无法及时收到游戏的攻略、资讯等最新动态提醒。]]> 好友还没安装光环助手?请点这里]]> 未安装 的应用,确定删除吗?]]> 找到%1$d个安装包,占用%2$s空间]]> @@ -430,7 +424,6 @@ 最新评论 全部暂停 全部开始 - 解析包出错(可能被误删了),请重新下载 未开抢 领取 @@ -510,9 +503,7 @@ 图片不能大于%1$dMB,请重新选择 安装包不能大于%1$dGB,请重新选择 - https://www.ghzs.com/link?source=appshare100 - https://www.ghzs.com/link?source=appshare300 - https://and-static.ghzs.com/app-logo.png + 我的收藏 别话痨哦~休息一会再来评论吧~ 账号异常,暂时无法发表内容 @@ -779,19 +770,13 @@ 更换背景 安利墙 精彩评论 - 分享到 - 微信好友 - 朋友圈 - QQ好友 - QQ空间 - 微博 + 优秀评论 查看更多 祝贺!童鞋\n你已通过礼仪测试~ 好的 - 取消 - 确定 + 点击更换背景 提交反馈 @@ -856,13 +841,9 @@ 内容审核中 关注的人 - background_id - text_color_id - - - highResImage + 无力吐槽 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index c1c2590f5b..b8a11fe275 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -76,13 +76,6 @@ fixed - - - - - - - - - - - - - - - - - - + - - - diff --git a/dependencies.gradle b/dependencies.gradle index cda040ed5b..3d7f7ded12 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 28 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 530 - versionName = "5.9.0" + versionCode = 550 + versionName = "5.10.0" applicationId = "com.gh.gamecenter" // AndroidX @@ -120,4 +120,6 @@ ext { sentry = "4.3.0" lancet_version = "v1.0.6" + autoServiceVersion = "1.0-rc7" + arouterVersion = "1.5.1" } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 04f32aa994..fe2e54df4c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -73,4 +73,6 @@ android.injected.testOnly = false # 声明该属性可加快Flutter模块编译速度(Experimental) # android.nonTransitiveRClass=true +isRelease = false + diff --git a/init.gradle b/init.gradle index 7bc11978db..7414fa3bdd 100644 --- a/init.gradle +++ b/init.gradle @@ -26,6 +26,7 @@ allprojects { project -> classpath "com.bytedance.android.byteX:const-inline-plugin:${plugin_version}" classpath "com.bytedance.android.byteX:method-call-opt-plugin:${plugin_version}" classpath "com.bytedance.android.byteX:access-inline-plugin:${plugin_version}" + classpath "com.bytedance.android.byteX:field-assign-opt-plugin:${plugin_version}" } } repositories { @@ -47,6 +48,7 @@ allprojects { project -> project.apply plugin: 'bytex.const_inline' // inline 常量 https://github.com/bytedance/ByteX/blob/master/const-inline-plugin/README-zh.md project.apply plugin: 'bytex.method_call_opt' // 移除 log https://github.com/bytedance/ByteX/blob/master/method-call-opt-plugin/README-zh.md project.apply plugin: 'bytex.access_inline' // inline access https://github.com/bytedance/ByteX/blob/master/access-inline-plugin/README-zh.md + project.apply plugin: 'bytex.field_assign_opt' //去除重复的赋值 https://github.com/bytedance/ByteX/blob/master/field-assign-opt-plugin/README-zh.md project.const_inline { enable true @@ -106,6 +108,17 @@ allprojects { project -> enableInDebug false logLevel "DEBUG" } + + project.field_assign_opt { + enable false + enableInDebug false + logLevel "INFO" + removeLineNumber true // 同时移除赋值对应的行号信息(如果有的话),默认true。 + whiteList = [ + //白名单,ClassName.FieldName 。不支持模式匹配 + //"android.support.constraint.solver.ArrayRow.isSimpleDefinition" + ] + } } } diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 87ea0fecbb..6808635682 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 87ea0fecbba4e6d9b5ed2edd9279d856cb698aed +Subproject commit 6808635682566021bbf3083105cdd59f79b83c44 diff --git a/module_common/.gitignore b/module_common/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/module_common/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/module_common/build.gradle b/module_common/build.gradle new file mode 100644 index 0000000000..1bb5801a79 --- /dev/null +++ b/module_common/build.gradle @@ -0,0 +1,83 @@ +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' + id 'kotlin-kapt' + id 'kotlin-parcelize' +} + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + + defaultConfig { + + javaCompileOptions { + annotationProcessorOptions { + arguments = [eventBusIndex: 'com.gh.EventBusIndex'] + } + } + + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode rootProject.ext.versionCode + versionName rootProject.ext.versionName + + renderscriptTargetApi 18 + renderscriptSupportModeEnabled true + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildFeatures { + viewBinding true + } + + kapt { + arguments { + arg("AROUTER_MODULE_NAME", project.name) + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + api fileTree(include: ['*.jar', '*.aar'], dir: 'libs') + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + api "androidx.constraintlayout:constraintlayout:${constraintLayout}" + kapt "com.alibaba:arouter-compiler:$arouterVersion" + api "com.louiscad.splitties:splitties-fun-pack-android-base-with-views-dsl:${splitties}" + api "com.github.nichbar:AndroidRomChecker:${romChecker}" + api "androidx.cardview:cardview:${cardView}" + api "com.google.android.material:material:${material}" + api "com.scwang.smartrefresh:SmartRefreshLayout:${smartRefreshLayout}" + api "com.daimajia.swipelayout:library:${swipeLayout}" + api "com.github.PhilJay:MPAndroidChart:${chart}" + api "org.greenrobot:eventbus:${eventbus}" + kapt "org.greenrobot:eventbus-annotation-processor:${eventbusApt}" + api "com.tencent.mm.opensdk:wechat-sdk-android-without-mta:${mta}" + api "androidx.room:room-runtime:${room}" + api "androidx.room:room-rxjava2:${room}" + kapt "androidx.room:room-compiler:${room}" + api "com.aliyun.openservices:aliyun-log-android-sdk:${aliyunLog}" + debugApi "com.github.nichbar.chucker:library:${chucker}" + releaseApi "com.github.nichbar.chucker:library-no-op:${chucker}" + debugApi "com.squareup.okhttp3:logging-interceptor:${okHttp}" + api "pub.devrel:easypermissions:${easypermissions}" + + api(project(path: ":module_core")) +} \ No newline at end of file diff --git a/app/libs/quick_login_android_5.8.1.aar b/module_common/libs/quick_login_android_5.8.1.aar similarity index 100% rename from app/libs/quick_login_android_5.8.1.aar rename to module_common/libs/quick_login_android_5.8.1.aar diff --git a/module_common/proguard-rules.pro b/module_common/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/module_common/proguard-rules.pro @@ -0,0 +1,21 @@ +# 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 \ No newline at end of file diff --git a/module_common/src/androidTest/java/com/gh/gamecenter/common/ExampleInstrumentedTest.kt b/module_common/src/androidTest/java/com/gh/gamecenter/common/ExampleInstrumentedTest.kt new file mode 100644 index 0000000000..4c417f0535 --- /dev/null +++ b/module_common/src/androidTest/java/com/gh/gamecenter/common/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.gh.gamecenter.common + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.gh.gamecenter.common", appContext.packageName) + } +} \ No newline at end of file diff --git a/app/src/debug/java/com/gh/gamecenter/Injection.java b/module_common/src/debug/java/com/gh/gamecenter/Injection.java similarity index 100% rename from app/src/debug/java/com/gh/gamecenter/Injection.java rename to module_common/src/debug/java/com/gh/gamecenter/Injection.java diff --git a/module_common/src/main/AndroidManifest.xml b/module_common/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..f17b266c8e --- /dev/null +++ b/module_common/src/main/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/lottie/loading.json b/module_common/src/main/assets/lottie/loading.json similarity index 100% rename from app/src/main/assets/lottie/loading.json rename to module_common/src/main/assets/lottie/loading.json diff --git a/module_common/src/main/java/com/gh/gamecenter/common/HaloApp.kt b/module_common/src/main/java/com/gh/gamecenter/common/HaloApp.kt new file mode 100644 index 0000000000..423a4762b2 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/HaloApp.kt @@ -0,0 +1,44 @@ +package com.gh.gamecenter.common + +import android.app.Application +import android.content.Context +import android.content.res.Configuration +import com.gh.gamecenter.core.iinterface.IApplication +import com.google.auto.service.AutoService + +@AutoService(IApplication::class) +class HaloApp : IApplication { + + override fun attachBaseContext() { + + } + + override fun onCreate(application: Application) { + mApp = application + } + + + override fun onLowMemory() { + + } + + override fun onTerminate() { + + } + + override fun onTrimMemory(level: Int) { + + } + + override fun onConfigurationChanged(newConfig: Configuration) { + + } + + companion object { + private lateinit var mApp: Application + + fun getInstance(): Application { + return mApp + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/annotation/SyncIgnore.java b/module_common/src/main/java/com/gh/gamecenter/common/annotation/SyncIgnore.java similarity index 88% rename from app/src/main/java/com/gh/common/annotation/SyncIgnore.java rename to module_common/src/main/java/com/gh/gamecenter/common/annotation/SyncIgnore.java index abee46a12b..95f732d773 100644 --- a/app/src/main/java/com/gh/common/annotation/SyncIgnore.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/annotation/SyncIgnore.java @@ -1,4 +1,4 @@ -package com.gh.common.annotation; +package com.gh.gamecenter.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/app/src/main/java/com/gh/common/annotation/SyncPage.java b/module_common/src/main/java/com/gh/gamecenter/common/annotation/SyncPage.java similarity index 86% rename from app/src/main/java/com/gh/common/annotation/SyncPage.java rename to module_common/src/main/java/com/gh/gamecenter/common/annotation/SyncPage.java index a2a670cb87..0c2bd62bcf 100644 --- a/app/src/main/java/com/gh/common/annotation/SyncPage.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/annotation/SyncPage.java @@ -1,4 +1,4 @@ -package com.gh.common.annotation; +package com.gh.gamecenter.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/app/src/main/java/com/gh/common/annotation/Synchronize.java b/module_common/src/main/java/com/gh/gamecenter/common/annotation/Synchronize.java similarity index 85% rename from app/src/main/java/com/gh/common/annotation/Synchronize.java rename to module_common/src/main/java/com/gh/gamecenter/common/annotation/Synchronize.java index 22950466a3..73cd7fd00b 100644 --- a/app/src/main/java/com/gh/common/annotation/Synchronize.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/annotation/Synchronize.java @@ -1,4 +1,4 @@ -package com.gh.common.annotation; +package com.gh.gamecenter.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/app/src/main/java/com/gh/common/avoidcallback/ActivityResultInfo.java b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/ActivityResultInfo.java similarity index 91% rename from app/src/main/java/com/gh/common/avoidcallback/ActivityResultInfo.java rename to module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/ActivityResultInfo.java index 1079e411c7..5019afb90f 100644 --- a/app/src/main/java/com/gh/common/avoidcallback/ActivityResultInfo.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/ActivityResultInfo.java @@ -1,4 +1,4 @@ -package com.gh.common.avoidcallback; +package com.gh.gamecenter.common.avoidcallback; import android.content.Intent; diff --git a/app/src/main/java/com/gh/common/avoidcallback/AvoidOnResultFragment.kt b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/AvoidOnResultFragment.kt similarity index 97% rename from app/src/main/java/com/gh/common/avoidcallback/AvoidOnResultFragment.kt rename to module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/AvoidOnResultFragment.kt index fb7fa63dde..9bb42e6c12 100644 --- a/app/src/main/java/com/gh/common/avoidcallback/AvoidOnResultFragment.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/AvoidOnResultFragment.kt @@ -1,4 +1,4 @@ -package com.gh.common.avoidcallback +package com.gh.gamecenter.common.avoidcallback import android.content.Intent import android.os.Bundle diff --git a/app/src/main/java/com/gh/common/avoidcallback/AvoidOnResultManager.kt b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/AvoidOnResultManager.kt similarity index 97% rename from app/src/main/java/com/gh/common/avoidcallback/AvoidOnResultManager.kt rename to module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/AvoidOnResultManager.kt index f289f6fb08..065deaad7a 100644 --- a/app/src/main/java/com/gh/common/avoidcallback/AvoidOnResultManager.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/AvoidOnResultManager.kt @@ -1,4 +1,4 @@ -package com.gh.common.avoidcallback +package com.gh.gamecenter.common.avoidcallback import android.content.Intent import androidx.appcompat.app.AppCompatActivity diff --git a/app/src/main/java/com/gh/common/avoidcallback/Callback.kt b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/Callback.kt similarity index 70% rename from app/src/main/java/com/gh/common/avoidcallback/Callback.kt rename to module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/Callback.kt index 09d8251e87..28e15ab8c6 100644 --- a/app/src/main/java/com/gh/common/avoidcallback/Callback.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/avoidcallback/Callback.kt @@ -1,4 +1,4 @@ -package com.gh.common.avoidcallback +package com.gh.gamecenter.common.avoidcallback import android.content.Intent diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/module_common/src/main/java/com/gh/gamecenter/common/base/BaseActivity.java similarity index 83% rename from app/src/main/java/com/gh/base/BaseActivity.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/BaseActivity.java index 8945d5a1ff..3437a77c49 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/BaseActivity.java @@ -1,6 +1,6 @@ -package com.gh.base; +package com.gh.gamecenter.common.base; -import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE; +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_ENTRANCE; import android.content.Intent; import android.content.res.ColorStateList; @@ -31,31 +31,35 @@ import androidx.core.view.LayoutInflaterCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.Lifecycle; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.constant.Constants; -import com.gh.common.tracker.IBusiness; -import com.gh.common.util.DialogHelper; -import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.EntranceUtils; -import com.gh.common.util.EnvHelper; -import com.gh.common.util.ExtensionsKt; -import com.gh.common.util.MtaHelper; -import com.gh.common.util.NetworkUtils; -import com.gh.common.util.NightModeUtils; -import com.gh.common.util.PackageFlavorHelper; -import com.gh.common.util.PackageInstaller; -import com.gh.common.util.QuickLoginHelper; -import com.gh.common.util.RunningUtils; -import com.gh.common.util.SPUtils; -import com.gh.common.util.ShareUtils; -import com.gh.common.util.StringUtils; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.BuildConfig; -import com.gh.gamecenter.LoginActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.SplashScreenActivity; -import com.gh.gamecenter.eventbus.EBShowDialog; +import com.alibaba.android.arouter.core.LogisticsCenter; +import com.alibaba.android.arouter.facade.Postcard; +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.BuildConfig; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.base.fragment.BaseFragment; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.eventbus.EBShowDialog; +import com.gh.gamecenter.common.tracker.IBusiness; +import com.gh.gamecenter.common.utils.DialogHelper; +import com.gh.gamecenter.common.utils.DialogUtils; +import com.gh.gamecenter.common.utils.EnvHelper; +import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.NetworkUtils; +import com.gh.gamecenter.common.utils.NightModeUtils; +import com.gh.gamecenter.common.utils.PackageFlavorHelper; +import com.gh.gamecenter.common.utils.ShareUtils; +import com.gh.gamecenter.core.provider.IBuildConfigProvider; +import com.gh.gamecenter.core.provider.IDownloadManagerProvider; +import com.gh.gamecenter.core.provider.IEntranceUtilsProvider; +import com.gh.gamecenter.core.provider.IPackageInstallerProvider; +import com.gh.gamecenter.core.provider.IQuickLoginProvider; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.MtaHelper; +import com.gh.gamecenter.core.utils.RunningUtils; +import com.gh.gamecenter.core.utils.SPUtils; +import com.gh.gamecenter.core.utils.StringUtils; import com.lightgame.BaseAppCompatActivity; import com.lightgame.download.DownloadEntity; import com.lightgame.download.FileUtils; @@ -156,15 +160,20 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy String xapkUnzipActivity = SPUtils.getString(Constants.SP_XAPK_UNZIP_ACTIVITY); String xapkUrl = SPUtils.getString(Constants.SP_XAPK_URL); Utils.log("页面重建了--" + xapkUnzipActivity + "--" + xapkUrl); - if (this.getClass().isAssignableFrom(SplashScreenActivity.class)) { + final Postcard postcard = ARouter.getInstance().build(RouteConsts.activity.splashActivity); + LogisticsCenter.completion(postcard); + final Class destination = postcard.getDestination(); + if (this.getClass().isAssignableFrom(destination)) { SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, ""); SPUtils.setString(Constants.SP_XAPK_URL, ""); return; } if (this.getClass().getName().equals(xapkUnzipActivity) && !TextUtils.isEmpty(xapkUrl)) { - DownloadEntity downloadEntity = DownloadManager.getInstance().getDownloadEntityByUrl(xapkUrl); + IDownloadManagerProvider downloadManagerConfig = (IDownloadManagerProvider) ARouter.getInstance().build(RouteConsts.provider.downloadManager).navigation(); + IPackageInstallerProvider packageInstallerConfig = (IPackageInstallerProvider) ARouter.getInstance().build(RouteConsts.provider.packageInstaller).navigation(); + DownloadEntity downloadEntity = downloadManagerConfig.getDownloadEntityByUrl(xapkUrl); if (downloadEntity != null) { - PackageInstaller.install(this, downloadEntity, false); + packageInstallerConfig.install(this, downloadEntity, false); SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, ""); SPUtils.setString(Constants.SP_XAPK_URL, ""); } @@ -187,7 +196,10 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy @SuppressWarnings("ConstantConditions") @Override public void setContentView(View view) { - if (!(this instanceof SplashScreenActivity) && PackageFlavorHelper.IS_TEST_FLAVOR) { + final Postcard postcard = ARouter.getInstance().build(RouteConsts.activity.splashActivity); + LogisticsCenter.completion(postcard); + final Class destination = postcard.getDestination(); + if (!(this.getClass().isAssignableFrom(destination)) && PackageFlavorHelper.IS_TEST_FLAVOR) { view = getRootViewWithEnvIndicator(view); } super.setContentView(view); @@ -265,14 +277,16 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy if (BuildConfig.DEBUG) { tv.setOnLongClickListener(v -> { - EntranceUtils.saveShortcut(this.getClass().getName(), getIntent().getExtras()); + IEntranceUtilsProvider entranceUtilsProvider = (IEntranceUtilsProvider) ARouter.getInstance().build(RouteConsts.provider.entranceUtils).navigation(); + entranceUtilsProvider.saveShortcut(this.getClass().getName(), getIntent().getExtras()); return true; }); } screenRootView.addView(view); screenRootView.addView(ll); - if (BuildConfig.IS_NIGHT_MODE_ON) { + IBuildConfigProvider buildConfig = (IBuildConfigProvider) ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation(); + if (buildConfig.getIsNightModeOn()) { screenRootView.addView(getNightModeIndicatorView()); } @@ -360,6 +374,7 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy public void onEventMainThread(final EBShowDialog showDialog) { if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED) && this.getClass().getName().equals(RunningUtils.getTopActivity(this))) { + IPackageInstallerProvider packageInstallerConfig = (IPackageInstallerProvider) ARouter.getInstance().build(RouteConsts.provider.packageInstaller).navigation(); if (DOWNLOAD_HIJACK.equals(showDialog.getType())) { DialogUtils.showQqSessionDialog(this);// 建议用户联系客服 } else if (PLUGGABLE.equals(showDialog.getType())) { @@ -367,13 +382,13 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy if (FileUtils.isEmptyFile(showDialog.getPath())) { toast(R.string.install_failure_hint); } else { - PackageInstaller.uninstall(BaseActivity.this, showDialog.getPath()); + packageInstallerConfig.uninstall(BaseActivity.this, showDialog.getPath()); } return null; }); } else if (SIGNATURE_CONFLICT.equals(showDialog.getType())) { DialogHelper.showSignatureConflictDialog(this, () -> { - PackageInstaller.uninstall(BaseActivity.this, showDialog.getPath()); + packageInstallerConfig.uninstall(BaseActivity.this, showDialog.getPath()); return null; }); } else if (LOGIN_EXCEPTION.equals(showDialog.getType())) { @@ -390,10 +405,12 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy } , () -> { if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(BaseActivity.this)) { - QuickLoginHelper.startLogin(BaseActivity.this, "你的账号已在另外一台设备登录多设备-重新登录"); + IQuickLoginProvider quickLoginConfig = (IQuickLoginProvider) ARouter.getInstance().build(RouteConsts.provider.quickLogin).navigation(); + quickLoginConfig.startLogin(BaseActivity.this, "你的账号已在另外一台设备登录多设备-重新登录"); } else { - startActivity(LoginActivity.getIntent(BaseActivity.this, - "你的账号已在另外一台设备登录多设备-重新登录")); + ARouter.getInstance().build(RouteConsts.activity.loginActivity) + .withString(EntranceConsts.KEY_ENTRANCE, "你的账号已在另外一台设备登录多设备-重新登录") + .navigation(); } } ); @@ -548,7 +565,8 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy } protected void onNightModeChange() { - if (BuildConfig.IS_NIGHT_MODE_ON) { + IBuildConfigProvider buildConfig = (IBuildConfigProvider) ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation(); + if (buildConfig.getIsNightModeOn()) { mNightMode = NightModeUtils.INSTANCE.isNightMode(this); TextView tv = findViewById(ID_NIGHT_INDICATOR); if (tv != null) { @@ -570,7 +588,7 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy * * @param view 父 view */ - private void updateStaticViewBackground(View view) { + protected void updateStaticViewBackground(View view) { if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { View child = ((ViewGroup) view).getChildAt(i); @@ -578,8 +596,8 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy } } - String backgroundString = (String) view.getTag(CustomLayoutInflaterFactory.TAG_BACKGROUND_ID); - String textColorString = (String) view.getTag(CustomLayoutInflaterFactory.TAG_TEXT_COLOR_ID); + String backgroundString = (String) view.getTag(CustomLayoutInflaterFactory.Companion.getTAG_BACKGROUND_ID()); + String textColorString = (String) view.getTag(CustomLayoutInflaterFactory.Companion.getTAG_TEXT_COLOR_ID()); if (backgroundString != null) { if (backgroundString.startsWith("#")) return; int backgroundId = Integer.parseInt( diff --git a/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java b/module_common/src/main/java/com/gh/gamecenter/common/base/BaseRecyclerViewHolder.java similarity index 93% rename from app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/BaseRecyclerViewHolder.java index c79c37a6b0..31f0a0ed3c 100644 --- a/app/src/main/java/com/gh/base/BaseRecyclerViewHolder.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/BaseRecyclerViewHolder.java @@ -1,7 +1,10 @@ -package com.gh.base; +package com.gh.gamecenter.common.base; + +import android.view.View; import androidx.recyclerview.widget.RecyclerView; -import android.view.View; + +import com.gh.gamecenter.common.callback.OnListClickListener; /** * 目前仅提供butterknife bind方法 diff --git a/app/src/main/java/com/gh/base/BaseSimpleDao.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/BaseSimpleDao.kt similarity index 92% rename from app/src/main/java/com/gh/base/BaseSimpleDao.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/BaseSimpleDao.kt index 147c777753..8bcd8bb333 100644 --- a/app/src/main/java/com/gh/base/BaseSimpleDao.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/BaseSimpleDao.kt @@ -1,9 +1,9 @@ -package com.gh.base +package com.gh.gamecenter.common.base import android.content.Context import android.content.SharedPreferences -import com.gh.common.util.SPUtils -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.core.utils.SPUtils /** * 用 SP 实现的简单列表持久化结构 @@ -12,7 +12,7 @@ abstract class BaseSimpleDao { // 使用独有的 SP 文件 private val mSp: SharedPreferences by lazy { - HaloApp.getInstance().application.getSharedPreferences("SimpleDao", Context.MODE_PRIVATE) + HaloApp.getInstance().getSharedPreferences("SimpleDao", Context.MODE_PRIVATE) } fun add(key: String) { diff --git a/app/src/main/java/com/gh/base/CustomLayoutInflaterFactory.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/CustomLayoutInflaterFactory.kt similarity index 83% rename from app/src/main/java/com/gh/base/CustomLayoutInflaterFactory.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/CustomLayoutInflaterFactory.kt index 57391bde26..e987f3f6c8 100644 --- a/app/src/main/java/com/gh/base/CustomLayoutInflaterFactory.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/CustomLayoutInflaterFactory.kt @@ -1,11 +1,11 @@ -package com.gh.base +package com.gh.gamecenter.common.base import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import androidx.appcompat.app.AppCompatActivity -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R class CustomLayoutInflaterFactory( private val mAppCompatActivity: AppCompatActivity @@ -23,7 +23,7 @@ class CustomLayoutInflaterFactory( try { view = mAppCompatActivity.delegate.createView(parent, name, context, attrs) ?: mAppCompatActivity.onCreateView(parent, name, context, attrs) - ?: mAppCompatActivity.layoutInflater.createView(name, null, attrs) + ?: mAppCompatActivity.layoutInflater.createView(name, null, attrs) } catch (e: Exception) { return null } @@ -46,8 +46,8 @@ class CustomLayoutInflaterFactory( } companion object { - const val TAG_BACKGROUND_ID = R.string.background_id - const val TAG_TEXT_COLOR_ID = R.string.text_color_id + var TAG_BACKGROUND_ID = R.string.background_id + var TAG_TEXT_COLOR_ID = R.string.text_color_id } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/base/ToolBarActivity.java b/module_common/src/main/java/com/gh/gamecenter/common/base/ToolBarActivity.java similarity index 64% rename from app/src/main/java/com/gh/base/ToolBarActivity.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/ToolBarActivity.java index a33e9c77aa..eb7c71998b 100644 --- a/app/src/main/java/com/gh/base/ToolBarActivity.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/ToolBarActivity.java @@ -1,16 +1,16 @@ -package com.gh.base; +package com.gh.gamecenter.common.base; import android.annotation.SuppressLint; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import android.view.Menu; -import android.view.MenuInflater; import android.view.MenuItem; +import android.view.MotionEvent; import android.view.View; -import android.view.ViewGroup; import android.view.Window; import android.widget.FrameLayout; import android.widget.ImageView; @@ -18,32 +18,19 @@ import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.DrawableRes; -import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.widget.ActionMenuView; import androidx.appcompat.widget.Toolbar; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import androidx.lifecycle.ViewModelProviders; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.common.constant.Constants; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.SPUtils; -import com.gh.common.view.GameIconView; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.DownloadManagerActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.normal.ToolbarController; -import com.gh.gamecenter.packagehelper.PackageViewModel; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.base.fragment.ToolbarController; +import com.gh.gamecenter.common.base.fragment.ToolbarFragment; +import com.gh.gamecenter.common.utils.ImageUtils; import com.lightgame.OnTitleClickListener; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; @@ -56,8 +43,10 @@ import java.util.List; public abstract class ToolBarActivity extends BaseActivity implements ToolbarController, ActionMenuView.OnMenuItemClickListener { - @Nullable - private PackageViewModel mPackageViewModel; + public static final String NORMAL_FRAGMENT_NAME = "normalFragmentName"; + public static final String NORMAL_FRAGMENT_BUNDLE = "normalFragmentBundle"; + + private Fragment mTargetFragment; protected View mToolbarContainer; @@ -75,14 +64,16 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon protected View mBackBtn; - protected GameIconView mGameIconView; +// protected GameIconView mGameIconView; protected SimpleDraweeView mUserAvatarIv; protected TextView mIconTitle; - @Nullable - private TextView mDownloadCountHint; + @Override + protected int getLayoutId() { + return R.layout.activity_normal; + } @Override protected void onCreate(Bundle savedInstanceState) { @@ -90,12 +81,41 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon setStatusBarDarkMode(true, this); initToolbar(); - if (!SPUtils.getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu()) { - mPackageViewModel = ViewModelProviders.of(this, new PackageViewModel.Factory()).get(PackageViewModel.class); - mPackageViewModel.getFilterSameUpdateLiveData().observe(this, this::updateDownloadCountHint); + if (getIntent() != null) { + if (savedInstanceState == null) { + handleIntent(getIntent()); + } else { + for (Fragment fragment : getSupportFragmentManager().getFragments()) { + if (fragment instanceof ToolbarFragment) mTargetFragment = fragment; + } + } } } + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + if (getIntent() != null) handleIntent(intent); + } + + private void handleIntent(Intent intent) { + String fraName = intent.getStringExtra(NORMAL_FRAGMENT_NAME); + Bundle bundle = intent.getBundleExtra(NORMAL_FRAGMENT_BUNDLE); + if (TextUtils.isEmpty(fraName)) { + if (provideNormalIntent() == null) { + return; + } + fraName = provideNormalIntent().getStringExtra(NORMAL_FRAGMENT_NAME); + if (bundle == null) bundle = getIntent().getExtras(); + if (TextUtils.isEmpty(fraName)) return; + } + mTargetFragment = getSupportFragmentManager().findFragmentByTag(fraName); + if (mTargetFragment == null) { + mTargetFragment = Fragment.instantiate(this, fraName, bundle); + } + getSupportFragmentManager().beginTransaction().replace(getFragmentPlaceholderId(), mTargetFragment, fraName).commitNowAllowingStateLoss(); + } + // 小米沉浸式黑色字体 @SuppressLint("PrivateApi") public void setStatusBarDarkMode(boolean darkmode, Activity activity) { @@ -120,7 +140,7 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon mIconTitleContainer = findViewById(R.id.iconTitleContainer); mBackContainer = findViewById(R.id.backContainer); mBackBtn = findViewById(R.id.backBtn); - mGameIconView = findViewById(R.id.gameIv); +// mGameIconView = findViewById(R.id.gameIv); mUserAvatarIv = findViewById(R.id.userAvatar); mIconTitle = findViewById(R.id.iconTitle); if (mToolbar != null) { @@ -168,18 +188,10 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon @Override public void setToolbarMenu(int res) { if (mActionMenuView == null) return; - // 青少年模式下要隐藏下载按钮 - if (SPUtils.getBoolean(Constants.SP_TEENAGER_MODE) && res == R.menu.menu_download) return; // mToolbar.inflateMenu(res); // mToolbar.setOnMenuItemClickListener(this); - - getMenuInflater().inflate(res, mActionMenuView.getMenu()); + inflateMenu(res); mActionMenuView.setOnMenuItemClickListener(this); - - if (showDownloadMenu()) { - createDownloadMenu(res); - } - Menu menu = mActionMenuView.getMenu(); for (int i = 0; i < menu.size(); i++) { MenuItem menuItem = menu.getItem(i); @@ -197,6 +209,10 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon setTitleCenter(); } + public void inflateMenu(int res){ + getMenuInflater().inflate(res, mActionMenuView.getMenu()); + } + @Override protected void onResume() { super.onResume(); @@ -214,12 +230,12 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon } } - public void setGameIconToolbar(String icon, String iconSubscript) { + /*public void setGameIconToolbar(String icon, String iconSubscript) { mTitleContainer.setVisibility(View.GONE); mGameIconView.displayGameIcon(icon, iconSubscript); mGameIconView.setVisibility(View.VISIBLE); mIconTitleContainer.setVisibility(View.VISIBLE); - } + }*/ public void setUserAvatarIconToolbar(String icon) { mTitleContainer.setVisibility(View.GONE); @@ -228,49 +244,6 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon mIconTitleContainer.setVisibility(View.VISIBLE); } - private void createDownloadMenu(int res) { - if (res != R.menu.menu_download) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.menu_download, mActionMenuView.getMenu()); - } - - if (mPackageViewModel != null) { - updateDownloadCountHint(mPackageViewModel.getFilterSameUpdateLiveData().getValue()); - } - - View downloadMenuView = mActionMenuView.getMenu().findItem(R.id.menu_download).getActionView(); - mDownloadCountHint = downloadMenuView.findViewById(R.id.menu_download_count_hint); - } - - private void updateDownloadCountHint(List updateList) { - if (mDownloadCountHint == null) return; - - String count = DownloadManager.getInstance().getDownloadOrUpdateCount(updateList); - if (count != null) { - mDownloadCountHint.setVisibility(View.VISIBLE); - mDownloadCountHint.setText(count); - - ViewGroup.LayoutParams params = mDownloadCountHint.getLayoutParams(); - if (TextUtils.isEmpty(count)) { - params.width = DisplayUtils.dip2px(6); - params.height = DisplayUtils.dip2px(6); - } else { - params.width = DisplayUtils.dip2px(12); - params.height = DisplayUtils.dip2px(12); - } - mDownloadCountHint.setLayoutParams(params); - } else { - mDownloadCountHint.setVisibility(View.GONE); - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBDownloadStatus status) { - if (!SPUtils.getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu() && mPackageViewModel != null) { - updateDownloadCountHint(mPackageViewModel.getFilterSameUpdateLiveData().getValue()); - } - } - @Override public MenuItem getMenuItem(int res) { if (mToolbar == null) return null; //后续页面做好判断 @@ -288,12 +261,14 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon return mActionMenuView.getMenu(); } + public ActionMenuView getActionMenuView() { + return mActionMenuView; + } + @Override public boolean onMenuItemClick(MenuItem item) { - if (item.getItemId() == R.id.menu_download) { -// MtaHelper.onEvent("下载管理", "下载管理入口", getActivityNameInChinese()); - Intent intent = DownloadManagerActivity.getDownloadMangerIntent(this, mEntrance); - startActivity(intent); + if (mTargetFragment instanceof ToolbarFragment) { + ((ToolbarFragment) mTargetFragment).onMenuItemClick(item); } return false; } @@ -302,8 +277,29 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon return view -> onBackPressed(); } - protected boolean showDownloadMenu() { - return false; + @Override + public void onBackPressed() { + if (mTargetFragment instanceof ToolbarFragment + && mTargetFragment.isAdded() + && !((ToolbarFragment) mTargetFragment).onBackPressed()) { + super.onBackPressed(); + } + } + + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + if (mTargetFragment instanceof ToolbarFragment) { + ((ToolbarFragment) mTargetFragment).onTouchEvent(ev); + } + return super.dispatchTouchEvent(ev); + } + + public Fragment getTargetFragment() { + return mTargetFragment; + } + + public int getFragmentPlaceholderId() { + return R.id.normal_content; } @Override @@ -313,6 +309,40 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon } } + // 针对部分跳转不符合ToolbarActivity规则的额外处理,主要绑定ToolbarFragment + protected Intent provideNormalIntent() { + return null; + } + + protected static Intent getTargetIntent(Context context, Class cls, Class t, Bundle bundle) { + Intent intent = new Intent(context, cls); + intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); + intent.putExtra(NORMAL_FRAGMENT_BUNDLE, bundle); + return intent; + } + + protected static Intent getTargetIntent(Context context, Class cls, Class t) { + Intent intent = new Intent(context, cls); + intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); + return intent; + } + + + public static void startFragmentNewTask(Context context, Class t, Bundle bundle) { + Intent intent = new Intent(context, ToolBarActivity.class); + intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); + intent.putExtra(NORMAL_FRAGMENT_BUNDLE, bundle); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } + + public static void startFragment(Context context, Class t, Bundle bundle) { + Intent intent = new Intent(context, ToolBarActivity.class); + intent.putExtra(NORMAL_FRAGMENT_NAME, t.getCanonicalName()); + intent.putExtra(NORMAL_FRAGMENT_BUNDLE, bundle); + context.startActivity(intent); + } + @Override protected void onNightModeChange() { super.onNightModeChange(); @@ -329,8 +359,5 @@ public abstract class ToolBarActivity extends BaseActivity implements ToolbarCon if (mTitleTv != null) { mTitleTv.setTextColor(ContextCompat.getColor(this, R.color.text_black)); } - if (showDownloadMenu() && getMenuItem(R.id.menu_download) != null) { - ((ImageView) getMenuItem(R.id.menu_download).getActionView().findViewById(R.id.menu_download_iv)).setImageDrawable(ContextCompat.getDrawable(this, R.drawable.toolbar_download)); - } } } diff --git a/app/src/main/java/com/gh/common/dialog/TrackableDialog.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/TrackableDialog.kt similarity index 95% rename from app/src/main/java/com/gh/common/dialog/TrackableDialog.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/TrackableDialog.kt index bb98c4d929..652cdfa2d3 100644 --- a/app/src/main/java/com/gh/common/dialog/TrackableDialog.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/TrackableDialog.kt @@ -1,10 +1,10 @@ -package com.gh.common.dialog +package com.gh.gamecenter.common.base import android.app.Dialog import android.content.Context import android.os.Bundle import android.view.KeyEvent -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.core.utils.MtaHelper import java.util.concurrent.atomic.AtomicBoolean open class TrackableDialog(context: Context, diff --git a/app/src/main/java/com/gh/base/adapter/FragmentAdapter.java b/module_common/src/main/java/com/gh/gamecenter/common/base/adapter/FragmentAdapter.java similarity index 96% rename from app/src/main/java/com/gh/base/adapter/FragmentAdapter.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/adapter/FragmentAdapter.java index 3d54128ac1..ee216bd2f2 100644 --- a/app/src/main/java/com/gh/base/adapter/FragmentAdapter.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/adapter/FragmentAdapter.java @@ -1,4 +1,4 @@ -package com.gh.base.adapter; +package com.gh.gamecenter.common.base.adapter; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; diff --git a/app/src/main/java/com/gh/base/adapter/FragmentStateAdapter.java b/module_common/src/main/java/com/gh/gamecenter/common/base/adapter/FragmentStateAdapter.java similarity index 93% rename from app/src/main/java/com/gh/base/adapter/FragmentStateAdapter.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/adapter/FragmentStateAdapter.java index 278c6776c2..a6de52d39c 100644 --- a/app/src/main/java/com/gh/base/adapter/FragmentStateAdapter.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/adapter/FragmentStateAdapter.java @@ -1,4 +1,4 @@ -package com.gh.base.adapter; +package com.gh.gamecenter.common.base.adapter; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; diff --git a/app/src/main/java/com/gh/base/fragment/BaseDialogFragment.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDialogFragment.java similarity index 94% rename from app/src/main/java/com/gh/base/fragment/BaseDialogFragment.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDialogFragment.java index 1b2d993260..d32a8b996c 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseDialogFragment.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDialogFragment.java @@ -1,18 +1,10 @@ -package com.gh.base.fragment; +package com.gh.gamecenter.common.base.fragment; import android.app.Dialog; import android.content.res.Configuration; import android.os.Bundle; import android.view.KeyEvent; -import com.gh.common.util.ClickUtils; -import com.gh.common.util.NightModeUtils; -import com.gh.gamecenter.R; -import com.lightgame.utils.RuntimeUtils; -import com.lightgame.utils.Utils; - -import java.lang.reflect.Field; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; @@ -22,6 +14,14 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.Lifecycle; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.utils.NightModeUtils; +import com.gh.gamecenter.core.utils.ClickUtils; +import com.lightgame.utils.RuntimeUtils; +import com.lightgame.utils.Utils; + +import java.lang.reflect.Field; + /** * @author CsHeng * @Date 17/05/2017 diff --git a/app/src/main/java/com/gh/base/fragment/BaseDialogWrapperFragment.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDialogWrapperFragment.java similarity index 96% rename from app/src/main/java/com/gh/base/fragment/BaseDialogWrapperFragment.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDialogWrapperFragment.java index 19c86d6ccf..bd9c854c14 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseDialogWrapperFragment.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDialogWrapperFragment.java @@ -1,16 +1,18 @@ -package com.gh.base.fragment; +package com.gh.gamecenter.common.base.fragment; import android.app.Dialog; import android.os.Bundle; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.gh.gamecenter.R; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.gh.gamecenter.common.R; + /** * Wrap another fragment with dialog fragment. diff --git a/app/src/main/java/com/gh/common/dialog/BaseDraggableDialogFragment.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDraggableDialogFragment.kt similarity index 93% rename from app/src/main/java/com/gh/common/dialog/BaseDraggableDialogFragment.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDraggableDialogFragment.kt index d2008eca04..0cd1570977 100644 --- a/app/src/main/java/com/gh/common/dialog/BaseDraggableDialogFragment.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDraggableDialogFragment.kt @@ -1,12 +1,11 @@ -package com.gh.common.dialog +package com.gh.gamecenter.common.base.fragment import android.annotation.SuppressLint import android.app.Dialog import android.os.Bundle import android.view.* -import com.gh.base.fragment.BaseDialogFragment -import com.gh.gamecenter.R -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.R abstract class BaseDraggableDialogFragment : BaseDialogFragment(), View.OnTouchListener { private var mInitPositionY = 0f @@ -84,7 +83,7 @@ abstract class BaseDraggableDialogFragment : BaseDialogFragment(), View.OnTouchL override fun onStart() { super.onStart() - val width = HaloApp.getInstance().application.resources.displayMetrics.widthPixels + val width = HaloApp.getInstance().resources.displayMetrics.widthPixels val height = dialog?.window?.attributes?.height ?: ViewGroup.LayoutParams.WRAP_CONTENT dialog?.window?.setLayout(width, height) } diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment.java similarity index 90% rename from app/src/main/java/com/gh/base/fragment/BaseFragment.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment.java index 693d005414..e2d42e9939 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseFragment.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment.java @@ -1,4 +1,6 @@ -package com.gh.base.fragment; +package com.gh.gamecenter.common.base.fragment; + +import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_ENTRANCE; import android.content.Intent; import android.content.res.Configuration; @@ -9,7 +11,6 @@ import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import androidx.annotation.LayoutRes; import androidx.annotation.NonNull; @@ -19,16 +20,19 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; import androidx.recyclerview.widget.RecyclerView; -import com.gh.base.OnListClickListener; -import com.gh.base.OnRequestCallBackListener; -import com.gh.common.constant.Constants; -import com.gh.common.syncpage.ISyncAdapterHandler; -import com.gh.common.syncpage.SyncDataEntity; -import com.gh.common.syncpage.SyncPageRepository; -import com.gh.common.util.NightModeUtils; -import com.gh.gamecenter.BuildConfig; -import com.gh.gamecenter.R; -import com.gh.gamecenter.eventbus.EBMiPush; +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.BuildConfig; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.callback.OnListClickListener; +import com.gh.gamecenter.common.callback.OnRequestCallBackListener; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.eventbus.EBMiPush; +import com.gh.gamecenter.common.syncpage.ISyncAdapterHandler; +import com.gh.gamecenter.common.syncpage.SyncDataEntity; +import com.gh.gamecenter.common.syncpage.SyncPageRepository; +import com.gh.gamecenter.common.utils.NightModeUtils; +import com.gh.gamecenter.core.provider.IBuildConfigProvider; import com.lightgame.OnTitleClickListener; import com.lightgame.utils.RuntimeUtils; import com.lightgame.utils.Utils; @@ -46,8 +50,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import kotlin.Pair; -import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE; - /** * Created by LGT on 2016/9/4. * Fragment 基类 @@ -163,8 +165,8 @@ public abstract class BaseFragment extends Fragment implements OnRequestCallB if (addSyncPageObserver()) { initSyncPageObserver(); } - - if (BuildConfig.IS_NIGHT_MODE_ON) { + IBuildConfigProvider buildConfig = (IBuildConfigProvider) ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation(); + if (buildConfig != null && buildConfig.getIsNightModeOn()) { mNightMode = NightModeUtils.INSTANCE.isNightMode(requireContext()); } else { mNightMode = false; diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment_TabLayout.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_TabLayout.java similarity index 95% rename from app/src/main/java/com/gh/base/fragment/BaseFragment_TabLayout.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_TabLayout.java index 13837b680a..ab1500996d 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseFragment_TabLayout.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_TabLayout.java @@ -1,4 +1,4 @@ -package com.gh.base.fragment; +package com.gh.gamecenter.common.base.fragment; import android.content.Context; import android.content.Intent; @@ -15,12 +15,10 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; -import com.gh.base.adapter.FragmentAdapter; -import com.gh.common.view.TabIndicatorView; -import com.gh.gamecenter.R; -import com.gh.gamecenter.normal.NormalFragment; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.base.adapter.FragmentAdapter; +import com.gh.gamecenter.common.view.TabIndicatorView; import com.google.android.material.tabs.TabLayout; -import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; import com.lightgame.view.NoScrollableViewPager; @@ -31,7 +29,7 @@ import java.util.List; * Created by khy on 15/03/18. */ -public abstract class BaseFragment_TabLayout extends NormalFragment implements ViewPager.OnPageChangeListener { +public abstract class BaseFragment_TabLayout extends ToolbarFragment implements ViewPager.OnPageChangeListener { public static final String PAGE_INDEX = "PAGE_INDEX"; diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_ViewPager.java old mode 100755 new mode 100644 similarity index 95% rename from app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_ViewPager.java index 26d83dd609..264030a677 --- a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_ViewPager.java @@ -7,10 +7,11 @@ * 2013-3-6 CsHeng */ -package com.gh.base.fragment; +package com.gh.gamecenter.common.base.fragment; import android.content.Intent; import android.os.Bundle; +import android.view.View; import androidx.annotation.IdRes; import androidx.annotation.LayoutRes; @@ -19,9 +20,6 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; -import android.view.View; - -import com.gh.gamecenter.normal.NormalFragment; import com.lightgame.adapter.BaseFragmentPagerAdapter; import com.lightgame.config.CommonDebug; import com.lightgame.view.DoubleTapTextView; @@ -36,7 +34,7 @@ import java.util.List; * @author CsHeng * @date 2013-3-6 */ -public abstract class BaseFragment_ViewPager extends NormalFragment implements DoubleTapTextView.OnDoubleTapListener { +public abstract class BaseFragment_ViewPager extends ToolbarFragment implements DoubleTapTextView.OnDoubleTapListener { public static final String ARGS_INDEX = "index"; protected int mCheckedIndex = 0; diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_ViewPager_Checkable.java old mode 100755 new mode 100644 similarity index 96% rename from app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_ViewPager_Checkable.java index 2aa75a9a47..4adda44ffb --- a/app/src/main/java/com/gh/base/fragment/BaseFragment_ViewPager_Checkable.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_ViewPager_Checkable.java @@ -7,23 +7,21 @@ * 2013-3-6 CsHeng */ -package com.gh.base.fragment; +package com.gh.gamecenter.common.base.fragment; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.Checkable; -import com.gh.gamecenter.fragment.MainWrapperFragment; - -import java.util.List; - import androidx.annotation.IdRes; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.viewpager.widget.ViewPager; +import java.util.List; + /** * ViewPager 配合ViewGroup Checkable实现双切换
@@ -38,7 +36,7 @@ public abstract class BaseFragment_ViewPager_Checkable extends BaseFragment_View protected ViewGroup mCheckableGroup; - private int mLastPosition = MainWrapperFragment.INDEX_HOME; + private int mLastPosition = 0; @IdRes protected abstract int getCheckableGroupId(); diff --git a/app/src/main/java/com/gh/base/fragment/BaseLazyFragment.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseLazyFragment.kt similarity index 98% rename from app/src/main/java/com/gh/base/fragment/BaseLazyFragment.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseLazyFragment.kt index 7f35ed7cfb..489e6578b6 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseLazyFragment.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseLazyFragment.kt @@ -1,12 +1,11 @@ -package com.gh.base.fragment +package com.gh.gamecenter.common.base.fragment import android.os.Bundle -import com.gh.gamecenter.normal.NormalFragment /** * 懒加载(支持多层嵌套) */ -abstract class BaseLazyFragment : NormalFragment() { +abstract class BaseLazyFragment : ToolbarFragment() { private var mIsFirstVisible = true diff --git a/app/src/main/java/com/gh/base/fragment/BaseLazyTabFragment.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseLazyTabFragment.kt similarity index 96% rename from app/src/main/java/com/gh/base/fragment/BaseLazyTabFragment.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseLazyTabFragment.kt index fc5990d853..729ebb9d0a 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseLazyTabFragment.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseLazyTabFragment.kt @@ -1,4 +1,4 @@ -package com.gh.base.fragment +package com.gh.gamecenter.common.base.fragment import android.content.Intent import android.os.Bundle @@ -7,9 +7,9 @@ import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.viewpager.widget.PagerAdapter import androidx.viewpager.widget.ViewPager -import com.gh.base.adapter.FragmentAdapter -import com.gh.common.view.TabIndicatorView -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.base.adapter.FragmentAdapter +import com.gh.gamecenter.common.view.TabIndicatorView import com.google.android.material.tabs.TabLayout import com.lightgame.view.NoScrollableViewPager diff --git a/app/src/main/java/com/gh/common/dialog/BaseTrackableDialogFragment.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseTrackableDialogFragment.kt similarity index 97% rename from app/src/main/java/com/gh/common/dialog/BaseTrackableDialogFragment.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseTrackableDialogFragment.kt index 43d9b32a0d..1d27a5b062 100644 --- a/app/src/main/java/com/gh/common/dialog/BaseTrackableDialogFragment.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseTrackableDialogFragment.kt @@ -1,4 +1,4 @@ -package com.gh.common.dialog +package com.gh.gamecenter.common.base.fragment import android.content.DialogInterface import android.os.Bundle @@ -6,7 +6,7 @@ import android.view.KeyEvent import android.view.View import androidx.fragment.app.DialogFragment import androidx.fragment.app.FragmentManager -import com.gh.common.util.MtaHelper +import com.gh.gamecenter.core.utils.MtaHelper import com.lightgame.dialog.BaseDialogFragment import java.util.concurrent.atomic.AtomicBoolean diff --git a/app/src/main/java/com/gh/base/fragment/LazyFragment.kt b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/LazyFragment.kt similarity index 97% rename from app/src/main/java/com/gh/base/fragment/LazyFragment.kt rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/LazyFragment.kt index 968d1923b7..a114d58be3 100644 --- a/app/src/main/java/com/gh/base/fragment/LazyFragment.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/LazyFragment.kt @@ -1,9 +1,9 @@ -package com.gh.base.fragment +package com.gh.gamecenter.common.base.fragment import android.os.Bundle import android.view.View import android.view.ViewStub -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R /** * 这是在 BaseLazyFragment 之上添加了一些通用功能的抽象类 diff --git a/app/src/main/java/com/gh/gamecenter/normal/ToolbarController.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/ToolbarController.java similarity index 90% rename from app/src/main/java/com/gh/gamecenter/normal/ToolbarController.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/ToolbarController.java index ce5f18b2cf..996ffdf859 100644 --- a/app/src/main/java/com/gh/gamecenter/normal/ToolbarController.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/ToolbarController.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.normal; +package com.gh.gamecenter.common.base.fragment; import android.view.MenuItem; diff --git a/app/src/main/java/com/gh/gamecenter/normal/NormalFragment.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/ToolbarFragment.java similarity index 83% rename from app/src/main/java/com/gh/gamecenter/normal/NormalFragment.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/ToolbarFragment.java index 36d1f7fc5c..9392151c3d 100644 --- a/app/src/main/java/com/gh/gamecenter/normal/NormalFragment.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/ToolbarFragment.java @@ -1,28 +1,28 @@ -package com.gh.gamecenter.normal; +package com.gh.gamecenter.common.base.fragment; import android.os.Bundle; -import androidx.annotation.IdRes; -import androidx.annotation.MenuRes; -import androidx.annotation.Nullable; -import androidx.annotation.StringRes; import android.text.TextUtils; import android.view.MenuItem; import android.view.MotionEvent; -import com.gh.base.fragment.BaseFragment; -import com.gh.common.util.EntranceUtils; +import androidx.annotation.IdRes; +import androidx.annotation.MenuRes; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; + +import com.gh.gamecenter.common.constant.EntranceConsts; /** * Created by khy on 17/10/17. */ -public abstract class NormalFragment extends BaseFragment { +public abstract class ToolbarFragment extends BaseFragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments() != null && !TextUtils.isEmpty(getArguments().getString(EntranceUtils.KEY_ENTRANCE))) - mEntrance = getArguments().getString(EntranceUtils.KEY_ENTRANCE); + if (getArguments() != null && !TextUtils.isEmpty(getArguments().getString(EntranceConsts.KEY_ENTRANCE))) + mEntrance = getArguments().getString(EntranceConsts.KEY_ENTRANCE); } protected void setNavigationTitle(String title) { diff --git a/app/src/main/java/com/gh/base/fragment/WaitingDialogFragment.java b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/WaitingDialogFragment.java similarity index 94% rename from app/src/main/java/com/gh/base/fragment/WaitingDialogFragment.java rename to module_common/src/main/java/com/gh/gamecenter/common/base/fragment/WaitingDialogFragment.java index a61c823027..d1c45c66a9 100644 --- a/app/src/main/java/com/gh/base/fragment/WaitingDialogFragment.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/fragment/WaitingDialogFragment.java @@ -1,4 +1,4 @@ -package com.gh.base.fragment; +package com.gh.gamecenter.common.base.fragment; import android.os.Bundle; import android.view.LayoutInflater; @@ -11,9 +11,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentManager; -import com.gh.common.util.DisplayUtils; -import com.gh.common.util.ExtensionsKt; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.callback.OnDialogBackListener; +import com.gh.gamecenter.core.utils.DisplayUtils; /** * @author CsHeng diff --git a/app/src/main/java/com/gh/common/util/BiCallback.kt b/module_common/src/main/java/com/gh/gamecenter/common/callback/BiCallback.kt similarity index 71% rename from app/src/main/java/com/gh/common/util/BiCallback.kt rename to module_common/src/main/java/com/gh/gamecenter/common/callback/BiCallback.kt index f5258169ec..50b3875978 100644 --- a/app/src/main/java/com/gh/common/util/BiCallback.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/BiCallback.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.common.callback interface BiCallback { fun onFirst(first: FIRST) diff --git a/module_common/src/main/java/com/gh/gamecenter/common/callback/CancelListener.kt b/module_common/src/main/java/com/gh/gamecenter/common/callback/CancelListener.kt new file mode 100644 index 0000000000..866811f553 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/CancelListener.kt @@ -0,0 +1,5 @@ +package com.gh.gamecenter.common.callback + +interface CancelListener { + fun onCancel() +} \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/callback/ConfirmListener.kt b/module_common/src/main/java/com/gh/gamecenter/common/callback/ConfirmListener.kt new file mode 100644 index 0000000000..61536998a9 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/ConfirmListener.kt @@ -0,0 +1,5 @@ +package com.gh.gamecenter.common.callback + +interface ConfirmListener { + fun onConfirm() +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/base/fragment/OnDialogBackListener.java b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnDialogBackListener.java similarity index 59% rename from app/src/main/java/com/gh/base/fragment/OnDialogBackListener.java rename to module_common/src/main/java/com/gh/gamecenter/common/callback/OnDialogBackListener.java index fdf9a55296..a16f3eeeea 100644 --- a/app/src/main/java/com/gh/base/fragment/OnDialogBackListener.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnDialogBackListener.java @@ -1,4 +1,4 @@ -package com.gh.base.fragment; +package com.gh.gamecenter.common.callback; public interface OnDialogBackListener { void onBack(); diff --git a/app/src/main/java/com/gh/base/OnDoubleTapListener.java b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnDoubleTapListener.java similarity index 95% rename from app/src/main/java/com/gh/base/OnDoubleTapListener.java rename to module_common/src/main/java/com/gh/gamecenter/common/callback/OnDoubleTapListener.java index 78b6ef647f..16d0dd5abf 100644 --- a/app/src/main/java/com/gh/base/OnDoubleTapListener.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnDoubleTapListener.java @@ -1,4 +1,4 @@ -package com.gh.base; +package com.gh.gamecenter.common.callback; import android.content.Context; import android.view.GestureDetector; diff --git a/app/src/main/java/com/gh/base/OnListClickListener.java b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnListClickListener.java similarity index 89% rename from app/src/main/java/com/gh/base/OnListClickListener.java rename to module_common/src/main/java/com/gh/gamecenter/common/callback/OnListClickListener.java index e6235fd3cd..097b9a51ef 100644 --- a/app/src/main/java/com/gh/base/OnListClickListener.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnListClickListener.java @@ -1,4 +1,4 @@ -package com.gh.base; +package com.gh.gamecenter.common.callback; import android.view.View; diff --git a/app/src/main/java/com/gh/base/OnRequestCallBackListener.java b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnRequestCallBackListener.java similarity index 84% rename from app/src/main/java/com/gh/base/OnRequestCallBackListener.java rename to module_common/src/main/java/com/gh/gamecenter/common/callback/OnRequestCallBackListener.java index 36f3ed65cd..6f3a409f3f 100644 --- a/app/src/main/java/com/gh/base/OnRequestCallBackListener.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnRequestCallBackListener.java @@ -1,4 +1,4 @@ -package com.gh.base; +package com.gh.gamecenter.common.callback; /** * Created by Administrator on 2016/9/8. diff --git a/app/src/main/java/com/gh/base/OnViewClickListener.java b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnViewClickListener.java similarity index 71% rename from app/src/main/java/com/gh/base/OnViewClickListener.java rename to module_common/src/main/java/com/gh/gamecenter/common/callback/OnViewClickListener.java index 89cd65c2cc..bf218bbedb 100644 --- a/app/src/main/java/com/gh/base/OnViewClickListener.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/OnViewClickListener.java @@ -1,4 +1,4 @@ -package com.gh.base; +package com.gh.gamecenter.common.callback; import android.view.View; diff --git a/app/src/main/java/com/gh/common/util/SimpleCallback.kt b/module_common/src/main/java/com/gh/gamecenter/common/callback/SimpleCallback.kt similarity index 58% rename from app/src/main/java/com/gh/common/util/SimpleCallback.kt rename to module_common/src/main/java/com/gh/gamecenter/common/callback/SimpleCallback.kt index ea6d8b8778..7868ac5f51 100644 --- a/app/src/main/java/com/gh/common/util/SimpleCallback.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/SimpleCallback.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.common.callback interface SimpleCallback { fun onCallback(arg: T) diff --git a/app/src/main/java/com/gh/common/Typealias.kt b/module_common/src/main/java/com/gh/gamecenter/common/callback/Typealias.kt similarity index 59% rename from app/src/main/java/com/gh/common/Typealias.kt rename to module_common/src/main/java/com/gh/gamecenter/common/callback/Typealias.kt index ba1db70b0e..52771c53a2 100644 --- a/app/src/main/java/com/gh/common/Typealias.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/callback/Typealias.kt @@ -1,3 +1,3 @@ -package com.gh.common +package com.gh.gamecenter.common.callback typealias OnFastClickListener = (isSuccess: Boolean) -> Unit \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt b/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt new file mode 100644 index 0000000000..50868f0aea --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/Config.kt @@ -0,0 +1,8 @@ +package com.gh.gamecenter.common.constant + + +object Config { + const val DEFAULT_CHANNEL = "GH_TEST3" + const val DEFAULT_CHANNEL_FOR_RELEASE = "GH_LOST" // 正式包的缺省渠道,避免因渠道丢失而回落到测试渠道 + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java similarity index 95% rename from app/src/main/java/com/gh/common/constant/Constants.java rename to module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java index 179c8cd2b8..e60e61e0ac 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java @@ -1,11 +1,12 @@ -package com.gh.common.constant; +package com.gh.gamecenter.common.constant; -import com.gh.common.util.PackageUtils; -import com.gh.common.util.TimeUtils; -import com.halo.assistant.HaloApp; +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.core.provider.IPackageUtilsProvider; +import com.gh.gamecenter.core.utils.TimeUtils; public class Constants { + private static final IPackageUtilsProvider packageUtilsConfig = (IPackageUtilsProvider) ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation(); public static final int SEND_NEWS_FEEDBACK = 0x126; public static final int SEND_COMMENT_FEEDBACK = 0x127; @@ -104,11 +105,11 @@ public class Constants { // 今天是否已经触发了 “通知管理” 引导弹窗 public static final String SP_IS_SHOWED_NOTIFICATION_TODAY = "show_is_notification_today"; // v4.0.0已废弃,标记安装的游戏为已玩过弹窗,最多取消2次 (https://gitlab.ghzs.com/pm/halo-app-issues/issues/722 调整为版本相关) (不是常量了也放这里好像有点奇怪) - public static final String SP_MARK_INSTALLED_GAME = "mark_installed_game" + PackageUtils.getGhVersionName(); + public static final String SP_MARK_INSTALLED_GAME = "mark_installed_game" + packageUtilsConfig.getGhVersionName(); // 标记安装的游戏为已玩过弹窗(个人主页最多弹一次) - public static final String SP_MARK_INSTALLED_GAME_USER_HOME = "mark_installed_game_user_home" + PackageUtils.getGhVersionName(); + public static final String SP_MARK_INSTALLED_GAME_USER_HOME = "mark_installed_game_user_home" + packageUtilsConfig.getGhVersionName(); // 标记安装的游戏为已玩过弹窗(我的游戏最多弹一次) - public static final String SP_MARK_INSTALLED_GAME_MY_GAME = "mark_installed_game_my_game" + PackageUtils.getGhVersionName(); + public static final String SP_MARK_INSTALLED_GAME_MY_GAME = "mark_installed_game_my_game" + packageUtilsConfig.getGhVersionName(); //视频详情滑动引导 public static final String SP_SHOW_SLIDE_GUIDE = "show_slide_guide"; //视频详情点击引导 @@ -142,10 +143,10 @@ public class Constants { public static final String SP_REGULATION_TEST_STATUS = "regulation_test_status"; public static final String SP_REGULATION_TEST_PASS_STATUS = "regulation_test_pass_status"; //相同设备号,每一种第三方登录方式登录后弹出绑定手机页面的次数 - public static final String SP_QQ_SHOW_BIND_PHONE_TIME = "qq_show_bind_phone_time" + HaloApp.getInstance().getGid(); - public static final String SP_WECHAT_SHOW_BIND_PHONE_TIME = "wechat_show_bind_phone_time" + HaloApp.getInstance().getGid(); - public static final String SP_WEIBO_SHOW_BIND_PHONE_TIME = "weibo_show_bind_phone_time" + HaloApp.getInstance().getGid(); - public static final String SP_DOUYIN_SHOW_BIND_PHONE_TIME = "douyin_show_bind_phone_time" + HaloApp.getInstance().getGid(); +// public static final String SP_QQ_SHOW_BIND_PHONE_TIME = "qq_show_bind_phone_time" + HaloApp.getInstance().getGid(); +// public static final String SP_WECHAT_SHOW_BIND_PHONE_TIME = "wechat_show_bind_phone_time" + HaloApp.getInstance().getGid(); +// public static final String SP_WEIBO_SHOW_BIND_PHONE_TIME = "weibo_show_bind_phone_time" + HaloApp.getInstance().getGid(); +// public static final String SP_DOUYIN_SHOW_BIND_PHONE_TIME = "douyin_show_bind_phone_time" + HaloApp.getInstance().getGid(); //隐私政策是否有更新 public static final String SP_PRIVACY_CURRENT_MD5 = "sp_privacy_current_md5"; public static final String SP_PRIVACY_MINE_MD5 = "sp_privacy_mine_md5"; diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/EntranceConsts.java b/module_common/src/main/java/com/gh/gamecenter/common/constant/EntranceConsts.java new file mode 100644 index 0000000000..2b607b8691 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/EntranceConsts.java @@ -0,0 +1,249 @@ +package com.gh.gamecenter.common.constant; + + +/** + * @author CsHeng + * @Date 2017/4/25 + * @Time 16:39 + */ +public class EntranceConsts { + + public static final String KEY_TO = "to"; + public static final String KEY_NEXT_TO = "next_to"; + public static final String KEY_NEWSID = "newsId"; + public static final String KEY_GAMEID = "gameId"; + public static final String KEY_GAME_ID = "game_id"; + public static final String KEY_ID = "id"; + public static final String KEY_URL = "url"; + public static final String KEY_BUNDLE = "bundle"; + public static final String KEY_GAMENAME = "gameName"; + public static final String KEY_PACKAGE_MD5 = "package_md5"; + public static final String HOST_ARTICLE = "article"; + public static final String HOST_UPLOAD_VIDEO = "upload_video";//上传视频 + public static final String HOST_UPLOAD_VIDEO_NEW = "upload_video_new"; // 上传视频新(AKA 发视频) + public static final String HOST_VIDEO_SINGLE = "video_single";//指定视频-不能划动 + public static final String HOST_VIDEO_MORE = "video_more";//指定视频-能划动 + public static final String HOST_VIDEO_STREAMING_HOME = "video_streaming_home";//视频流-首页 + public static final String HOST_VIDEO_STREAMING_DESC = "video_streaming_desc";//视频流-游戏介绍进入 + public static final String HOST_VIDEO_COLLECTION = "video_collection";//视频合集 + public static final String HOST_VIDEO_DETAIL = "video_detail"; + public static final String HOST_USERHOME = "userhome";//个人主页 + public static final String HOST_VIDEO = "video"; + public static final String HOST_FORUM = "forum"; + public static final String HOST_CATEGORY = "category";//分类 + public static final String HOST_COLUMN_COLLECTION = "column_collection";//专题合集 + public static final String HOST_COMMUNITY_QUESTION_LABEL_DETAIL = "community_question_label_detail";//问题标签详情 + public static final String HOST_COMMUNITY_COLUMN_DETAIL = "community_column_detail";//专栏详情 + public static final String HOST_BLOCK = "block";//板块 + public static final String HOST_SERVER_BLOCK = "server";//开服表板块 + public static final String HOST_AMWAY_BLOCK = "amway";//安利墙板块 + public static final String HOST_GAME_CALENDAR = "game_calendar";// 指定游戏的开服表页面 + public static final String HOST_HISTORY_APK = "history_apk"; // 历史版本页面 + public static final String HOST_HELP = "help";//Q&A + public static final String HOST_HELP_COLLECTION = "help_collection";//Q&A合集 + public static final String HOST_GAME_UPLOAD = "game_upload";//游戏上传 + public static final String HOST_GAME_ZONE = "game_zone";//游戏专区 + public static final String HOST_COMMUNITY_ARTICLE = "community_article"; + public static final String HOST_COMMUNITY_COLUMN = "community_column"; + public static final String HOST_GAME = "game"; + public static final String HOST_GAME_DOWNLOAD = "game_download"; + public static final String HOST_GAME_NEWS = "game_news"; + public static final String HOST_COLUMN = "column"; + public static final String HOST_WEB = "web"; + public static final String HOST_QQ = "qq"; + public static final String HOST_QQ_GROUP = "qqgroup"; + public static final String HOST_QQ_QUN = "qqqun"; + public static final String HOST_DOWNLOAD = "download"; + public static final String HOST_UPDATE = "update"; + public static final String HOST_LINK = "link"; + public static final String HOST_LIBAO = "libao"; + public static final String HOST_COMMUNITY = "community"; + public static final String HOST_SUGGESTION = "suggestion"; + public static final String HOST_ANSWER = "answer"; + public static final String HOST_QUESTION = "question"; + public static final String HOST_TOOLBOX = "toolbox"; + public static final String HOST_FORUM_DETAIL = "forum_detail"; + public static final String HOST_GAME_RATING_DETAIL = "game_rating_detail"; + public static final String HOST_HELP_AND_FEEDBACK = "help_and_feedback"; + public static final String HOST_LAUNCH_SIMULATOR_GAME = "launch_simulator_game"; + public static final String HOST_HELP_DETAIL = "help_detail"; + public static final String HOST_GAME_COLLECTION_DETAIL = "game_collection_detail"; + public static final String HOST_GAME_COLLECTION_SQUARE = "game_collection_square"; + public static final String HOST_GAME_COLLECTION_EDIT = "game_collection_edit"; + public static final String KEY_DATA = "data"; + public static final String KEY_MESSAGE = "message"; + public static final String KEY_MESSAGE_ID = "message_id"; + public static final String KEY_TYPE = "type"; + public static final String KEY_LINK = "link"; + public static final String KEY_NAME = "name"; + public static final String KEY_POSITION = "position"; + public static final String KEY_SUB_POSITION = "sub_position"; + public static final String KEY_ENTRANCE = "entrance"; + public static final String KEY_ENTRANCE_LINK = "entrance_link"; + public static final String KEY_TARGET = "target"; + public static final String ENTRANCE_BROWSER = "(浏览器)"; + public static final String ENTRANCE_WELCOME = "(启动弹窗)"; + public static final String ENTRANCE_UMENG = "(友盟推送)"; + public static final String ENTRANCE_MIPUSH = "(小米推送)"; + public static final String ENTRANCE_DOWNLOAD = "(下载跳转)"; + public static final String ENTRANCE_RECOMMEND = "(落地页)"; + public static final String ENTRANCE_BLOCK_RECOMMEND = "(推荐入口)"; + public static final String ENTRANCE_AMWAY = "(安利墙)"; + public static final String KEY_SUGGEST_HINT_TYPE = "suggestHintType"; + public static final String KEY_PACKAGENAME = "packageName"; + public static final String KEY_PLATFORM = "platform"; + public static final String KEY_GAME_NAME = "game_name"; + public static final String KEY_VERSION = "version"; + public static final String KEY_CONTENT = "content"; + public static final String KEY_PLUGIN = "plugin"; + public static final String KEY_LOCATION = "location"; + public static final String KEY_CURRENTITEM = "currentItem"; + public static final String KEY_COMMENTID = "commentId"; + public static final String KEY_COMMENT_ID = "comment_id"; + public static final String KEY_TOP_COMMENT_ID = "top_comment_id"; + public static final String KEY_SHOW_KEYBOARD_IF_NEEDED = "show_key_board_if_needed"; + public static final String KEY_PATH = "path"; + public static final String KEY_LOCAL_PATH = "local_path"; + public static final String KEY_OUTER_INFO = "outerInfo"; + public static final String KEY_OLDERUSER = "isOldUser"; + public static final String KEY_SEARCHKEY = "searchKey"; + public static final String KEY_HINT = "hint"; + public static final String KEY_GAME = "game"; + public static final String KEY_GAME_ICON_URL = "gameIconUrl"; + public static final String KEY_SHARECONTENT = "shareContent"; + public static final String KEY_SUGGESTTYPE = "suggestType"; + public static final String KEY_PROLIST = "provinceList"; + public static final String KEY_ORDER = "order"; + public static final String KEY_TAGTYPE = "tagType"; + public static final String KEY_ANSWER_ID = "answerId"; + public static final String KEY_ANSWER_CONTENT = "answerContent"; + public static final String KEY_QUESTIONS_ID = "questionsId"; + public static final String KEY_QUESTIONS_TITLE = "questionsTitle"; + public static final String KEY_ANSWER_OPEN_IN_NEW_PAGE = "openInNewPage"; + public static final String KEY_QUESTIONS_PATCH = "questionsPatch"; + public static final String KEY_INVITE_SEARCH_KEY = "inviteSearchKey"; + public static final String KEY_MESSAGE_TYPE = "messageType"; + public static final String KEY_QUESTIONS_SEARCH_KEY = "questionsSearchKey"; + public static final String KEY_SHOW_COMMENT = "showComment"; + public static final String KEY_SHOW_ANSWER_COMMENT = "showAnswerComment"; + public static final String KEY_RECOMMENDS_CONTENTS = "isRecommendsContents"; + public static final String KEY_VERSION_UPDATE = "versionUpdate"; + public static final String KEY_CHECK_QUESTION_CONCERN = "check_question_concern"; + public static final String KEY_IS_COLUMN_COLLECTION = "is_column_collection";//是专题合集 + public static final String KEY_DRAFT_ID = "draft_id"; + public static final String KEY_KAIFU_LIST = "kaifuList"; + public static final String KEY_CATEGORY = "category"; + public static final String KEY_CATEGORY_ID = "category_id"; + public static final String KEY_CATEGORY_TITLE = "category_title"; + public static final String KEY_CATEGORY_INIT_TITLE = "category_init_title"; + public static final String KEY_BLOCK_DATA = "blockData"; + public static final String KEY_ASK_TAG = "askTag"; + public static final String KEY_SCROLL_TO_LIBAO = "libao"; + public static final String KEY_SCROLL_TO_SERVER = "scroll_to_server"; + public static final String KEY_ASK_COLUMN_TAG = "askColumnTag"; + public static final String KEY_COMMUNITY_ID = "community_id"; + public static final String KEY_COMMUNITY_NAME = "community_name"; + public static final String KEY_COMMUNITY_DATA = "communityData"; + public static final String KEY_TRACE_EVENT = "trace_event"; + public static final String KEY_SUBJECT_DATA = "subjectData"; + public static final String KEY_SUBJECT_TYPE = "subjectType"; + public static final String KEY_USER_ID = "user_id"; + public static final String KEY_QUESTION_TAG = "question_tag"; + public static final String KEY_COLUMN_ID = "column_id"; + public static final String KEY_AUTO_DOWNLOAD = "auto_download"; + public static final String KEY_HIDE_SUGGEST_HINT = "hide_suggest_hint"; + public static final String KEY_HIDE_USELESS_INFO = "hide_useless_info"; + public static final String KEY_COMMUNITY_ARTICLE_ID = "communityArticleId"; + public static final String KEY_ARTICLE_COMMENT_ID = "articleCommentId"; + public static final String KEY_SHOW_ARTICLE_COMMENT = "showArticleComment"; + public static final String KEY_SCROLL_TO_COMMENT_AREA = "scroll_to_comment_area"; + public static final String KEY_RATING_STAR_COUNT = "ratingStarCount"; + public static final String KEY_QUESTION_MODERATOR_PATCH = "questionModeratorPatch"; + public static final String KEY_SKIP_GAME_COMMENT = "skipGameComment"; + public static final String KEY_OPEN_PLATFORM_WINDOW = "openPlatformWindow"; + public static final String KEY_OPEN_KEYBOARD = "openKeyboard"; + public static final String KEY_PATH_VIDEO = "pathVideo"; + public static final String KEY_VIDEO_ID = "videoId"; + public static final String KEY_DIRECT_COMMENT = "directComment"; + public static final String KEY_SORT = "sort"; + public static final String KEY_AMWAY = "amway"; + public static final String KEY_SKIP_SUCCESS_PAGE = "skipSuccessPage"; + public static final String KEY_COLLECTION_ID = "collectionId"; + public static final String KEY_NAVIGATION_TITLE = "navigationTitle"; + public static final String KEY_IMAGE_CROP_RATIO = "imageCropRatio"; + public static final String KEY_OPEN_VIDEO_STREAMING = "openVideoStreaming"; + public static final String KEY_REFERER = "referer"; + public static final String KEY_UUID = "uuid"; + public static final String KEY_IS_HOME_VIDEO = "isHomeVideo"; + public static final String KEY_IS_HOME = "isHome"; + public static final String KEY_TAB_COUNT = "tab_count"; + public static final String KEY_WEB_SHARE = "webShare"; + public static final String KEY_ACTIVITY_NAME = "activityName";//活动名称 + public static final String KEY_PAGINATION_TYPE = "paginationType";//活动分页方式 + public static final String KEY_REQUIRE_REDIRECT = "require_redirect"; // 标记需要再跳转 + public static final String KEY_FIELD_ID = "field_id"; // 专区板块id + public static final String KEY_SECTION_NAME = "section_name"; // 专区专题名 + public static final String KEY_COLUMNNAME = "columnName"; + public static final String KEY_QA_ID = "qaId"; + public static final String KEY_QA_CONTENT_ID = "qaContentId"; + public static final String KEY_QA_CATEGORY_NAME = "qaCategoryName"; + public static final String KEY_QA_TITLE = "qa_title"; + public static final String KEY_QA_COLLECTION_ID = "qaCollectionId"; + public static final String KEY_SHOW_EDIT_DRAFT = "showEditDraft"; + public static final String KEY_ARTICLE_OPEN_IN_NEW_PAGE = "openArticleInNewPage"; + public static final String KEY_ONLY_CREATE_DRAFT = "onlyCreateDraft"; + public static final String KEY_KAIFU_SELECT_TIME = "kaifuSelectTime"; + public static final String KEY_POSTER_PATH = "posterPath"; + public static final String KEY_BLACK_THEME = "blackTheme"; + public static final String KEY_FROM_LOGIN = "fromLogin"; + public static final String KEY_CHANGE_PHONE = "changePhone"; + public static final String KEY_CONFLICT_PHONE = "conflictPhone"; + public static final String KEY_CONFLICT_USER = "conflictUser"; + public static final String KEY_EXPOSURE_SOURCE = "exposure_source"; + public static final String KEY_BBS_ID = "bbs_id"; + public static final String KEY_DIAGNOSIS = "diagnosis"; + public static final String KEY_SIMULATOR = "simulator"; + public static final String KEY_MARKET_DETAILS = "market_details"; + public static final String KEY_CATALOG_ID = "catalogId"; + public static final String KEY_PRIMARY_CATALOG_ID = "primaryCatalogId"; + public static final String KEY_PRIMARY_CATALOG_NAME = "primaryCatalogName"; + public static final String KEY_CATALOG_TITLE = "catalog_title"; + public static final String KEY_CATALOG_INIT_TITLE = "catalog_init_title"; + public static final String KEY_CATEGORY_LIST = "categoty_list"; + public static final String KEY_IS_FREE = "is_free"; + public static final String KEY_IS_SIGN = "is_sign"; + public static final String KEY_IS_FORCED_TO_CERTIFICATE = "is_forced_to_certificate"; + public static final String KEY_IS_FORCED_TO_CERTIFICATE_BUT_WITH_BACKDOOR = "is_forced_to_certificate_but_with_backdoor"; + public static final String KEY_IS_CHOOSE_APK = "is_choose_apk"; + public static final String KEY_TAB_INDEX = "tab_index"; + public static final String KEY_IS_CATEGORY_V2 = "is_category_v2"; + public static final String KEY_SUB_CATEGORY_ID = "sub_category_id"; + public static final String KEY_IS_QA_FEEDBACK = "is_qa_feedback"; + public static final String KEY_IS_CLICK_RECEIVE_BTN = "is_click_receive_btn"; + public static final String KEY_SHOW_QUICK_LOGIN = "show_quick_login"; + public static final String KEY_VIDEO_LIST = "video_list"; + public static final String KEY_CHOOSE_FORUM_TYPE = "choose_forum_type"; + public static final String KEY_CHOOSE_MAX_COUNT = "choose_max_count"; + public static final String KEY_COMMENT_COUNT = "comment_count"; + public static final String KEY_IS_COMMENT_CONVERSATION = "is_comment_conversation"; + public static final String KEY_PARENT_TAG = "parent_tag"; + public static final String KEY_BLOCK_ID = "block_id"; + public static final String KEY_BLOCK_NAME = "block_name"; + public static final String KEY_INSERT_GAME_COLLECTION = "insert_game_collection"; + public static final String KEY_INSERT_BBS_VIDEO = "insert_bbs_video"; + public static final String KEY_IS_FROM_SQUARE = "is_from_square"; + public static final String KEY_FORUM_NAME = "forum_name";//版块名称 + public static final String KEY_GAME_COLLECTION_TITLE = "game_collection_title";//游戏单标题 + public static final String KEY_GAME_COLLECTION_ID = "game_collection_id";//游戏单ID + public static final String KEY_ASSIST_RES = "assist_res"; + public static final String KEY_LAST_SELECTED_POSITION = "last_selected_position"; + public static final String KEY_RECOMMEND_ID = "recommend_id"; + public static final String KEY_LAST_PAGE_DATA = "last_page_data"; + public static final String KET_SHARE_STYLE = "shareStyle"; + public static final String KET_SHAREICON = "shareIcon"; + public static final String KET_SHAREURL = "shareUrl"; + public static final String KET_TITLE = "KET_TITLE"; + public static final String KET_TYPE = "KET_TYPE"; + public static final String KET_SUMMARY = "KET_SUMMARY"; + public static final String KEY_ACTIVITY_ID = "activity_id"; +} diff --git a/app/src/main/java/com/gh/common/constant/ItemViewType.java b/module_common/src/main/java/com/gh/gamecenter/common/constant/ItemViewType.java similarity index 98% rename from app/src/main/java/com/gh/common/constant/ItemViewType.java rename to module_common/src/main/java/com/gh/gamecenter/common/constant/ItemViewType.java index 9408d2a5e9..0efe7c0e2a 100644 --- a/app/src/main/java/com/gh/common/constant/ItemViewType.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/ItemViewType.java @@ -1,4 +1,4 @@ -package com.gh.common.constant; +package com.gh.gamecenter.common.constant; /** * Created by LGT on 2016/10/16. diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/RouteConsts.kt b/module_common/src/main/java/com/gh/gamecenter/common/constant/RouteConsts.kt new file mode 100644 index 0000000000..842eeaa477 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/RouteConsts.kt @@ -0,0 +1,39 @@ +package com.gh.gamecenter.common.constant + +object RouteConsts { + + object activity { + const val splashActivity = "/app/SplashScreenActivity" + + const val aboutActivity = "/setting/AboutActivity" + const val webActivity = "/setting/WebActivity" + const val weiBoShareActivity = "/setting/weiBoShareActivity" + + const val loginActivity = "/login/LoginActivity" + } + + object fragment { + + } + + object provider { + const val app = "/services/app" + const val buildConfig = "/services/buildConfig" + const val activation = "/services/activation" + const val directUtils = "/services/directUtils" + const val defaultUrlHandler = "/services/defaultUrlHandler" + const val userManager = "/services/userManager" + const val config = "/services/config" + const val packageUtils = "/services/packageUtils" + const val checkLogin = "/services/checkLogin" + const val dialogUtils = "/services/dialogUtils" + const val webActivity = "/services/webActivity" + const val quickLogin = "/services/quickLogin" + const val downloadManager = "/services/downloadManager" + const val packageInstaller = "/services/packageInstaller" + const val packageHelper = "/services/packageHelper" + const val energyTask = "/services/energyTask" + const val entranceUtils = "/services/entranceUtils" + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/exposure/ExposureEntity.kt b/module_common/src/main/java/com/gh/gamecenter/common/entity/ExposureEntity.kt similarity index 84% rename from app/src/main/java/com/gh/common/exposure/ExposureEntity.kt rename to module_common/src/main/java/com/gh/gamecenter/common/entity/ExposureEntity.kt index e7104cd0f5..20545fba69 100644 --- a/app/src/main/java/com/gh/common/exposure/ExposureEntity.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/entity/ExposureEntity.kt @@ -1,4 +1,4 @@ -package com.gh.common.exposure +package com.gh.gamecenter.common.entity import android.os.Parcelable import androidx.annotation.Keep @@ -64,7 +64,19 @@ data class ExposureEntity( @SerializedName("dialog_id") var welcomeDialogId: String? = null, @SerializedName("link_title") - var welcomeDialogLinkTitle: String? = null + var welcomeDialogLinkTitle: String? = null, + + //v5.10 补充 + @SerializedName("control_type") + var controlType: String? = null, + @SerializedName("control_name") + var controlName: String? = null, + //跳转链接类型 如:游戏专题 + @SerializedName("control_link_type") + var controlLinkType: String? = null, + //跳转链接标题 如:热门好游 + @SerializedName("control_link_name") + var controlLinkName: String? = null, ) : Parcelable { fun setContainerInfo(id: String?, type: String?) { diff --git a/app/src/main/java/com/gh/gamecenter/entity/NormalShareEntity.kt b/module_common/src/main/java/com/gh/gamecenter/common/entity/NormalShareEntity.kt similarity index 89% rename from app/src/main/java/com/gh/gamecenter/entity/NormalShareEntity.kt rename to module_common/src/main/java/com/gh/gamecenter/common/entity/NormalShareEntity.kt index 7ccfa93a2d..32f5341078 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/NormalShareEntity.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/entity/NormalShareEntity.kt @@ -1,7 +1,7 @@ -package com.gh.gamecenter.entity +package com.gh.gamecenter.common.entity import android.os.Parcelable -import com.gh.common.util.ShareUtils +import com.gh.gamecenter.common.utils.ShareUtils import kotlinx.parcelize.Parcelize @Parcelize diff --git a/app/src/main/java/com/gh/gamecenter/entity/ShareEntity.kt b/module_common/src/main/java/com/gh/gamecenter/common/entity/ShareEntity.kt similarity index 88% rename from app/src/main/java/com/gh/gamecenter/entity/ShareEntity.kt rename to module_common/src/main/java/com/gh/gamecenter/common/entity/ShareEntity.kt index 3ab43b1690..6423794996 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ShareEntity.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/entity/ShareEntity.kt @@ -1,4 +1,4 @@ -package com.gh.gamecenter.entity +package com.gh.gamecenter.common.entity import androidx.annotation.Keep diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBMiPush.java b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBMiPush.java similarity index 91% rename from app/src/main/java/com/gh/gamecenter/eventbus/EBMiPush.java rename to module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBMiPush.java index c49344c6e3..66314c524b 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBMiPush.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBMiPush.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.eventbus; +package com.gh.gamecenter.common.eventbus; public class EBMiPush { diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBShare.java b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShare.java similarity index 81% rename from app/src/main/java/com/gh/gamecenter/eventbus/EBShare.java rename to module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShare.java index 8fa0c70968..e7cce144c5 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBShare.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShare.java @@ -1,6 +1,6 @@ -package com.gh.gamecenter.eventbus; +package com.gh.gamecenter.common.eventbus; -import com.gh.common.util.ShareUtils; +import com.gh.gamecenter.common.utils.ShareUtils; public class EBShare { public ShareUtils.ShareEntrance shareEntrance; diff --git a/app/src/main/java/com/gh/gamecenter/eventbus/EBShowDialog.java b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShowDialog.java similarity index 92% rename from app/src/main/java/com/gh/gamecenter/eventbus/EBShowDialog.java rename to module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShowDialog.java index a1170407d3..411a11033c 100644 --- a/app/src/main/java/com/gh/gamecenter/eventbus/EBShowDialog.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShowDialog.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.eventbus; +package com.gh.gamecenter.common.eventbus; public class EBShowDialog { diff --git a/app/src/main/java/com/gh/common/exposure/meta/Meta.kt b/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/Meta.kt similarity index 93% rename from app/src/main/java/com/gh/common/exposure/meta/Meta.kt rename to module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/Meta.kt index 6b4cc29d0a..e9210be074 100644 --- a/app/src/main/java/com/gh/common/exposure/meta/Meta.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/Meta.kt @@ -1,4 +1,4 @@ -package com.gh.common.exposure.meta +package com.gh.gamecenter.common.exposure.meta import android.os.Parcelable import androidx.annotation.Keep diff --git a/app/src/main/java/com/gh/common/exposure/meta/MetaUtil.kt b/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/MetaUtil.kt similarity index 74% rename from app/src/main/java/com/gh/common/exposure/meta/MetaUtil.kt rename to module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/MetaUtil.kt index a80eece63a..c551e3e2e0 100644 --- a/app/src/main/java/com/gh/common/exposure/meta/MetaUtil.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/MetaUtil.kt @@ -1,4 +1,4 @@ -package com.gh.common.exposure.meta +package com.gh.gamecenter.common.exposure.meta import android.Manifest import android.app.Application @@ -9,17 +9,20 @@ import android.os.Build import android.provider.Settings import android.telephony.TelephonyManager import android.text.TextUtils -import com.gh.common.constant.Constants -import com.gh.common.util.SPUtils -import com.gh.common.util.tryWithDefaultCatch -import com.gh.gamecenter.BuildConfig -import com.gh.gamecenter.manager.UserManager -import com.halo.assistant.HaloApp +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.core.utils.SPUtils +import com.gh.gamecenter.common.utils.tryWithDefaultCatch +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IAppProvider +import com.gh.gamecenter.core.provider.IBuildConfigProvider +import com.gh.gamecenter.core.provider.IUserManagerProvider import com.walkud.rom.checker.RomIdentifier object MetaUtil { - private val application: Application = HaloApp.getInstance().application + private val application: Application = HaloApp.getInstance() private var channel = "" private var m: Meta? = null @@ -39,23 +42,27 @@ object MetaUtil { romVersion = RomIdentifier.getRom().versionName } } - - m = Meta(mac = null, - jnfj = getBase64EncodedIMEI(), - model = getModel(), - manufacturer = getManufacturer(), - dia = getBase64EncodedAndroidId(), - android_sdk = getAndroidSDK(), - android_version = getAndroidVersion(), - network = getNetwork(), - os = getOS(), - gid = HaloApp.getInstance().gid, - oaid = HaloApp.getInstance().oaid, - channel = getChannel(), - appVersion = BuildConfig.VERSION_NAME, - userId = UserManager.getInstance().userId, - exposureVersion = BuildConfig.EXPOSURE_VERSION, - rom = romName + "" + romVersion) + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + val buildConfigProvider = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + val userManagerProvider = ARouter.getInstance().build(RouteConsts.provider.userManager).navigation() as? IUserManagerProvider + m = Meta( + mac = null, + jnfj = getBase64EncodedIMEI(), + model = getModel(), + manufacturer = getManufacturer(), + dia = getBase64EncodedAndroidId(), + android_sdk = getAndroidSDK(), + android_version = getAndroidVersion(), + network = getNetwork(), + os = getOS(), + gid = appProvider?.getGid(), + oaid = appProvider?.getOaid(), + channel = getChannel(), + appVersion = buildConfigProvider?.getVersionName(), + userId = userManagerProvider?.getUserId(), + exposureVersion = buildConfigProvider?.getExposureVersion(), + rom = romName + "" + romVersion + ) } fun getMeta(): Meta { @@ -66,7 +73,8 @@ object MetaUtil { } private fun getChannel(): String? { - return HaloApp.getInstance().channel + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + return appProvider?.getChannel() } /** @@ -74,8 +82,8 @@ object MetaUtil { */ @JvmStatic fun getIMEI(): String { - - if (!HaloApp.isUserAcceptPrivacyPolicy(HaloApp.getInstance().application)) { + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + if (appProvider?.isUserAcceptPrivacyPolicy(HaloApp.getInstance()) == false) { return "" } @@ -160,8 +168,8 @@ object MetaUtil { @JvmStatic fun getAndroidId(): String { - - if (!HaloApp.isUserAcceptPrivacyPolicy(HaloApp.getInstance().application)) { + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + if (appProvider?.isUserAcceptPrivacyPolicy(HaloApp.getInstance()) == false) { return "" } @@ -203,7 +211,7 @@ object MetaUtil { return "unknown" val activeNetwork = (application.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager).activeNetworkInfo - ?: return "unknown" + ?: return "unknown" return when (activeNetwork.type) { ConnectivityManager.TYPE_WIFI -> "Wifi" diff --git a/app/src/main/java/com/gh/common/image/EmptyDecoder.kt b/module_common/src/main/java/com/gh/gamecenter/common/image/EmptyDecoder.kt similarity index 96% rename from app/src/main/java/com/gh/common/image/EmptyDecoder.kt rename to module_common/src/main/java/com/gh/gamecenter/common/image/EmptyDecoder.kt index 7f1bef587c..216b708617 100644 --- a/app/src/main/java/com/gh/common/image/EmptyDecoder.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/image/EmptyDecoder.kt @@ -1,4 +1,4 @@ -package com.gh.common.image +package com.gh.gamecenter.common.image import com.facebook.imagepipeline.common.ImageDecodeOptions import com.facebook.imagepipeline.decoder.ImageDecoder diff --git a/app/src/main/java/com/gh/common/json/JsonBuilder.kt b/module_common/src/main/java/com/gh/gamecenter/common/json/JsonBuilder.kt similarity index 95% rename from app/src/main/java/com/gh/common/json/JsonBuilder.kt rename to module_common/src/main/java/com/gh/gamecenter/common/json/JsonBuilder.kt index dabce29095..73af3e15d6 100644 --- a/app/src/main/java/com/gh/common/json/JsonBuilder.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/json/JsonBuilder.kt @@ -1,4 +1,4 @@ -package com.gh.common.json +package com.gh.gamecenter.common.json import org.json.JSONArray import org.json.JSONObject diff --git a/app/src/main/java/com/gh/common/loghub/LoghubDatabase.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt similarity index 94% rename from app/src/main/java/com/gh/common/loghub/LoghubDatabase.kt rename to module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt index f94d0bc27f..6974bd69c2 100644 --- a/app/src/main/java/com/gh/common/loghub/LoghubDatabase.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubDatabase.kt @@ -1,4 +1,4 @@ -package com.gh.common.loghub +package com.gh.gamecenter.common.loghub import android.content.Context import androidx.room.Database diff --git a/app/src/main/java/com/gh/common/loghub/LoghubEvent.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEvent.kt similarity index 92% rename from app/src/main/java/com/gh/common/loghub/LoghubEvent.kt rename to module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEvent.kt index 84e876a7cc..8c2a057985 100644 --- a/app/src/main/java/com/gh/common/loghub/LoghubEvent.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEvent.kt @@ -1,4 +1,4 @@ -package com.gh.common.loghub +package com.gh.gamecenter.common.loghub import android.os.Parcelable import androidx.annotation.Keep diff --git a/app/src/main/java/com/gh/common/loghub/LoghubEventDao.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEventDao.kt similarity index 90% rename from app/src/main/java/com/gh/common/loghub/LoghubEventDao.kt rename to module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEventDao.kt index 1f3b4bf0a0..07b0f2f73a 100644 --- a/app/src/main/java/com/gh/common/loghub/LoghubEventDao.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubEventDao.kt @@ -1,4 +1,4 @@ -package com.gh.common.loghub +package com.gh.gamecenter.common.loghub import androidx.room.* diff --git a/app/src/main/java/com/gh/common/loghub/LoghubHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubHelper.kt similarity index 94% rename from app/src/main/java/com/gh/common/loghub/LoghubHelper.kt rename to module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubHelper.kt index 393ba1ba27..621a643502 100644 --- a/app/src/main/java/com/gh/common/loghub/LoghubHelper.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubHelper.kt @@ -1,8 +1,8 @@ -package com.gh.common.loghub +package com.gh.gamecenter.common.loghub import com.aliyun.sls.android.producer.* -import com.gh.common.util.PackageFlavorHelper -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.utils.PackageFlavorHelper import com.lightgame.utils.Utils /** @@ -48,7 +48,7 @@ object LoghubHelper { // 每次发送前会把日志保存到本地的binlog文件,只有发送成功才会删除,保证日志上传At Least Once setPersistent(1) // 持久化的文件名,需要保证文件所在的文件夹已创建。配置多个客户端时,不应设置相同文件 - setPersistentFilePath(HaloApp.getInstance().application.filesDir.absolutePath + "/${logStore}.dat") + setPersistentFilePath(HaloApp.getInstance().filesDir.absolutePath + "/${logStore}.dat") // 是否每次AddLog强制刷新,高可靠性场景建议打开 setPersistentForceFlush(1) // 持久化文件滚动个数,建议设置成10。 diff --git a/app/src/main/java/com/gh/common/loghub/LoghubUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt similarity index 90% rename from app/src/main/java/com/gh/common/loghub/LoghubUtils.kt rename to module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt index 6862d9c871..a86331aafd 100644 --- a/app/src/main/java/com/gh/common/loghub/LoghubUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubUtils.kt @@ -1,11 +1,11 @@ -package com.gh.common.loghub +package com.gh.gamecenter.common.loghub import android.app.Application import androidx.annotation.Keep import com.aliyun.sls.android.producer.Log -import com.gh.common.exposure.ExposureEntity -import com.gh.common.exposure.meta.Meta -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.entity.ExposureEntity +import com.gh.gamecenter.common.exposure.meta.Meta +import com.gh.gamecenter.common.utils.tryWithDefaultCatch import org.json.JSONObject import java.util.concurrent.ExecutorService @@ -103,8 +103,8 @@ object LoghubUtils { @Keep data class SimpleLogContainerEntity( - var event: String? = null, - var action: String? = null, - var meta: Meta? = null, - var payload: ExposureEntity? = null, - var timestamp: Long? = 0) \ No newline at end of file + var event: String? = null, + var action: String? = null, + var meta: Meta? = null, + var payload: ExposureEntity? = null, + var timestamp: Long? = 0) \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/observer/VolumeObserver.kt b/module_common/src/main/java/com/gh/gamecenter/common/observer/VolumeObserver.kt similarity index 79% rename from app/src/main/java/com/gh/common/observer/VolumeObserver.kt rename to module_common/src/main/java/com/gh/gamecenter/common/observer/VolumeObserver.kt index 7458fe969a..b82ddae7cc 100644 --- a/app/src/main/java/com/gh/common/observer/VolumeObserver.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/observer/VolumeObserver.kt @@ -1,18 +1,18 @@ -package com.gh.common.observer +package com.gh.gamecenter.common.observer import android.content.Context import android.database.ContentObserver import android.media.AudioManager import android.os.Handler -import com.gh.common.util.tryCatchInRelease -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.utils.tryCatchInRelease class VolumeObserver(var callback: MuteCallback? = null) : ContentObserver(Handler()) { var previousVolume: Int = 0 init { - val audio = HaloApp.getInstance().application.getSystemService(Context.AUDIO_SERVICE) as AudioManager + val audio = HaloApp.getInstance().getSystemService(Context.AUDIO_SERVICE) as AudioManager // 部分设备的 audioManager getStreamVolume 内部会触发空指针 :( tryCatchInRelease { previousVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC) } } @@ -20,7 +20,7 @@ class VolumeObserver(var callback: MuteCallback? = null) override fun onChange(selfChange: Boolean) { super.onChange(selfChange) - val audio = HaloApp.getInstance().application.getSystemService(Context.AUDIO_SERVICE) as AudioManager + val audio = HaloApp.getInstance().getSystemService(Context.AUDIO_SERVICE) as AudioManager var currentVolume = 0 tryCatchInRelease { diff --git a/app/src/main/java/com/gh/gamecenter/user/ApiResponse.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/ApiResponse.java similarity index 94% rename from app/src/main/java/com/gh/gamecenter/user/ApiResponse.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/ApiResponse.java index acb149085c..f8dae0fa42 100644 --- a/app/src/main/java/com/gh/gamecenter/user/ApiResponse.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/ApiResponse.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.user; +package com.gh.gamecenter.common.retrofit; import retrofit2.HttpException; diff --git a/module_common/src/main/java/com/gh/gamecenter/common/retrofit/ApiService.kt b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/ApiService.kt new file mode 100644 index 0000000000..1abc6807bc --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/ApiService.kt @@ -0,0 +1,22 @@ +package com.gh.gamecenter.common.retrofit + +import io.reactivex.Single +import okhttp3.RequestBody +import okhttp3.ResponseBody +import retrofit2.http.Body +import retrofit2.http.POST +import retrofit2.http.Path + +interface ApiService { + /** + * 分享统计 + */ + @POST("shares") + fun postShareResult(@Body body: RequestBody): Single + + /** + * 游戏单活动上报任务 + */ + @POST("lottery/incr-progress/{task_event}/{game_list_id}") + fun postGameCollectionTask(@Path("task_event") event: String, @Path("game_list_id") gameCollectionId: String): Single +} \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/retrofit/BaseRetrofitManager.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/BaseRetrofitManager.java new file mode 100644 index 0000000000..0de17ffbc7 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/BaseRetrofitManager.java @@ -0,0 +1,53 @@ +package com.gh.gamecenter.common.retrofit; + +import android.content.Context; + +import com.chuckerteam.chucker.api.ChuckerCollector; +import com.chuckerteam.chucker.api.ChuckerInterceptor; +import com.chuckerteam.chucker.api.RetentionManager; +import com.gh.gamecenter.Injection; + +import java.io.File; +import java.util.concurrent.TimeUnit; + +import okhttp3.Cache; +import okhttp3.OkHttpClient; +import retrofit2.Retrofit; +import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; +import retrofit2.converter.gson.GsonConverterFactory; + +/** + * Created by LGT on 2016/11/7. + * Retrofit 管理工具 + */ +abstract public class BaseRetrofitManager { + + public static final int NORMAL_CONN_TIME_OUT = 5; + public static final int NORMAL_READ_TIME_OUT = 5; + public static final int UPLOAD_CALL_TIME_OUT = 20; // 图片上传超时时间 + + public static T provideService(OkHttpClient client, String url, Class serviceCls) { + return new Retrofit.Builder() + .client(client) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + .baseUrl(url).build().create(serviceCls); + } + + public OkHttpClient getOkHttpConfig(Context context, int callTimeout, int maxRetryCount) { + final Cache cache = new Cache(new File(OkHttpCache.getCachePath(context)), 10 * 1024 * 1024); // 10Mb + + return Injection.provideRetrofitBuilder() + .addInterceptor(new OkHttpCacheInterceptor(context)) + .addInterceptor(new OkHttpRetryInterceptor(context, maxRetryCount)) + .addInterceptor(new ChuckerInterceptor(context, new ChuckerCollector(context, true, RetentionManager.Period.ONE_DAY))) + .addNetworkInterceptor(new OkHttpNetworkInterceptor(context)) + .connectTimeout(NORMAL_CONN_TIME_OUT, TimeUnit.SECONDS) + .readTimeout(NORMAL_READ_TIME_OUT, TimeUnit.SECONDS) + .callTimeout(callTimeout, TimeUnit.SECONDS) + .pingInterval(30, TimeUnit.SECONDS) // 加入间隔为30秒的心跳包,用于解决闲置 Http/2 连接关闭时间与服务器不一造成 Connection Timeout 的问题 (https://github.com/square/okhttp/issues/3261) + .cache(cache) + .build(); + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/BiResponse.kt b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/BiResponse.kt similarity index 94% rename from app/src/main/java/com/gh/gamecenter/retrofit/BiResponse.kt rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/BiResponse.kt index 9da54786f4..e252d7b4ef 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/BiResponse.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/BiResponse.kt @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit +package com.gh.gamecenter.common.retrofit import com.lightgame.utils.Utils import io.reactivex.functions.BiConsumer diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/EmptyResponse.kt b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/EmptyResponse.kt similarity index 93% rename from app/src/main/java/com/gh/gamecenter/retrofit/EmptyResponse.kt rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/EmptyResponse.kt index 9785d51898..b73cbba6a7 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/EmptyResponse.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/EmptyResponse.kt @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit +package com.gh.gamecenter.common.retrofit import com.lightgame.utils.Utils import io.reactivex.functions.BiConsumer diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/FileRequestBody.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/FileRequestBody.java similarity index 98% rename from app/src/main/java/com/gh/gamecenter/retrofit/FileRequestBody.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/FileRequestBody.java index 00b5037209..a8d045bf02 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/FileRequestBody.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/FileRequestBody.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import android.os.Handler; import android.os.Looper; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/JSONArrayResponse.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/JSONArrayResponse.java similarity index 91% rename from app/src/main/java/com/gh/gamecenter/retrofit/JSONArrayResponse.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/JSONArrayResponse.java index 005e83e10e..45cc5dec4b 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/JSONArrayResponse.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/JSONArrayResponse.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import org.json.JSONArray; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/JSONObjectResponse.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/JSONObjectResponse.java similarity index 91% rename from app/src/main/java/com/gh/gamecenter/retrofit/JSONObjectResponse.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/JSONObjectResponse.java index 27201a0e0a..5be71e655b 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/JSONObjectResponse.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/JSONObjectResponse.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import org.json.JSONObject; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/ObservableUtil.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/ObservableUtil.java similarity index 98% rename from app/src/main/java/com/gh/gamecenter/retrofit/ObservableUtil.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/ObservableUtil.java index d74b82cfef..f7647508b7 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/ObservableUtil.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/ObservableUtil.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import java.util.concurrent.CountDownLatch; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpCache.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpCache.java similarity index 94% rename from app/src/main/java/com/gh/gamecenter/retrofit/OkHttpCache.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpCache.java index 2482c1a0dd..a8a1b4e50e 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpCache.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpCache.java @@ -1,9 +1,9 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import android.content.Context; -import com.gh.common.util.MD5Utils; -import com.gh.common.util.TimestampUtils; +import com.gh.gamecenter.core.utils.MD5Utils; +import com.gh.gamecenter.common.utils.TimestampUtils; import com.lightgame.download.FileUtils; import java.io.File; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpCacheInterceptor.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpCacheInterceptor.java similarity index 66% rename from app/src/main/java/com/gh/gamecenter/retrofit/OkHttpCacheInterceptor.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpCacheInterceptor.java index 0c823515ca..a5958a9a62 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpCacheInterceptor.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpCacheInterceptor.java @@ -1,16 +1,18 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import android.content.Context; import android.text.TextUtils; -import com.gh.common.exposure.meta.MetaUtil; -import com.gh.common.util.GzipUtils; -import com.gh.common.util.NetworkUtils; -import com.gh.common.util.PackageUtils; -import com.gh.common.util.TimestampUtils; -import com.gh.gamecenter.BuildConfig; -import com.gh.gamecenter.manager.UserManager; -import com.halo.assistant.HaloApp; +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.utils.NetworkUtils; +import com.gh.gamecenter.common.utils.TimestampUtils; +import com.gh.gamecenter.core.provider.IAppProvider; +import com.gh.gamecenter.core.provider.IBuildConfigProvider; +import com.gh.gamecenter.core.provider.IPackageUtilsProvider; +import com.gh.gamecenter.core.provider.IUserManagerProvider; +import com.gh.gamecenter.core.utils.GzipUtils; import com.lightgame.utils.Utils; import java.io.IOException; @@ -28,11 +30,11 @@ import okio.Buffer; /** * Created by LGT on 2016/11/8. */ -class OkHttpCacheInterceptor implements Interceptor { +public class OkHttpCacheInterceptor implements Interceptor { private Context mContext; - OkHttpCacheInterceptor(Context context) { + public OkHttpCacheInterceptor(Context context) { mContext = context; } @@ -42,7 +44,8 @@ class OkHttpCacheInterceptor implements Interceptor { // 拦截参数缺失的非法请求 if (request.url().pathSegments().contains("")) { - if (BuildConfig.DEBUG) { + IBuildConfigProvider buildConfig = (IBuildConfigProvider) ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation(); + if (buildConfig.isDebug()) { Utils.log("OkHttpCacheInterceptor-> 已拦截参数缺失的请求:" + request.url().toString()); } return new Response.Builder() @@ -84,9 +87,12 @@ class OkHttpCacheInterceptor implements Interceptor { .build(); } - String token = UserManager.getInstance().getToken(); - String deviceId = HaloApp.getInstance().getGid(); - String temporaryLocalDeviceId = HaloApp.getInstance().getTemporaryLocalDeviceId(); + IAppProvider appProvider = (IAppProvider) ARouter.getInstance().build(RouteConsts.provider.app).navigation(); + IUserManagerProvider userManagerProvider = (IUserManagerProvider) ARouter.getInstance().build(RouteConsts.provider.userManager).navigation(); + IPackageUtilsProvider packageUtilsConfig = (IPackageUtilsProvider) ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation(); + String token = userManagerProvider.getToken(); + String deviceId = appProvider.getGid(); + String temporaryLocalDeviceId = appProvider.getTemporaryLocalDeviceId(); if (!TextUtils.isEmpty(token)) { request = request.newBuilder() .addHeader("TOKEN", token) @@ -122,11 +128,11 @@ class OkHttpCacheInterceptor implements Interceptor { request = request.newBuilder() .addHeader("JNFJ", MetaUtil.getBase64EncodedIMEI()) - .addHeader("CHANNEL", HaloApp.getInstance().getChannel()) - .addHeader("VERSION", PackageUtils.getGhVersionName()) - .addHeader("OAID", HaloApp.getInstance().getOAID()) + .addHeader("CHANNEL", appProvider.getChannel()) + .addHeader("VERSION", packageUtilsConfig.getGhVersionName()) + .addHeader("OAID", appProvider.getOaid()) .removeHeader("User-Agent") - .addHeader("User-Agent", HaloApp.getInstance().getUserAgent()) + .addHeader("User-Agent", appProvider.getUserAgent()) .build(); Response response = chain.proceed(request); @@ -167,11 +173,12 @@ class OkHttpCacheInterceptor implements Interceptor { */ private String addVersionAndChannel(String url) { if (TextUtils.isEmpty(url)) return url; - + IBuildConfigProvider buildConfigProvider = (IBuildConfigProvider) ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation(); + IAppProvider appProvider = (IAppProvider) ARouter.getInstance().build(RouteConsts.provider.app).navigation(); if (url.contains("?")) { - return url + "&version=" + BuildConfig.VERSION_NAME + "&channel=" + HaloApp.getInstance().getChannel(); + return url + "&version=" + buildConfigProvider.getVersionName() + "&channel=" + appProvider.getChannel(); } else { - return url + "?version=" + BuildConfig.VERSION_NAME + "&channel=" + HaloApp.getInstance().getChannel(); + return url + "?version=" + buildConfigProvider.getVersionName() + "&channel=" + appProvider.getChannel(); } } @@ -179,16 +186,17 @@ class OkHttpCacheInterceptor implements Interceptor { * 为 url 添加用户 mark */ private String appendUserMarkIfNeeded(String url) { + IAppProvider appProvider = (IAppProvider) ARouter.getInstance().build(RouteConsts.provider.app).navigation(); if (TextUtils.isEmpty(url) - || TextUtils.isEmpty(HaloApp.getInstance().getServerUserMark()) + || TextUtils.isEmpty(appProvider.getServerUserMark()) || url.contains("mark=")) { return url; } if (url.contains("?")) { - return url + "&mark=" + HaloApp.getInstance().getServerUserMark(); + return url + "&mark=" + appProvider.getServerUserMark(); } else { - return url + "?mark=" + HaloApp.getInstance().getServerUserMark(); + return url + "?mark=" + appProvider.getServerUserMark(); } } diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpNetworkInterceptor.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpNetworkInterceptor.java similarity index 91% rename from app/src/main/java/com/gh/gamecenter/retrofit/OkHttpNetworkInterceptor.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpNetworkInterceptor.java index dacf3429f1..c217ae0154 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpNetworkInterceptor.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpNetworkInterceptor.java @@ -1,10 +1,10 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import android.content.Context; -import com.gh.common.util.GzipUtils; -import com.gh.common.util.NetworkUtils; -import com.gh.common.util.TimestampUtils; +import com.gh.gamecenter.core.utils.GzipUtils; +import com.gh.gamecenter.common.utils.NetworkUtils; +import com.gh.gamecenter.common.utils.TimestampUtils; import java.io.IOException; @@ -19,7 +19,7 @@ import okio.BufferedSource; /** * Created by LGT on 2016/11/8. */ -class OkHttpNetworkInterceptor implements Interceptor { +public class OkHttpNetworkInterceptor implements Interceptor { // 空 JSONArray ResponseBody // private static final ResponseBody EMPTY_ARRAY_BODY = ResponseBody.create( @@ -47,7 +47,7 @@ class OkHttpNetworkInterceptor implements Interceptor { private final Context mContext; - OkHttpNetworkInterceptor(Context context) { + public OkHttpNetworkInterceptor(Context context) { mContext = context; } diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpRetryInterceptor.kt b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpRetryInterceptor.kt similarity index 59% rename from app/src/main/java/com/gh/gamecenter/retrofit/OkHttpRetryInterceptor.kt rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpRetryInterceptor.kt index 71af64c510..d09f8caf0f 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/OkHttpRetryInterceptor.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/OkHttpRetryInterceptor.kt @@ -1,14 +1,16 @@ -package com.gh.gamecenter.retrofit +package com.gh.gamecenter.common.retrofit import android.content.Context import android.os.Build import android.text.TextUtils -import com.gh.common.exposure.meta.MetaUtil -import com.gh.common.util.DeviceUtils -import com.gh.common.util.MtaHelper -import com.gh.gamecenter.BuildConfig -import com.gh.gamecenter.manager.UserManager -import com.halo.assistant.HaloApp +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.utils.DeviceUtils +import com.gh.gamecenter.core.provider.IBuildConfigProvider +import com.gh.gamecenter.core.provider.IUserManagerProvider +import com.gh.gamecenter.core.utils.MtaHelper import com.lightgame.config.CommonDebug import okhttp3.* import okhttp3.Response @@ -43,52 +45,54 @@ class OkHttpRetryInterceptor constructor(context: Context, val maxRetryCount: In val token = chain.request().header("token") val url = request.url().toString() while ((response == null || (token != null && response.code() == 401 && (!url.contains("refresh")))) // 排除刷新token接口,避免进入死循环 - && ++tryCount <= maxRetryCount) { + && ++tryCount <= maxRetryCount + ) { if (CommonDebug.IS_DEBUG) { CommonDebug.logMethodWithParams(this, "Retrying ${request.url()} for $tryCount") } if (url.contains("users:validate") && !TextUtils.isEmpty(request.header("retry")) - || url.contains("/logout")) { // 过滤在注销/当前类请求的 userinfo + || url.contains("/logout") + ) { // 过滤在注销/当前类请求的 userinfo tryCount = maxRetryCount + 1 break } if (response != null && token != null) { // TOKEN 过期处理 - UserManager.getInstance().refreshToken(token, object : UserManager.refreshCallBack { - override fun onLogin() { - val newBuilder = request.newBuilder() - newBuilder.header("TOKEN", UserManager.getInstance().token) - request = newBuilder.build() - response = doRequest(chain, request) - } - - override fun onLoginFailure(e: String?) { - tryCount = maxRetryCount + 1 // 只要token刷新异常直接主动退出登录 - if (e != null && e.isNotEmpty()) { - response = response?.newBuilder()?.body(ResponseBody.create(MediaType.parse("application/json"), e))?.build() - } + val userManagerProvider = ARouter.getInstance().build(RouteConsts.provider.userManager).navigation() as? IUserManagerProvider + userManagerProvider?.refreshToken(token, { + val newBuilder = request.newBuilder() + newBuilder.header("TOKEN", userManagerProvider.getToken()) + request = newBuilder.build() + response = doRequest(chain, request) + }, { e -> + tryCount = maxRetryCount + 1 // 只要token刷新异常直接主动退出登录 + if (e != null && e.isNotEmpty()) { + response = response?.newBuilder()?.body(ResponseBody.create(MediaType.parse("application/json"), e))?.build() } }) } else { // 网络错误处理 response = doRequest(chain, request) } } - + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as IBuildConfigProvider // 上报网络错误,过滤 404 以及非用户可感知的请求 val api = pathSegmentsToString(request.url().pathSegments()) if (tryCount == maxRetryCount + 1 - && (response == null || response?.code() != 404) - && isUserAwareApi(api)) { - MtaHelper.onEvent("网络错误", - "访问接口", api, - "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().application), - "光环版本", BuildConfig.VERSION_NAME, - "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().application), - "JNFJ", MetaUtil.getBase64EncodedIMEI(), - "机型", Build.MODEL, - "厂商", Build.MANUFACTURER, - "Android版本", Build.VERSION.RELEASE) + && (response == null || response?.code() != 404) + && isUserAwareApi(api) + ) { + MtaHelper.onEvent( + "网络错误", + "访问接口", api, + "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance()), + "光环版本", buildConfig.getVersionName(), + "网络状态", DeviceUtils.getNetwork(HaloApp.getInstance()), + "JNFJ", MetaUtil.getBase64EncodedIMEI(), + "机型", Build.MODEL, + "厂商", Build.MANUFACTURER, + "Android版本", Build.VERSION.RELEASE + ) } // after retries still fail, so we throw IOException as expected diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/Response.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/Response.java similarity index 91% rename from app/src/main/java/com/gh/gamecenter/retrofit/Response.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/Response.java index d4fc399630..b8f8479516 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/Response.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/Response.java @@ -1,10 +1,9 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import androidx.annotation.Nullable; -import com.gh.common.util.AppDebugConfig; -import com.gh.gamecenter.BuildConfig; -import com.gh.gamecenter.user.ApiResponse; +import com.gh.gamecenter.common.BuildConfig; +import com.gh.gamecenter.core.utils.AppDebugConfig; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitCallback.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/RetrofitCallback.java similarity index 93% rename from app/src/main/java/com/gh/gamecenter/retrofit/RetrofitCallback.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/RetrofitCallback.java index e25bc925f6..2fd61c379f 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/RetrofitCallback.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/RetrofitCallback.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import retrofit2.Call; import retrofit2.Callback; diff --git a/module_common/src/main/java/com/gh/gamecenter/common/retrofit/RetrofitManager.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/RetrofitManager.java new file mode 100644 index 0000000000..f59e236a67 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/RetrofitManager.java @@ -0,0 +1,41 @@ +package com.gh.gamecenter.common.retrofit; + +import android.content.Context; + +import com.gh.gamecenter.common.utils.EnvHelper; +import com.gh.gamecenter.core.HaloApp; + +import okhttp3.OkHttpClient; + +/** + * Created by LGT on 2016/11/7. + * Retrofit 管理工具 + */ +public class RetrofitManager extends BaseRetrofitManager { + + private final ApiService mApiService; + private final ApiService mNewApiService; + + private RetrofitManager() { + Context context = HaloApp.getInstance().getApplicationContext(); + OkHttpClient okHttpNormalConfig = getOkHttpConfig(context, 0, 2); + mApiService = provideService(okHttpNormalConfig, EnvHelper.getHost(), ApiService.class); + mNewApiService = provideService(okHttpNormalConfig, EnvHelper.getNewHost(), ApiService.class); + } + + public static RetrofitManager getInstance() { + return SingletonHolder.INSTANCE; + } + + public ApiService getApi() { + return mApiService; + } + + public ApiService getNewApi() { + return mNewApiService; + } + + private static class SingletonHolder { + private static final RetrofitManager INSTANCE = new RetrofitManager(); + } +} diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/StringResponse.java b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/StringResponse.java similarity index 90% rename from app/src/main/java/com/gh/gamecenter/retrofit/StringResponse.java rename to module_common/src/main/java/com/gh/gamecenter/common/retrofit/StringResponse.java index bf0f837031..e1007aea9d 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/StringResponse.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/retrofit/StringResponse.java @@ -1,4 +1,4 @@ -package com.gh.gamecenter.retrofit; +package com.gh.gamecenter.common.retrofit; import java.io.IOException; diff --git a/app/src/main/java/com/gh/common/structure/FixedSizeLinkedHashSet.kt b/module_common/src/main/java/com/gh/gamecenter/common/structure/FixedSizeLinkedHashSet.kt similarity index 88% rename from app/src/main/java/com/gh/common/structure/FixedSizeLinkedHashSet.kt rename to module_common/src/main/java/com/gh/gamecenter/common/structure/FixedSizeLinkedHashSet.kt index f7bd575bcc..3960197d16 100644 --- a/app/src/main/java/com/gh/common/structure/FixedSizeLinkedHashSet.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/structure/FixedSizeLinkedHashSet.kt @@ -1,4 +1,4 @@ -package com.gh.common.structure +package com.gh.gamecenter.common.structure class FixedSizeLinkedHashSet(var maxSize: Int) : LinkedHashSet() { override fun add(element: T): Boolean { diff --git a/app/src/main/java/com/gh/common/syncpage/ISyncAdapterHandler.kt b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/ISyncAdapterHandler.kt similarity index 84% rename from app/src/main/java/com/gh/common/syncpage/ISyncAdapterHandler.kt rename to module_common/src/main/java/com/gh/gamecenter/common/syncpage/ISyncAdapterHandler.kt index 4fafd0ad62..a65f005018 100644 --- a/app/src/main/java/com/gh/common/syncpage/ISyncAdapterHandler.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/ISyncAdapterHandler.kt @@ -1,4 +1,4 @@ -package com.gh.common.syncpage +package com.gh.gamecenter.common.syncpage interface ISyncAdapterHandler { diff --git a/app/src/main/java/com/gh/common/syncpage/SyncDataEntity.kt b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncDataEntity.kt similarity index 96% rename from app/src/main/java/com/gh/common/syncpage/SyncDataEntity.kt rename to module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncDataEntity.kt index 611445448f..3cff9d3154 100644 --- a/app/src/main/java/com/gh/common/syncpage/SyncDataEntity.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncDataEntity.kt @@ -1,4 +1,4 @@ -package com.gh.common.syncpage +package com.gh.gamecenter.common.syncpage import androidx.annotation.Keep diff --git a/app/src/main/java/com/gh/common/syncpage/SyncFieldConstants.kt b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncFieldConstants.kt similarity index 95% rename from app/src/main/java/com/gh/common/syncpage/SyncFieldConstants.kt rename to module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncFieldConstants.kt index 60d728b1ee..ccccbfc94d 100644 --- a/app/src/main/java/com/gh/common/syncpage/SyncFieldConstants.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncFieldConstants.kt @@ -1,4 +1,4 @@ -package com.gh.common.syncpage +package com.gh.gamecenter.common.syncpage object SyncFieldConstants { diff --git a/app/src/main/java/com/gh/common/syncpage/SyncPageRepository.kt b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncPageRepository.kt similarity index 92% rename from app/src/main/java/com/gh/common/syncpage/SyncPageRepository.kt rename to module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncPageRepository.kt index c0a5fe0467..1dbe82e2cd 100644 --- a/app/src/main/java/com/gh/common/syncpage/SyncPageRepository.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/syncpage/SyncPageRepository.kt @@ -1,12 +1,12 @@ -package com.gh.common.syncpage +package com.gh.gamecenter.common.syncpage import androidx.lifecycle.MutableLiveData -import com.gh.common.annotation.SyncIgnore -import com.gh.common.annotation.SyncPage -import com.gh.common.util.debugOnly -import com.gh.common.util.toJson -import com.gh.common.util.tryCatchInRelease -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.annotation.SyncIgnore +import com.gh.gamecenter.common.annotation.SyncPage +import com.gh.gamecenter.common.utils.debugOnly +import com.gh.gamecenter.common.utils.toJson +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.lightgame.utils.Utils import java.lang.reflect.Field @@ -128,7 +128,7 @@ object SyncPageRepository { if (syncData.checkFieldEntity) { // 递归查询 val pkgName = field.type.getPackage()?.name ?: return false - if (pkgName.contains(HaloApp.getInstance().application.packageName) && field.getAnnotation(SyncIgnore::class.java) == null) { + if (pkgName.contains(HaloApp.getInstance().packageName) && field.getAnnotation(SyncIgnore::class.java) == null) { field.isAccessible = true val extractEntityObject = field.get(extractObject) ?: return false field.type.declaredFields.forEach { diff --git a/app/src/main/java/com/gh/common/tracker/ActivityLifecycleWatcher.kt b/module_common/src/main/java/com/gh/gamecenter/common/tracker/ActivityLifecycleWatcher.kt similarity index 95% rename from app/src/main/java/com/gh/common/tracker/ActivityLifecycleWatcher.kt rename to module_common/src/main/java/com/gh/gamecenter/common/tracker/ActivityLifecycleWatcher.kt index 300e2230fd..60f162412f 100644 --- a/app/src/main/java/com/gh/common/tracker/ActivityLifecycleWatcher.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/tracker/ActivityLifecycleWatcher.kt @@ -1,4 +1,4 @@ -package com.gh.common.tracker +package com.gh.gamecenter.common.tracker import android.app.Activity import android.app.Application diff --git a/app/src/main/java/com/gh/common/tracker/AppLifecycleWatcher.kt b/module_common/src/main/java/com/gh/gamecenter/common/tracker/AppLifecycleWatcher.kt similarity index 98% rename from app/src/main/java/com/gh/common/tracker/AppLifecycleWatcher.kt rename to module_common/src/main/java/com/gh/gamecenter/common/tracker/AppLifecycleWatcher.kt index f5c67ce488..d01818c174 100644 --- a/app/src/main/java/com/gh/common/tracker/AppLifecycleWatcher.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/tracker/AppLifecycleWatcher.kt @@ -1,4 +1,4 @@ -package com.gh.common.tracker +package com.gh.gamecenter.common.tracker import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner diff --git a/app/src/main/java/com/gh/common/tracker/IBusiness.kt b/module_common/src/main/java/com/gh/gamecenter/common/tracker/IBusiness.kt similarity index 74% rename from app/src/main/java/com/gh/common/tracker/IBusiness.kt rename to module_common/src/main/java/com/gh/gamecenter/common/tracker/IBusiness.kt index 90606d224f..a7e2e51646 100644 --- a/app/src/main/java/com/gh/common/tracker/IBusiness.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/tracker/IBusiness.kt @@ -1,4 +1,4 @@ -package com.gh.common.tracker +package com.gh.gamecenter.common.tracker import androidx.annotation.Nullable diff --git a/app/src/main/java/com/gh/common/tracker/ITrack.kt b/module_common/src/main/java/com/gh/gamecenter/common/tracker/ITrack.kt similarity index 86% rename from app/src/main/java/com/gh/common/tracker/ITrack.kt rename to module_common/src/main/java/com/gh/gamecenter/common/tracker/ITrack.kt index 6336bed2ca..080ac82b05 100644 --- a/app/src/main/java/com/gh/common/tracker/ITrack.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/tracker/ITrack.kt @@ -1,4 +1,4 @@ -package com.gh.common.tracker +package com.gh.gamecenter.common.tracker import android.app.Activity diff --git a/app/src/main/java/com/gh/common/tracker/Tracker.kt b/module_common/src/main/java/com/gh/gamecenter/common/tracker/Tracker.kt similarity index 95% rename from app/src/main/java/com/gh/common/tracker/Tracker.kt rename to module_common/src/main/java/com/gh/gamecenter/common/tracker/Tracker.kt index e97a6d8d22..ec7d5572a2 100644 --- a/app/src/main/java/com/gh/common/tracker/Tracker.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/tracker/Tracker.kt @@ -1,9 +1,9 @@ -package com.gh.common.tracker +package com.gh.gamecenter.common.tracker import android.app.Activity import android.app.Application import androidx.lifecycle.ProcessLifecycleOwner -import com.gh.common.runOnUiThread +import com.gh.gamecenter.core.runOnUiThread import java.util.* /** diff --git a/app/src/main/java/com/gh/common/tracker/TrackerLogger.kt b/module_common/src/main/java/com/gh/gamecenter/common/tracker/TrackerLogger.kt similarity index 80% rename from app/src/main/java/com/gh/common/tracker/TrackerLogger.kt rename to module_common/src/main/java/com/gh/gamecenter/common/tracker/TrackerLogger.kt index 9db61185f2..116a750d7d 100644 --- a/app/src/main/java/com/gh/common/tracker/TrackerLogger.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/tracker/TrackerLogger.kt @@ -1,13 +1,15 @@ -package com.gh.common.tracker +package com.gh.gamecenter.common.tracker import android.content.Context -import com.gh.common.exposure.meta.MetaUtil -import com.gh.common.exposure.meta.MetaUtil.getBase64EncodedAndroidId -import com.gh.common.exposure.meta.MetaUtil.getBase64EncodedIMEI -import com.gh.common.loghub.LoghubUtils -import com.gh.common.util.PackageUtils -import com.gh.common.util.tryCatchInRelease -import com.gh.gamecenter.R +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.exposure.meta.MetaUtil +import com.gh.gamecenter.common.exposure.meta.MetaUtil.getBase64EncodedAndroidId +import com.gh.gamecenter.common.exposure.meta.MetaUtil.getBase64EncodedIMEI +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.gamecenter.core.provider.IAppProvider +import com.gh.gamecenter.core.provider.IPackageUtilsProvider import com.lightgame.utils.Utils import org.json.JSONException import org.json.JSONObject @@ -49,9 +51,11 @@ object TrackerLogger { uploadToLoghub(jsonObject, true) } - fun logActivityStart(activityId: String, - activityName: String, - activityBusinessId: Pair? = null) { + fun logActivityStart( + activityId: String, + activityName: String, + activityBusinessId: Pair? = null + ) { val jsonObject = JSONObject() val payloadObject = JSONObject() tryCatchInRelease { @@ -73,9 +77,11 @@ object TrackerLogger { uploadToLoghub(jsonObject, false) } - fun logActivityStop(activityId: String, - activityName: String, - activityBusinessId: Pair? = null) { + fun logActivityStop( + activityId: String, + activityName: String, + activityBusinessId: Pair? = null + ) { val jsonObject = JSONObject() val payloadObject = JSONObject() tryCatchInRelease { @@ -98,8 +104,10 @@ object TrackerLogger { } @JvmStatic - fun logHomeTabSelected(tabPosition: Int, - tabContent: String) { + fun logHomeTabSelected( + tabPosition: Int, + tabContent: String + ) { val jsonObject = JSONObject() val payloadObject = JSONObject() tryCatchInRelease { @@ -119,15 +127,17 @@ object TrackerLogger { fun logAppLaunch(context: Context) { val jsonObject = JSONObject() val payloadObject = JSONObject() - val signatureHash = PackageUtils.getApkSignatureByPackageName(context, context.packageName)[0] - val sideLoadInfo = PackageUtils.getSideLoadedInfo() + val packageUtilsConfig = ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation() as? IPackageUtilsProvider + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + val signatureHash = packageUtilsConfig?.getApkSignatureByPackageName(context, context.packageName)?.get(0) + val sideLoadInfo = packageUtilsConfig?.getSideLoadedInfo() tryCatchInRelease { payloadObject.put("launch_id", Tracker.launchId) payloadObject.put("session_id", Tracker.sessionId) payloadObject.put("signature", signatureHash) payloadObject.put("package_name", context.packageName) - payloadObject.put("app_name", context.getString(R.string.app_name)) + payloadObject.put("app_name", appProvider?.getAppName()) sideLoadInfo?.let { payloadObject.put("is_side_loaded", sideLoadInfo["is_side_loaded"]) diff --git a/app/src/main/java/com/gh/common/util/AsyncImageLoader.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/AsyncImageLoader.kt similarity index 97% rename from app/src/main/java/com/gh/common/util/AsyncImageLoader.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/AsyncImageLoader.kt index e6a8087dfc..9afb806263 100644 --- a/app/src/main/java/com/gh/common/util/AsyncImageLoader.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/AsyncImageLoader.kt @@ -1,9 +1,10 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils import androidx.annotation.Keep import androidx.core.util.Pools import com.facebook.drawee.view.SimpleDraweeView import com.facebook.imagepipeline.request.Postprocessor +import com.gh.gamecenter.core.utils.SingletonHolder class AsyncImageLoader private constructor() { diff --git a/app/src/main/java/com/gh/common/util/BitmapUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/BitmapUtils.java similarity index 96% rename from app/src/main/java/com/gh/common/util/BitmapUtils.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/BitmapUtils.java index 3c401731cb..4085f5e202 100644 --- a/app/src/main/java/com/gh/common/util/BitmapUtils.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/BitmapUtils.java @@ -1,6 +1,7 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; import android.content.Context; +import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; @@ -9,17 +10,9 @@ import android.graphics.PixelFormat; import android.graphics.drawable.Drawable; import android.media.ExifInterface; import android.media.MediaMetadataRetriever; +import android.net.Uri; import android.os.Build; -import com.halo.assistant.HaloApp; - -import java.io.BufferedOutputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; - import androidx.annotation.IntRange; import androidx.annotation.RequiresApi; import androidx.renderscript.Allocation; @@ -27,6 +20,16 @@ import androidx.renderscript.Element; import androidx.renderscript.RenderScript; import androidx.renderscript.ScriptIntrinsicBlur; +import com.gh.gamecenter.core.HaloApp; +import com.lightgame.utils.Utils; + +import java.io.BufferedOutputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; + /** * Created by LGT on 2016/10/21. */ @@ -223,7 +226,7 @@ public class BitmapUtils { // 在低于 5.1 和运行内存小于 2G 的设备上减小图片大小,避免 OOM,128 * 128 又不是不能看 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP - || DeviceUtils.getTotalRamSizeOfDevice(HaloApp.getInstance().getApplication()) < 2000) { + || DeviceUtils.getTotalRamSizeOfDevice(HaloApp.getInstance()) < 2000) { if (isSquare) { w = w > 128 ? 128 : w; h = h > 128 ? 128 : h; @@ -588,4 +591,15 @@ public class BitmapUtils { } return bitmap; } + + /** + * 注意,第二个入参需要是 file 本身而不是 folder + */ + public static void refreshImage(Context context, File imageFile) { + Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); + Uri uri = Uri.fromFile(imageFile); + intent.setData(uri); + context.sendBroadcast(intent); + Utils.log("保存分享图片路径:" + imageFile.getAbsolutePath()); + } } diff --git a/app/src/main/java/com/gh/common/util/CompressImageUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/CompressImageUtils.kt similarity index 81% rename from app/src/main/java/com/gh/common/util/CompressImageUtils.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/CompressImageUtils.kt index 36e1253dd7..981d211f96 100644 --- a/app/src/main/java/com/gh/common/util/CompressImageUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/CompressImageUtils.kt @@ -1,12 +1,13 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Matrix -import com.gh.common.constant.Config -import com.gh.gamecenter.entity.SettingsEntity +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IConfigProvider import com.github.piasy.biv.metadata.ImageInfoExtractor -import com.halo.assistant.HaloApp import java.io.File import java.io.FileOutputStream @@ -34,9 +35,10 @@ object CompressImageUtils { */ @Throws(Exception::class) fun compressImageAndSaveToFile(imageFile: File, compressGif: Boolean): File { + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider val imageType = ImageInfoExtractor.getImageType(imageFile) // 小于某一个设定的值时,直接返回原图 - if (imageType != ImageInfoExtractor.TYPE_ANIMATED_WEBP && imageFile.length() < getImageSetting().processLimitSize) { + if (imageType != ImageInfoExtractor.TYPE_ANIMATED_WEBP && imageFile.length() < configProvider?.getUploadLimitSize() ?: compressLimitSize) { return imageFile } @@ -60,7 +62,7 @@ object CompressImageUtils { fileOutputStream = FileOutputStream(cacheDir) // write the compressed bitmap at the destination specified by destinationPath. - decodeSampledBitmapFromFile(imageFile).compress(formatType, getImageSetting().quality, fileOutputStream) + decodeSampledBitmapFromFile(imageFile).compress(formatType, configProvider?.getQuality() ?: defaultQuality, fileOutputStream) if (cacheDir.length() == 0L) { return imageFile //预防压缩失败 @@ -83,7 +85,7 @@ object CompressImageUtils { private fun getImageCachePatch(): File { // return File(Environment.getExternalStorageDirectory().absolutePath + "/Pictures/test/" + System.currentTimeMillis() + ".jpg") // 统一用jpg保存应该没有影响吧 - return File(HaloApp.getInstance().application.cacheDir.absolutePath + File.separator + System.currentTimeMillis() + ".jpg") + return File(HaloApp.getInstance().cacheDir.absolutePath + File.separator + System.currentTimeMillis() + ".jpg") } // 根据图片获取压缩后的位图 @@ -104,10 +106,11 @@ object CompressImageUtils { val longSide = Math.max(height, width) //最长边 val shortSide = Math.min(height, width) //最短边 val scale = longSide.toFloat() / shortSide // 长短边比例 - val compressLimit = getImageSetting().size + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val compressLimit = configProvider?.getSize() ?: defaultCompressBorder if (longSide > compressLimit && shortSide > compressLimit) { - if (scale > getImageSetting().ratio) { + if (scale > configProvider?.getRatio() ?: defaultRatio) { inSampleSize = if (shortSide / compressLimit == 0) 1 else shortSide / compressLimit compressType = CompressType.LIMIT_SHORT // 横向长方形 } else { @@ -115,7 +118,7 @@ object CompressImageUtils { compressType = CompressType.LIMIT_LONG // 纵向长方形 } } else if (longSide > compressLimit && shortSide < compressLimit) { - if (scale <= getImageSetting().ratio) { + if (scale <= configProvider?.getRatio() ?: defaultRatio) { inSampleSize = if (longSide / compressLimit == 0) 1 else longSide / compressLimit compressType = CompressType.LIMIT_LONG } @@ -154,18 +157,18 @@ object CompressImageUtils { return scaledBitmap } - private fun getImageSetting(): SettingsEntity.Image { - val settings = Config.getSettings() - if (settings?.image != null) { - return settings.image!! - } - val image = SettingsEntity.Image() - image.processLimitSize = compressLimitSize - image.size = defaultCompressBorder - image.ratio = defaultRatio - image.quality = defaultQuality - return image - } +// private fun getImageSetting(): SettingsEntity.Image { +// val settings = Config.getSettings() +// if (settings?.image != null) { +// return settings.image!! +// } +// val image = SettingsEntity.Image() +// image.processLimitSize = compressLimitSize +// image.size = defaultCompressBorder +// image.ratio = defaultRatio +// image.quality = defaultQuality +// return image +// } } enum class CompressType { diff --git a/app/src/main/java/com/gh/common/util/DeviceUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/DeviceUtils.java similarity index 97% rename from app/src/main/java/com/gh/common/util/DeviceUtils.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/DeviceUtils.java index 8d051493b7..39b0e017dc 100644 --- a/app/src/main/java/com/gh/common/util/DeviceUtils.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/DeviceUtils.java @@ -1,4 +1,7 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; + +import static android.os.Build.MANUFACTURER; +import static android.os.Build.MODEL; import android.app.ActivityManager; import android.content.Context; @@ -9,10 +12,8 @@ import android.os.Build; import android.telephony.TelephonyManager; import android.util.Log; -import androidx.annotation.Nullable; - -import com.gh.common.exposure.meta.MetaUtil; -import com.halo.assistant.HaloApp; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.core.HaloApp; import org.json.JSONException; import org.json.JSONObject; @@ -28,9 +29,6 @@ import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; -import static android.os.Build.MANUFACTURER; -import static android.os.Build.MODEL; - /** * Created by khy on 2/08/17. */ @@ -249,10 +247,9 @@ public class DeviceUtils { public static String getCurrentIpAddress() { String ipAddress = "0.0.0.0"; try { - WifiManager wifiManager = (WifiManager) HaloApp.getInstance(). - getApplication(). - getApplicationContext(). - getSystemService(Context.WIFI_SERVICE); + WifiManager wifiManager = (WifiManager) HaloApp.getInstance() + .getApplicationContext() + .getSystemService(Context.WIFI_SERVICE); int address = wifiManager.getDhcpInfo().ipAddress; ipAddress = ((address & 0xFF) + "." + ((address >> 8) & 0xFF) diff --git a/app/src/main/java/com/gh/common/util/DialogHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogHelper.kt similarity index 61% rename from app/src/main/java/com/gh/common/util/DialogHelper.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/DialogHelper.kt index 886c96a621..413bac6a9a 100644 --- a/app/src/main/java/com/gh/common/util/DialogHelper.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogHelper.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils import android.app.Activity import android.app.Dialog @@ -10,13 +10,16 @@ import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.Window -import com.gh.common.dialog.TrackableDialog -import com.gh.common.util.DialogUtils.ConfirmListener -import com.gh.common.util.DialogUtils.checkDialogContext -import com.gh.gamecenter.AboutActivity -import com.gh.gamecenter.R -import com.gh.gamecenter.databinding.DialogAlertDefaultBinding -import com.gh.gamecenter.databinding.DialogProgressBinding +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.base.TrackableDialog +import com.gh.gamecenter.common.callback.ConfirmListener +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.databinding.DialogAlertDefaultBinding +import com.gh.gamecenter.common.databinding.DialogProgressBinding +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.core.utils.MtaHelper +import com.lightgame.utils.AppManager import splitties.systemservices.layoutInflater object DialogHelper { @@ -29,19 +32,20 @@ object DialogHelper { * uiModificationCallback,可用来手动微调样式的回调,可使用 binding 来修改颜色、文字大小等 */ fun showDialog( - context: Context, - title: String, - content: CharSequence, - confirmText: String, - cancelText: String, - confirmClickCallback: (() -> Unit)? = null, - cancelClickCallback: (() -> Unit)? = null, - extraConfig: Config? = null, - uiModificationCallback: ((binding: DialogAlertDefaultBinding) -> Unit)? = null, - trackMtaEvent: Boolean = false, - mtaEvent: String = "", - mtaKey: String = ""): Dialog? { - val solidContext = checkDialogContext(context) + context: Context, + title: String, + content: CharSequence, + confirmText: String, + cancelText: String, + confirmClickCallback: (() -> Unit)? = null, + cancelClickCallback: (() -> Unit)? = null, + extraConfig: Config? = null, + uiModificationCallback: ((binding: DialogAlertDefaultBinding) -> Unit)? = null, + trackMtaEvent: Boolean = false, + mtaEvent: String = "", + mtaKey: String = "" + ): Dialog? { + val solidContext = checkDialogContext(context) ?: return null if (solidContext is Activity && solidContext.isFinishing) return null @@ -114,28 +118,31 @@ object DialogHelper { */ @JvmStatic @Deprecated("Kotlin 中请使用其它方法调用") - fun showDialog(context: Context, - title: String, - content: CharSequence, - positiveText: String, - negativeText: String, - positiveClickCallback: EmptyCallback, - negativeClickCallback: EmptyCallback, - trackMtaEvent: Boolean = false, - mtaEvent: String = "", - mtaKey: String = "") { + fun showDialog( + context: Context, + title: String, + content: CharSequence, + positiveText: String, + negativeText: String, + positiveClickCallback: EmptyCallback, + negativeClickCallback: EmptyCallback, + trackMtaEvent: Boolean = false, + mtaEvent: String = "", + mtaKey: String = "" + ) { showDialog( - context = context, - title = title, - content = content, - confirmText = positiveText, - cancelText = negativeText, - confirmClickCallback = { positiveClickCallback.onCallback() }, - cancelClickCallback = { negativeClickCallback.onCallback() }, - extraConfig = Config(centerTitle = true, centerContent = true), - trackMtaEvent = trackMtaEvent, - mtaEvent = mtaEvent, - mtaKey = mtaKey) + context = context, + title = title, + content = content, + confirmText = positiveText, + cancelText = negativeText, + confirmClickCallback = { positiveClickCallback.onCallback() }, + cancelClickCallback = { negativeClickCallback.onCallback() }, + extraConfig = Config(centerTitle = true, centerContent = true), + trackMtaEvent = trackMtaEvent, + mtaEvent = mtaEvent, + mtaKey = mtaKey + ) } /** @@ -184,68 +191,76 @@ object DialogHelper { } @JvmStatic - fun showSignatureConflictDialog(context: Context, - confirmClickCallback: (() -> Unit)? = null) { + fun showSignatureConflictDialog( + context: Context, + confirmClickCallback: (() -> Unit)? = null + ) { showDialog( - context, - "温馨提示", - "检测到安装包与已安装应用的签名不一致,需要卸载后才能安装,是否立即卸载", - "卸载", - "取消", - { confirmClickCallback?.invoke() }, - null, - Config(hint = "注意:卸载会让游戏数据丢失,请提前做好备份"), - { binding -> binding.hintTv.setTextColor(R.color.theme_font.toColor()) } + context, + "温馨提示", + "检测到安装包与已安装应用的签名不一致,需要卸载后才能安装,是否立即卸载", + "卸载", + "取消", + { confirmClickCallback?.invoke() }, + null, + Config(hint = "注意:卸载会让游戏数据丢失,请提前做好备份"), + { binding -> binding.hintTv.setTextColor(R.color.theme_font.toColor()) } ) } @JvmStatic - fun showPluginDialog(context: Context, - confirmClickCallback: (() -> Unit)? = null) { + fun showPluginDialog( + context: Context, + confirmClickCallback: (() -> Unit)? = null + ) { MtaHelper.onEvent("插件化", "插件化安装弹窗", "出现弹窗提示") showDialog( - context, - "插件化安装", - "您将进行插件化安装以实现插件功能,此过程将卸载当前使用的版本并安装插件版本", - "确认,开始插件化", - "取消", - { - confirmClickCallback?.invoke() - MtaHelper.onEvent("插件化", "插件化安装弹窗", "确认并开始") - }, - { MtaHelper.onEvent("插件化", "插件化安装弹窗", "取消") }, - Config(hint = "注意:卸载前请妥善保存游戏账号与密码"), - { binding -> binding.hintTv.setTextColor(R.color.text_FF0000.toColor()) } + context, + "插件化安装", + "您将进行插件化安装以实现插件功能,此过程将卸载当前使用的版本并安装插件版本", + "确认,开始插件化", + "取消", + { + confirmClickCallback?.invoke() + MtaHelper.onEvent("插件化", "插件化安装弹窗", "确认并开始") + }, + { MtaHelper.onEvent("插件化", "插件化安装弹窗", "取消") }, + Config(hint = "注意:卸载前请妥善保存游戏账号与密码"), + { binding -> binding.hintTv.setTextColor(R.color.text_FF0000.toColor()) } ) } @JvmStatic fun showUpgradeDialog(context: Context) { showDialog( - context, - "提示", - "当前版本暂不支持该功能,\n建议您升级到最新版本体验哦", - "检查升级", - "取消", - confirmClickCallback = { context.startActivity(AboutActivity.getIntent(context, true)); }, - uiModificationCallback = { - it.titleTv.gravity = Gravity.CENTER - it.contentTv.gravity = Gravity.CENTER - } + context, + "提示", + "当前版本暂不支持该功能,\n建议您升级到最新版本体验哦", + "检查升级", + "取消", + confirmClickCallback = { + ARouter.getInstance().build(RouteConsts.activity.aboutActivity).navigation() + }, + uiModificationCallback = { + it.titleTv.gravity = Gravity.CENTER + it.contentTv.gravity = Gravity.CENTER + } ) } @JvmStatic - fun showDowngradeHintDialog(context: Context, - confirmClickCallback: (() -> Unit)? = null) { + fun showDowngradeHintDialog( + context: Context, + confirmClickCallback: (() -> Unit)? = null + ) { showDialog( - context, - "温馨提示", - "您已安装较高版本,若要安装历史版本需先卸载再安装\n", - "我知道了", - "", - { confirmClickCallback?.invoke() }) + context, + "温馨提示", + "您已安装较高版本,若要安装历史版本需先卸载再安装\n", + "我知道了", + "", + { confirmClickCallback?.invoke() }) } @JvmStatic @@ -319,7 +334,16 @@ object DialogHelper { @JvmStatic fun showCancelDialog(context: Context, confirmClickCallback: (() -> Unit)? = null, cancelClickCallback: (() -> Unit)? = null) { val content = Html.fromHtml(context.getString(R.string.cancel_concern_dialog)) - showDialog(context, "取消关注", content, "确定取消", "暂不取消", confirmClickCallback, cancelClickCallback, extraConfig = Config(centerTitle = true, centerContent = true)) + showDialog( + context, + "取消关注", + content, + "确定取消", + "暂不取消", + confirmClickCallback, + cancelClickCallback, + extraConfig = Config(centerTitle = true, centerContent = true) + ) } @JvmStatic @@ -344,6 +368,19 @@ object DialogHelper { ) } + /** + * @param context may be is application context + * @return activity context + */ + private fun checkDialogContext(context: Context?): Context? { + if (context == null) { + throw NullPointerException("dialog context is null") + } + return context as? Activity ?: AppManager.getInstance().currentActivity() + + // currentActivity 是否存在 isDestroyed 的情况? + } + data class Config( val hint: String = "", val showCloseIcon: Boolean = false, diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogUtils.java new file mode 100644 index 0000000000..48971df72d --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/DialogUtils.java @@ -0,0 +1,150 @@ +package com.gh.gamecenter.common.utils; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.text.Html; +import android.text.Spanned; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.widget.TextView; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.callback.CancelListener; +import com.gh.gamecenter.common.callback.ConfirmListener; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.core.provider.IConfigProvider; +import com.gh.gamecenter.core.provider.IDirectProvider; +import com.lightgame.utils.AppManager; + +public class DialogUtils { + /** + * @param context may be is application context + * @return activity context + */ + private static Context checkDialogContext(Context context) { + if (context == null) { + throw new NullPointerException("dialog context is null"); + } + + if (context instanceof Activity) { + return context; + } + + // currentActivity 是否存在 isDestroyed 的情况? + return AppManager.getInstance().currentActivity(); + } + + // 网络劫持时 打开QQ客户端,创建临时会话 + public static void showQqSessionDialog(final Context context) { + IConfigProvider configProvider = (IConfigProvider) ARouter.getInstance().build(RouteConsts.provider.config).navigation(); + IDirectProvider directProvider = (IDirectProvider) ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation(); + String qq = configProvider.getQQ(); + showWarningDialog(context, "警告", "您当前网络环境异常,下载地址可能被运营商恶意替换(网络劫持)" + + ",如多次下载失败,请联系客服获取正确的下载地址(客服QQ:" + qq + ")" + , "取消", "前往QQ", () -> directProvider.directToQqConversation(context, qq), null); + } + + public static void showWarningDialog(Context context, String title, CharSequence msg, final ConfirmListener listener) { + if (!(context instanceof Activity)) { + return; + } + showWarningDialog(context, title, msg, "取消", "确定", listener, null); + } + + public static void showWarningDialog(Context context, String title, CharSequence msg, String cancel, String confirm, + final ConfirmListener cmListener, final CancelListener clListener) { + + showAlertDialog(context, title, msg, confirm, cancel, cmListener, clListener); + } + + /** + * Material Design 风格弹窗 + * + * @param context + * @param title 标题 + * @param message 内容 + * @param positive 确认按钮文本 + * @param negative 取消按钮文本 + * @param cmListener 确认按钮监听 + * @param clListener 取消按钮监听 + */ + public static Dialog showAlertDialog(Context context, String title, CharSequence message + , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); + + final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); + + View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); + TextView contentTv = contentView.findViewById(R.id.dialog_content); + TextView titleTv = contentView.findViewById(R.id.dialog_title); + TextView negativeTv = contentView.findViewById(R.id.dialog_negative); + TextView positiveTv = contentView.findViewById(R.id.dialog_positive); + if (message.toString().contains("红包奖励")) {//将红包奖励四个字标红 + String str = message.toString().substring(0, message.toString().indexOf("红包奖励")) + "红包奖励"; + contentTv.setText(Html.fromHtml(str)); + } else { + contentTv.setText(message); + } + titleTv.setText(title); + negativeTv.setText(negative); + positiveTv.setText(positive); + + negativeTv.setOnClickListener(view -> { + if (clListener != null) { + clListener.onCancel(); + } + dialog.dismiss(); + }); + + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); + } + dialog.dismiss(); + }); + + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(contentView); + dialog.show(); + return dialog; + } + + public static Dialog showAlertDialog(Context context, String title, Spanned message + , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); + + final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); + + View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); + TextView contentTv = contentView.findViewById(R.id.dialog_content); + TextView titleTv = contentView.findViewById(R.id.dialog_title); + TextView negativeTv = contentView.findViewById(R.id.dialog_negative); + TextView positiveTv = contentView.findViewById(R.id.dialog_positive); + contentTv.setText(message); + titleTv.setText(title); + negativeTv.setText(negative); + positiveTv.setText(positive); + + negativeTv.setOnClickListener(view -> { + if (clListener != null) { + clListener.onCancel(); + } + dialog.dismiss(); + }); + + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); + } + dialog.dismiss(); + }); + + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(contentView); + dialog.show(); + return dialog; + } +} diff --git a/app/src/main/java/com/gh/common/util/EmulatorUtil.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/EmulatorUtil.java similarity index 78% rename from app/src/main/java/com/gh/common/util/EmulatorUtil.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/EmulatorUtil.java index 8c21f12ab9..6c89d30428 100644 --- a/app/src/main/java/com/gh/common/util/EmulatorUtil.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/EmulatorUtil.java @@ -1,4 +1,6 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; + +import static android.content.Context.SENSOR_SERVICE; import android.content.Context; import android.content.Intent; @@ -10,15 +12,10 @@ import android.hardware.SensorManager; import android.net.Uri; import android.text.TextUtils; -import com.gh.common.constant.Constants; +import com.gh.gamecenter.common.callback.SimpleCallback; import com.lahm.library.CheckResult; import com.lahm.library.CommandUtil; -import static android.content.Context.SENSOR_SERVICE; -import static com.lahm.library.CheckResult.RESULT_EMULATOR; -import static com.lahm.library.CheckResult.RESULT_MAYBE_EMULATOR; -import static com.lahm.library.CheckResult.RESULT_UNKNOWN; - public class EmulatorUtil { private SimpleCallback mCallback; @@ -46,10 +43,10 @@ public class EmulatorUtil { //检测硬件名称 CheckResult hardwareResult = checkFeaturesByHardware(); switch (hardwareResult.result) { - case RESULT_MAYBE_EMULATOR: + case CheckResult.RESULT_MAYBE_EMULATOR: ++suspectCount; break; - case RESULT_EMULATOR: + case CheckResult.RESULT_EMULATOR: mCallback.onCallback(true); return; } @@ -57,10 +54,10 @@ public class EmulatorUtil { //检测渠道 CheckResult flavorResult = checkFeaturesByFlavor(); switch (flavorResult.result) { - case RESULT_MAYBE_EMULATOR: + case CheckResult.RESULT_MAYBE_EMULATOR: ++suspectCount; break; - case RESULT_EMULATOR: + case CheckResult.RESULT_EMULATOR: mCallback.onCallback(true); return; } @@ -68,10 +65,10 @@ public class EmulatorUtil { //检测设备型号 CheckResult modelResult = checkFeaturesByModel(); switch (modelResult.result) { - case RESULT_MAYBE_EMULATOR: + case CheckResult.RESULT_MAYBE_EMULATOR: ++suspectCount; break; - case RESULT_EMULATOR: + case CheckResult.RESULT_EMULATOR: mCallback.onCallback(true); return; } @@ -79,10 +76,10 @@ public class EmulatorUtil { //检测硬件制造商 CheckResult manufacturerResult = checkFeaturesByManufacturer(); switch (manufacturerResult.result) { - case RESULT_MAYBE_EMULATOR: + case CheckResult.RESULT_MAYBE_EMULATOR: ++suspectCount; break; - case RESULT_EMULATOR: + case CheckResult.RESULT_EMULATOR: mCallback.onCallback(true); return; } @@ -90,10 +87,10 @@ public class EmulatorUtil { //检测主板名称 CheckResult boardResult = checkFeaturesByBoard(); switch (boardResult.result) { - case RESULT_MAYBE_EMULATOR: + case CheckResult.RESULT_MAYBE_EMULATOR: ++suspectCount; break; - case RESULT_EMULATOR: + case CheckResult.RESULT_EMULATOR: mCallback.onCallback(true); return; } @@ -101,10 +98,10 @@ public class EmulatorUtil { //检测主板平台 CheckResult platformResult = checkFeaturesByPlatform(); switch (platformResult.result) { - case RESULT_MAYBE_EMULATOR: + case CheckResult.RESULT_MAYBE_EMULATOR: ++suspectCount; break; - case RESULT_EMULATOR: + case CheckResult.RESULT_EMULATOR: mCallback.onCallback(true); return; } @@ -112,10 +109,10 @@ public class EmulatorUtil { //检测基带信息 CheckResult baseBandResult = checkFeaturesByBaseBand(); switch (baseBandResult.result) { - case RESULT_MAYBE_EMULATOR: + case CheckResult.RESULT_MAYBE_EMULATOR: suspectCount += 2;//模拟器基带信息为null的情况概率相当大 break; - case RESULT_EMULATOR: + case CheckResult.RESULT_EMULATOR: mCallback.onCallback(true); return; } @@ -140,7 +137,7 @@ public class EmulatorUtil { //检测进程组信息 CheckResult cgroupResult = checkFeaturesByCgroup(); - if (cgroupResult.result == RESULT_MAYBE_EMULATOR) ++suspectCount; + if (cgroupResult.result == CheckResult.RESULT_MAYBE_EMULATOR) ++suspectCount; if (suspectCount > 3) { mCallback.onCallback(true); @@ -162,7 +159,7 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByHardware() { String hardware = getProperty("ro.hardware"); - if (null == hardware) return new CheckResult(RESULT_MAYBE_EMULATOR, null); + if (null == hardware) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); int result; String tempValue = hardware.toLowerCase(); switch (tempValue) { @@ -173,10 +170,10 @@ public class EmulatorUtil { case "vbox": case "vbox86"://腾讯手游助手 case "android_x86"://雷电模拟器 - result = RESULT_EMULATOR; + result = CheckResult.RESULT_EMULATOR; break; default: - result = RESULT_UNKNOWN; + result = CheckResult.RESULT_UNKNOWN; break; } return new CheckResult(result, hardware); @@ -189,12 +186,12 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByFlavor() { String flavor = getProperty("ro.build.flavor"); - if (null == flavor) return new CheckResult(RESULT_MAYBE_EMULATOR, null); + if (null == flavor) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); int result; String tempValue = flavor.toLowerCase(); - if (tempValue.contains("vbox")) result = RESULT_EMULATOR; - else if (tempValue.contains("sdk_gphone")) result = RESULT_EMULATOR; - else result = RESULT_UNKNOWN; + if (tempValue.contains("vbox")) result = CheckResult.RESULT_EMULATOR; + else if (tempValue.contains("sdk_gphone")) result = CheckResult.RESULT_EMULATOR; + else result = CheckResult.RESULT_UNKNOWN; return new CheckResult(result, flavor); } @@ -205,13 +202,13 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByModel() { String model = getProperty("ro.product.model"); - if (null == model) return new CheckResult(RESULT_MAYBE_EMULATOR, null); + if (null == model) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); int result; String tempValue = model.toLowerCase(); - if (tempValue.contains("google_sdk")) result = RESULT_EMULATOR; - else if (tempValue.contains("emulator")) result = RESULT_EMULATOR; - else if (tempValue.contains("android sdk built for x86")) result = RESULT_EMULATOR; - else result = RESULT_UNKNOWN; + if (tempValue.contains("google_sdk")) result = CheckResult.RESULT_EMULATOR; + else if (tempValue.contains("emulator")) result = CheckResult.RESULT_EMULATOR; + else if (tempValue.contains("android sdk built for x86")) result = CheckResult.RESULT_EMULATOR; + else result = CheckResult.RESULT_UNKNOWN; return new CheckResult(result, model); } @@ -222,12 +219,12 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByManufacturer() { String manufacturer = getProperty("ro.product.manufacturer"); - if (null == manufacturer) return new CheckResult(RESULT_MAYBE_EMULATOR, null); + if (null == manufacturer) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); int result; String tempValue = manufacturer.toLowerCase(); - if (tempValue.contains("genymotion")) result = RESULT_EMULATOR; - else if (tempValue.contains("netease")) result = RESULT_EMULATOR;//网易MUMU模拟器 - else result = RESULT_UNKNOWN; + if (tempValue.contains("genymotion")) result = CheckResult.RESULT_EMULATOR; + else if (tempValue.contains("netease")) result = CheckResult.RESULT_EMULATOR;//网易MUMU模拟器 + else result = CheckResult.RESULT_UNKNOWN; return new CheckResult(result, manufacturer); } @@ -238,12 +235,12 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByBoard() { String board = getProperty("ro.product.board"); - if (null == board) return new CheckResult(RESULT_MAYBE_EMULATOR, null); + if (null == board) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); int result; String tempValue = board.toLowerCase(); - if (tempValue.contains("android")) result = RESULT_EMULATOR; - else if (tempValue.contains("goldfish")) result = RESULT_EMULATOR; - else result = RESULT_UNKNOWN; + if (tempValue.contains("android")) result = CheckResult.RESULT_EMULATOR; + else if (tempValue.contains("goldfish")) result = CheckResult.RESULT_EMULATOR; + else result = CheckResult.RESULT_UNKNOWN; return new CheckResult(result, board); } @@ -254,11 +251,11 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByPlatform() { String platform = getProperty("ro.board.platform"); - if (null == platform) return new CheckResult(RESULT_MAYBE_EMULATOR, null); + if (null == platform) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); int result; String tempValue = platform.toLowerCase(); - if (tempValue.contains("android")) result = RESULT_EMULATOR; - else result = RESULT_UNKNOWN; + if (tempValue.contains("android")) result = CheckResult.RESULT_EMULATOR; + else result = CheckResult.RESULT_UNKNOWN; return new CheckResult(result, platform); } @@ -269,10 +266,10 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByBaseBand() { String baseBandVersion = getProperty("gsm.version.baseband"); - if (null == baseBandVersion) return new CheckResult(RESULT_MAYBE_EMULATOR, null); + if (null == baseBandVersion) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); int result; - if (baseBandVersion.contains("1.0.0.0")) result = RESULT_EMULATOR; - else result = RESULT_UNKNOWN; + if (baseBandVersion.contains("1.0.0.0")) result = CheckResult.RESULT_EMULATOR; + else result = CheckResult.RESULT_UNKNOWN; return new CheckResult(result, baseBandVersion); } @@ -323,8 +320,8 @@ public class EmulatorUtil { */ private CheckResult checkFeaturesByCgroup() { String filter = CommandUtil.getSingleInstance().exec("cat /proc/self/cgroup"); - if (null == filter) return new CheckResult(RESULT_MAYBE_EMULATOR, null); - return new CheckResult(RESULT_UNKNOWN, filter); + if (null == filter) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null); + return new CheckResult(CheckResult.RESULT_UNKNOWN, filter); } /** diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/EnvHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/EnvHelper.kt new file mode 100644 index 0000000000..0b84328c69 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/EnvHelper.kt @@ -0,0 +1,45 @@ +package com.gh.gamecenter.common.utils + +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IBuildConfigProvider +import com.gh.gamecenter.core.utils.SPUtils + +object EnvHelper { + + // API 环境是否为测试环境 + @JvmStatic + val isDevEnv: Boolean by lazy { + SPUtils.getBoolean(Constants.SP_IS_DEV_ENV, false) + } + + @JvmStatic + fun getHost(): String { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + return if (!PackageFlavorHelper.IS_TEST_FLAVOR) { + buildConfig?.getApiHost() ?: "" + } else { + if (isDevEnv) { + buildConfig?.getDevApiHost() ?: "" + } else { + buildConfig?.getApiHost() ?: "" + } + } + } + + @JvmStatic + fun getNewHost(): String { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + return if (!PackageFlavorHelper.IS_TEST_FLAVOR) { + buildConfig?.getNewApiHost() ?: "" + } else { + if (isDevEnv) { + buildConfig?.getNewDevApiHost() ?: "" + } else { + buildConfig?.getNewApiHost() ?: "" + } + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt similarity index 88% rename from app/src/main/java/com/gh/common/util/Extensions.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt index 1607a42ba1..012280078c 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils import android.animation.Animator import android.app.Activity @@ -40,19 +40,20 @@ import androidx.viewpager.widget.ViewPager import androidx.webkit.WebSettingsCompat import androidx.webkit.WebViewFeature import com.airbnb.lottie.LottieAnimationView +import com.alibaba.android.arouter.launcher.ARouter import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.DefaultUrlHandler -import com.gh.common.constant.Config -import com.gh.common.constant.Constants -import com.gh.common.view.CenterImageSpan -import com.gh.common.view.CustomLinkMovementMethod -import com.gh.common.view.ExpandTextView -import com.gh.gamecenter.BuildConfig -import com.gh.gamecenter.R -import com.gh.gamecenter.WebActivity -import com.gh.gamecenter.manager.UserManager +import com.gh.gamecenter.common.BuildConfig +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.callback.SimpleCallback +import com.gh.gamecenter.common.constant.Config +import com.gh.gamecenter.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.common.view.ExpandTextView +import com.gh.gamecenter.core.HaloApp +import com.gh.gamecenter.core.provider.* +import com.gh.gamecenter.core.utils.* import com.google.gson.reflect.TypeToken -import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity import com.lightgame.utils.Utils import io.reactivex.Observable @@ -326,7 +327,8 @@ fun Fragment.ifLogin(entrance: String, action: (() -> Unit)? = null) { } fun Context.ifLogin(entrance: String, action: (() -> Unit)? = null) { - CheckLoginUtils.checkLogin(this, entrance, action) + val checkLoginConfig = ARouter.getInstance().build(RouteConsts.provider.checkLogin).navigation() as? ICheckLoginProvider + checkLoginConfig?.checkLogin(this, entrance, action) } @@ -372,9 +374,12 @@ fun String.containHtmlTag(): Boolean { * 用户行为相关 */ fun Fragment.showRegulationTestDialogIfNeeded(action: (() -> Unit)) { - if (UserManager.getInstance().userShouldTakeRegulationBaseOnLastRemind()) { - DialogUtils.showRegulationTestDialog(requireContext(), - { DirectUtils.directToRegulationTestPage(requireContext()) }, + val provider = ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as? IDirectProvider + val userManagerProvider = ARouter.getInstance().build(RouteConsts.provider.userManager).navigation() as? IUserManagerProvider + val dialogUtils = ARouter.getInstance().build(RouteConsts.provider.dialogUtils).navigation() as? IDialogUtilsProvider + if (userManagerProvider?.userShouldTakeRegulationBaseOnLastRemind() == true) { + dialogUtils?.showRegulationTestDialog(requireContext(), + { provider?.directToRegulationTestPage(requireContext()) }, { action.invoke() }) } else { action() @@ -382,9 +387,12 @@ fun Fragment.showRegulationTestDialogIfNeeded(action: (() -> Unit)) { } fun Context.showRegulationTestDialogIfNeeded(action: (() -> Unit)) { - if (UserManager.getInstance().userShouldTakeRegulationBaseOnLastRemind()) { - DialogUtils.showRegulationTestDialog(this, - { DirectUtils.directToRegulationTestPage(this) }, + val provider = ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as? IDirectProvider + val userManagerProvider = ARouter.getInstance().build(RouteConsts.provider.userManager).navigation() as? IUserManagerProvider + val dialogUtils = ARouter.getInstance().build(RouteConsts.provider.dialogUtils).navigation() as? IDialogUtilsProvider + if (userManagerProvider?.userShouldTakeRegulationBaseOnLastRemind() == true) { + dialogUtils?.showRegulationTestDialog(this, + { provider?.directToRegulationTestPage(this) }, { action.invoke() }) } else { action() @@ -450,7 +458,8 @@ fun throwExceptionInDebug(message: String = "", predicate: Boolean = true) { * 在自动打包的包里弹 toast */ fun toastInInternalRelease(content: String) { - if (BuildConfig.BUILD_TIME != 0L) { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + if (buildConfig?.getBuildTime() != 0L) { Utils.toast(HaloApp.getInstance(), content) } } @@ -521,7 +530,7 @@ fun String.copyText() { fun String.copyTextAndToast(toastText: String = "复制成功") { try { - val application = HaloApp.getInstance().application + val application = HaloApp.getInstance() val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager val clip = ClipData.newPlainText(null, this) cmb.setPrimaryClip(clip) @@ -568,7 +577,7 @@ fun String.decodeURI(): String { * 根据手机的分辨率从 dip(像素) 的单位 转成为 px */ fun Float.dip2px(): Int { - val scale = HaloApp.getInstance().application.resources.displayMetrics.density + val scale = HaloApp.getInstance().resources.displayMetrics.density return (this * scale + 0.5f).toInt() } @@ -576,12 +585,12 @@ fun Float.dip2px(): Int { * 根据手机的分辨率从 px(像素) 的单位 转成为 dip */ fun Float.px2dip(): Int { - val scale = HaloApp.getInstance().application.resources.displayMetrics.density + val scale = HaloApp.getInstance().resources.displayMetrics.density return (this / scale + 0.5f).toInt() } fun Float.sp2px(): Int { - val scale: Float = HaloApp.getInstance().application.resources.displayMetrics.scaledDensity + val scale: Float = HaloApp.getInstance().resources.displayMetrics.scaledDensity return (this * scale + 0.5f).toInt() } @@ -844,7 +853,7 @@ fun CharSequence.interceptUrlSpanAndRoundImageSpan(clickedCallback: ((url: Strin override fun updateDrawState(ds: TextPaint) { super.updateDrawState(ds) ds.color = ContextCompat.getColor( - HaloApp.getInstance().application, + HaloApp.getInstance(), R.color.theme_font ) ds.isUnderlineText = false @@ -852,13 +861,11 @@ fun CharSequence.interceptUrlSpanAndRoundImageSpan(clickedCallback: ((url: Strin override fun onClick(widget: View) { clickedCallback?.invoke(it.url) - if (!DefaultUrlHandler.interceptUrl(widget.context, it.url, "")) { + val webActivityProvider = ARouter.getInstance().build(RouteConsts.provider.webActivity).navigation() as? IWebProvider + val provider = ARouter.getInstance().build(RouteConsts.provider.defaultUrlHandler).navigation() as IDefaultUrlHandlerProvider + if (!provider.interceptUrl(widget.context, it.url, "")) { widget.context.startActivity( - WebActivity.getIntent( - widget.context, - it.url, - true - ) + webActivityProvider?.getIntent(widget.context, it.url, true) ) } } @@ -883,7 +890,7 @@ fun CharSequence.interceptUrlSpanAndRoundImageSpan(clickedCallback: ((url: Strin } fun Int.toColor(): Int { - return ContextCompat.getColor(HaloApp.getInstance().application, this) + return ContextCompat.getColor(HaloApp.getInstance(), this) } /** @@ -894,7 +901,7 @@ fun Int.toColor(context: Context): Int { } fun Int.toDrawable(): Drawable? { - return ContextCompat.getDrawable(HaloApp.getInstance().application, this) + return ContextCompat.getDrawable(HaloApp.getInstance(), this) } /** @@ -905,11 +912,11 @@ fun Int.toDrawable(context: Context): Drawable? { } fun Int.toResString(): String { - return HaloApp.getInstance().application.resources.getString(this) + return HaloApp.getInstance().resources.getString(this) } fun Int.toPx(): Int { - return HaloApp.getInstance().application.resources.getDimension(this).toInt() + return HaloApp.getInstance().resources.getDimension(this).toInt() } fun Int.toSimpleCount(): String { @@ -924,7 +931,7 @@ fun Int.toNewSimpleCount(pattern: String = "#"): String { * Long related */ fun Long.toProperReadableSize(): String { - return Formatter.formatFileSize(HaloApp.getInstance().application, this) + return Formatter.formatFileSize(HaloApp.getInstance(), this) } /** @@ -978,8 +985,10 @@ fun Context.doOnMainProcessOnly(callback: EmptyCallback) { * 虽然现在我们没有了友盟以后只是单进程APP,但在 debug 模式下还有 whatTheStack 这个进程如果不限定主进程会出现奇奇怪怪的问题 (BroadcastReceiver相关) */ inline fun Context.doOnMainProcessOnly(f: () -> Unit) { - val processName = PackageUtils.obtainProcessName(this) - if (processName == null || BuildConfig.APPLICATION_ID == processName) { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + val packageUtilsConfig = ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation() as? IPackageUtilsProvider + val processName = packageUtilsConfig?.obtainProcessName(this) + if (processName == null || buildConfig?.getApplicationId() == processName) { f.invoke() } else { tryWithDefaultCatch { @@ -989,8 +998,10 @@ inline fun Context.doOnMainProcessOnly(f: () -> Unit) { } inline fun doOnMainProcessOnly(f: () -> Unit) { - val processName = PackageUtils.obtainProcessName(HaloApp.getInstance().application) - if (processName == null || BuildConfig.APPLICATION_ID == processName) { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + val packageUtilsConfig = ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation() as? IPackageUtilsProvider + val processName = packageUtilsConfig?.obtainProcessName(HaloApp.getInstance()) + if (processName == null || buildConfig?.getApplicationId() == processName) { f.invoke() } else { tryWithDefaultCatch { @@ -1009,7 +1020,8 @@ inline fun debugOnly(f: () -> Unit) { } inline fun testChannelOnly(f: () -> Unit) { - if (HaloApp.getInstance().channel == Config.DEFAULT_CHANNEL) { + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + if (appProvider?.getChannel() == Config.DEFAULT_CHANNEL) { f() } } @@ -1233,7 +1245,8 @@ fun String.emojiCount(): Int { * WebView启用强制深色模式 */ fun WebView.enableForceDark(nightMode: Boolean) { - if (BuildConfig.IS_NIGHT_MODE_ON && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + if (buildConfig?.getIsNightModeOn() == true && WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { WebSettingsCompat.setForceDark(settings, if (nightMode) WebSettingsCompat.FORCE_DARK_ON else WebSettingsCompat.FORCE_DARK_OFF) } } @@ -1242,7 +1255,8 @@ fun WebView.enableForceDark(nightMode: Boolean) { * 日夜间模式切换更新状态栏底色 */ fun Activity.updateStatusBarColor(@ColorRes nightColor: Int, @ColorRes dayColor: Int) { - if (BuildConfig.IS_NIGHT_MODE_ON) { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + if (buildConfig?.getIsNightModeOn() == true) { DisplayUtils.setStatusBarColor( this, if (NightModeUtils.isNightMode(this)) nightColor else dayColor diff --git a/app/src/main/java/com/gh/common/util/FastClickUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/FastClickUtils.kt similarity index 84% rename from app/src/main/java/com/gh/common/util/FastClickUtils.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/FastClickUtils.kt index eb25f67bc2..75c0275db3 100644 --- a/app/src/main/java/com/gh/common/util/FastClickUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/FastClickUtils.kt @@ -1,6 +1,6 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils -import com.gh.common.OnFastClickListener +import com.gh.gamecenter.common.callback.OnFastClickListener import io.reactivex.disposables.Disposable import java.lang.ref.WeakReference diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/FixedSizeLinkedHashSet.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/FixedSizeLinkedHashSet.kt new file mode 100644 index 0000000000..67cc82bbb3 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/FixedSizeLinkedHashSet.kt @@ -0,0 +1,16 @@ +package com.gh.gamecenter.common.utils + +class FixedSizeLinkedHashSet(var maxSize: Int) : LinkedHashSet() { + override fun add(element: T): Boolean { + if (size == maxSize) { + pop() + } + return super.add(element) + } + + private fun pop() { + if (size > 0) { + remove(iterator().next()) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/ImageUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/ImageUtils.kt similarity index 90% rename from app/src/main/java/com/gh/common/util/ImageUtils.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/ImageUtils.kt index 902d45ba81..fab1e9fdf4 100644 --- a/app/src/main/java/com/gh/common/util/ImageUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/ImageUtils.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils import android.annotation.SuppressLint import android.content.res.Resources @@ -9,6 +9,7 @@ import android.net.Uri import android.os.Environment import androidx.annotation.DrawableRes import androidx.core.content.ContextCompat +import com.alibaba.android.arouter.launcher.ARouter import com.facebook.common.executors.CallerThreadExecutor import com.facebook.common.references.CloseableReference import com.facebook.datasource.DataSource @@ -25,12 +26,16 @@ import com.facebook.imagepipeline.image.ImageInfo import com.facebook.imagepipeline.request.ImageRequest import com.facebook.imagepipeline.request.ImageRequestBuilder import com.facebook.imagepipeline.request.Postprocessor -import com.gh.base.GHThreadFactory -import com.gh.common.constant.Config -import com.gh.common.runOnUiThread -import com.gh.common.structure.FixedSizeLinkedHashSet -import com.gh.gamecenter.R -import com.halo.assistant.HaloApp +import com.gh.gamecenter.core.GHThreadFactory +import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.callback.BiCallback +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IAppProvider +import com.gh.gamecenter.core.provider.IConfigProvider +import com.gh.gamecenter.core.utils.MD5Utils +import com.gh.gamecenter.core.utils.ToastUtils import com.lightgame.utils.Utils import com.squareup.picasso.LruCache import com.squareup.picasso.Picasso @@ -48,8 +53,8 @@ object ImageUtils { private val LARGE_GIF_SIZE = 80F.dip2px() private val STANDARD_GIF_SIZE = 60F.dip2px() - const val TAG_TARGET_WIDTH = R.dimen.width_placeholder - private const val TAG_NO_MEMORY_CACHE = R.string.no_memory_cache + val TAG_TARGET_WIDTH = R.dimen.width_placeholder + private val TAG_NO_MEMORY_CACHE = R.string.no_memory_cache // 是否仅显示静态 PNG 图片 (gif 会转码为静态图片) private var mDisplayStaticPngOnly = false @@ -78,7 +83,8 @@ object ImageUtils { @JvmStatic fun getUploadFileMaxSize(): Long { - val uploadLimitSize = Config.getSettings()?.image?.uploadLimitSize + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val uploadLimitSize = configProvider?.getUploadLimitSize() if (uploadLimitSize != null) { return uploadLimitSize } @@ -87,7 +93,8 @@ object ImageUtils { @JvmStatic fun getDefaultGifRule(): String { - val gifConfig = Config.getSettings()?.image?.oss?.gif + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val gifConfig = configProvider?.getGif() if (gifConfig != null) { return gifConfig } @@ -96,8 +103,9 @@ object ImageUtils { @JvmStatic fun getWatermarkWidthGifRule(width: Int?): String { - val gifConfig = Config.getSettings()?.image?.oss?.gitThumb - val gifWaterMark = Config.getSettings()?.image?.oss?.gifWaterMark + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val gifConfig = configProvider?.getGitThumb() + val gifWaterMark = configProvider?.getGifWaterMark() if (gifConfig != null && gifWaterMark != null) { return "$gifConfig,w_$width$gifWaterMark" } @@ -107,7 +115,8 @@ object ImageUtils { @JvmStatic fun getLimitWidthRule(width: Int?): String { - val jpegConfig = Config.getSettings()?.image?.oss?.jpeg + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val jpegConfig = configProvider?.getJpeg() if (jpegConfig != null) { return "$jpegConfig,w_$width" } @@ -116,9 +125,10 @@ object ImageUtils { @JvmStatic fun addLimitWidth(imageUrl: String?, width: Int?): String? { - val jpegConfig = Config.getSettings()?.image?.oss?.jpeg - var webpConfig = Config.getSettings()?.image?.oss?.webp - ?: Config.getSettings()?.image?.oss?.gif + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val jpegConfig = configProvider?.getJpeg() + var webpConfig = configProvider?.getWebp() + ?: configProvider?.getGif() // 全部图片转 png if (mDisplayStaticPngOnly) { @@ -137,7 +147,8 @@ object ImageUtils { @JvmStatic fun addLimitHeight(imageUrl: String, height: Int): String { - val jpegConfig = Config.getSettings()?.image?.oss?.jpeg + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val jpegConfig = configProvider?.getJpeg() if (jpegConfig != null) { return "$imageUrl$jpegConfig,h_$height" } @@ -146,7 +157,8 @@ object ImageUtils { @JvmStatic fun addLimitWidthAndHeight(imageUrl: String, width: Int, height: Int): String { - val jpegConfig = Config.getSettings()?.image?.oss?.jpeg + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val jpegConfig = configProvider?.getJpeg() if (jpegConfig != null) { return "$imageUrl$jpegConfig,w_$width,h_$height" } @@ -155,7 +167,8 @@ object ImageUtils { @JvmStatic fun getGitStaticImage(imageUrl: String): String { - val gifThumb = Config.getSettings()?.image?.oss?.gitThumb + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val gifThumb = configProvider?.getGitThumb() if (gifThumb != null) { return "$imageUrl$gifThumb" } @@ -338,7 +351,7 @@ object ImageUtils { .newBuilderWithSource(Uri.parse(url)) .build() Fresco.getImagePipeline() - .fetchDecodedImage(imageRequest, HaloApp.getInstance().application) + .fetchDecodedImage(imageRequest, HaloApp.getInstance()) .subscribe(object : BaseBitmapDataSubscriber() { override fun onFailureImpl(dataSource: DataSource>) { callback.onSecond(true) @@ -359,7 +372,7 @@ object ImageUtils { Single.just(url) .map { Picasso - .with(HaloApp.getInstance().application) + .with(HaloApp.getInstance()) .load(url) .priority(Picasso.Priority.HIGH) .get() @@ -471,11 +484,11 @@ object ImageUtils { view?.setTag(R.string.highResImageTag, highResUrl) } } - + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider // 低于 2G 运行内存的不加载 gif val shouldLoadAsGif = url.endsWith(".gif") && isAutoPlayGif - && (HaloApp.getInstance().deviceRamSize == 0L || HaloApp.getInstance().deviceRamSize > 2500) + && (appProvider?.getDeviceRamSize() == 0L || (appProvider?.getDeviceRamSize() ?: 0) > 2500) && view?.getTag(R.id.tag_show_gif) != false if (shouldLoadAsGif && view?.tag == url) return@execute @@ -591,7 +604,7 @@ object ImageUtils { fun prefetchToDiskCache(url: String) { val imagePipeline = Fresco.getImagePipeline() val imageRequest = ImageRequest.fromUri(url) - imagePipeline.prefetchToDiskCache(imageRequest, HaloApp.getInstance().application) + imagePipeline.prefetchToDiskCache(imageRequest, HaloApp.getInstance()) } private fun resizeGif(url: String, width: Int, height: Int): String { @@ -673,7 +686,7 @@ object ImageUtils { runOnUiThread { ToastUtils.toast("图片已保存到/Pictures/ghzhushou/") } - MessageShareUtils.refreshImage(HaloApp.getInstance(), dst) + BitmapUtils.refreshImage(HaloApp.getInstance(), dst) } catch (e: Exception) { Utils.log("图片保存失败:$e") } finally { diff --git a/app/src/main/java/com/gh/common/util/Installation.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/Installation.java similarity index 94% rename from app/src/main/java/com/gh/common/util/Installation.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/Installation.java index b011d1ffc4..0fdfc9d22b 100644 --- a/app/src/main/java/com/gh/common/util/Installation.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/Installation.java @@ -1,9 +1,9 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; import android.content.Context; import android.text.TextUtils; -import com.gh.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; import java.io.File; import java.io.FileOutputStream; diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/LogUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/LogUtils.java new file mode 100644 index 0000000000..8880f9a704 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/LogUtils.java @@ -0,0 +1,168 @@ +package com.gh.gamecenter.common.utils; + +import android.annotation.SuppressLint; +import android.text.TextUtils; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.BuildConfig; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.entity.ShareResultEntity; +import com.gh.gamecenter.common.exposure.meta.Meta; +import com.gh.gamecenter.common.exposure.meta.MetaUtil; +import com.gh.gamecenter.common.loghub.LoghubUtils; +import com.gh.gamecenter.common.retrofit.EmptyResponse; +import com.gh.gamecenter.common.retrofit.RetrofitManager; +import com.gh.gamecenter.core.provider.IAppProvider; +import com.gh.gamecenter.core.utils.GsonUtils; +import com.lightgame.utils.Utils; + +import org.json.JSONException; +import org.json.JSONObject; + +import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.RequestBody; + +public class LogUtils { + public static JSONObject getMetaObject() { + Meta meta = MetaUtil.INSTANCE.getMeta(); + JSONObject metaObject = new JSONObject(); + IAppProvider appProvider = (IAppProvider) ARouter.getInstance().build(RouteConsts.provider.app).navigation(); + try { + metaObject.put("dia", MetaUtil.getBase64EncodedAndroidId()); + metaObject.put("android_sdk", meta.getAndroid_sdk()); + metaObject.put("android_version", meta.getAndroid_version()); + metaObject.put("appVersion", meta.getAppVersion()); + metaObject.put("channel", meta.getChannel()); + metaObject.put("gid", meta.getGid()); + metaObject.put("jnfj", MetaUtil.getBase64EncodedIMEI()); + metaObject.put("mac", meta.getMac()); + metaObject.put("manufacturer", meta.getManufacturer()); + metaObject.put("model", meta.getModel()); + metaObject.put("network", meta.getNetwork()); + metaObject.put("os", meta.getOs()); + metaObject.put("userId", meta.getUserId()); + metaObject.put("oaid", appProvider.getOaid()); + + } catch (JSONException e) { + e.printStackTrace(); + } + return metaObject; + } + @SuppressLint("CheckResult") + public static void uploadShareResult(String shareType, String entrance, String shareResult, String url, String title, String summary, String resourceId) { + JSONObject object = new JSONObject(); + JSONObject payloadObject = new JSONObject(); + try { + object.put("action", "share_result"); + payloadObject.put("share_type", shareType); + payloadObject.put("entrance", entrance); + payloadObject.put("share_result", shareResult); + payloadObject.put("url", url); + payloadObject.put("title", title); + payloadObject.put("summary", summary); + payloadObject.put("resource_id", resourceId); + object.put("payload", payloadObject); + } catch (JSONException e) { + e.printStackTrace(); + } + uploadShare(object); + + ShareResultEntity entity = new ShareResultEntity(new ShareResultEntity.Content(url, title, summary), shareType, shareResult); + RequestBody body = RequestBody.create(MediaType.parse("application/json"), GsonUtils.toJson(entity)); + + RetrofitManager.getInstance().getApi() + .postShareResult(body) + .subscribeOn(Schedulers.io()) + .subscribe(new EmptyResponse<>()); + + // 判断是否上报游戏单活动的"转发活动"任务 + postGameCollectionRepostActivityTaskCheck(url, shareResult); + } + + @SuppressLint("CheckResult") + public static void postGameCollectionRepostActivityTaskCheck(String url, String shareResult) { + if (!TextUtils.isEmpty(url) && "success".equals(shareResult)) { + String gameCollectionActivityUrl; + if (EnvHelper.isDevEnv()) { + gameCollectionActivityUrl = Constants.GAME_COLLECTION_ACTIVITY_ADDRESS_DEV; + } else { + gameCollectionActivityUrl = Constants.GAME_COLLECTION_ACTIVITY_ADDRESS; + } + if (url.contains(gameCollectionActivityUrl)) { + RetrofitManager.getInstance().getNewApi() + .postGameCollectionTask("repost_activity", "0") + .subscribeOn(Schedulers.io()) + .subscribe(new EmptyResponse<>()); + } + } + } + + private static void uploadShare(JSONObject object) { + Meta meta = MetaUtil.INSTANCE.getMeta(); + JSONObject metaObject = new JSONObject(); + try { + metaObject.put("dia", MetaUtil.getBase64EncodedAndroidId()); + metaObject.put("android_sdk", meta.getAndroid_sdk()); + metaObject.put("android_version", meta.getAndroid_version()); + metaObject.put("appVersion", meta.getAppVersion()); + metaObject.put("channel", meta.getChannel()); + metaObject.put("gid", meta.getGid()); + metaObject.put("jnfj", MetaUtil.getBase64EncodedIMEI()); + metaObject.put("mac", meta.getMac()); + metaObject.put("manufacturer", meta.getManufacturer()); + metaObject.put("model", meta.getModel()); + metaObject.put("network", meta.getNetwork()); + metaObject.put("os", meta.getOs()); + metaObject.put("userId", meta.getUserId()); + + object.put("event", "SHARE"); + object.put("meta", metaObject); + object.put("timestamp", System.currentTimeMillis() / 1000); + } catch (JSONException e) { + e.printStackTrace(); + } + if (BuildConfig.DEBUG) { + Utils.log("LogUtils->" + object.toString()); + } + + LoghubUtils.log(object, "event", false); + } + + public static void uploadShareEnter(String entrance, String url, String title, String summary, String resourceId) { + JSONObject object = new JSONObject(); + JSONObject payloadObject = new JSONObject(); + try { + object.put("action", "entrance_source"); + payloadObject.put("entrance", entrance); + payloadObject.put("url", url); + payloadObject.put("title", title); + payloadObject.put("summary", summary); + payloadObject.put("resource_id", resourceId); + object.put("payload", payloadObject); + } catch (JSONException e) { + e.printStackTrace(); + } + uploadShare(object); + } + + public static void uploadShareType(String shareType, String entrance, String url, String title, String summary, String resourceId) { + JSONObject object = new JSONObject(); + JSONObject payloadObject = new JSONObject(); + try { + object.put("action", "share_type"); + payloadObject.put("share_type", shareType); + payloadObject.put("entrance", entrance); + payloadObject.put("url", url); + payloadObject.put("title", title); + payloadObject.put("summary", summary); + payloadObject.put("resource_id", resourceId); + object.put("payload", payloadObject); + } catch (JSONException e) { + e.printStackTrace(); + } + uploadShare(object); + } + +} diff --git a/app/src/main/java/com/gh/common/util/NetworkUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/NetworkUtils.java similarity index 99% rename from app/src/main/java/com/gh/common/util/NetworkUtils.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/NetworkUtils.java index ec551342ec..e8c16960c1 100644 --- a/app/src/main/java/com/gh/common/util/NetworkUtils.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/NetworkUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; import android.content.Context; import android.net.ConnectivityManager; diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/NewLogUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/NewLogUtils.kt new file mode 100644 index 0000000000..71d7d8c8a4 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/NewLogUtils.kt @@ -0,0 +1,71 @@ +package com.gh.gamecenter.common.utils + +import com.gh.gamecenter.common.entity.AdditionalParamsEntity +import com.gh.gamecenter.common.json.JsonObjectBuilder +import com.gh.gamecenter.common.json.json +import com.gh.gamecenter.common.loghub.LoghubUtils +import com.gh.gamecenter.common.tracker.Tracker +import com.lightgame.utils.Utils +import org.json.JSONObject + +object NewLogUtils { + private fun log(jsonObject: JSONObject, logStore: String, uploadImmediately: Boolean) { + Utils.log("NewLogUtils", jsonObject.toString(4)) + LoghubUtils.log(jsonObject, logStore, uploadImmediately) + } + + fun parseAndPutMeta(): JsonObjectBuilder.() -> Unit = { + val meta = LogUtils.getMetaObject() + val metaKeys = meta.keys() + while (metaKeys.hasNext()) { + val key: String = metaKeys.next().toString() + val value = meta.getString(key) + key to value + } + } + + //分享结果 + @JvmStatic + fun logShareResult(additionalParams: AdditionalParamsEntity? = null, shareResult: Boolean) { + val json = json { + "location" to "分享面板" + "event" to "share_result" + "meta" to LogUtils.getMetaObject() + "share_success" to shareResult + + additionalParams?.let { + "content_type" to it.contentType + "content_id" to it.contentId + "bbs_id" to it.bbsId + "bbs_type" to it.bbsType + "ref_user_id" to it.refUserId + } + + "launch_id" to Tracker.launchId + "session_id" to Tracker.sessionId + "timestamp" to System.currentTimeMillis() / 1000 + } + log(json, "bbs_community", false) + } + + //浏览游戏单/游戏单详情相关点击 + @JvmStatic + fun logViewOrClickGameCollectionDetail( + event: String, + title: String, + id: String, + shareType: String = "" + ) { + val json = json { + "event" to event + "game_collect_title" to title + "game_collect_id" to id + if (shareType.isNotEmpty()) { + "share_type" to shareType + } + "timestamp" to System.currentTimeMillis() / 1000 + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/NightModeUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/NightModeUtils.kt similarity index 72% rename from app/src/main/java/com/gh/common/util/NightModeUtils.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/NightModeUtils.kt index 06cd61c35b..d7d0c08cfd 100644 --- a/app/src/main/java/com/gh/common/util/NightModeUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/NightModeUtils.kt @@ -1,10 +1,13 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils import android.content.Context import android.content.res.Configuration import androidx.appcompat.app.AppCompatDelegate -import com.gh.common.constant.Constants -import com.gh.gamecenter.BuildConfig +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IBuildConfigProvider +import com.gh.gamecenter.core.utils.SPUtils object NightModeUtils { /** @@ -12,7 +15,8 @@ object NightModeUtils { */ fun isNightMode(context: Context): Boolean { // 仅配置开启的包才提供夜间模式功能 - return if (BuildConfig.IS_NIGHT_MODE_ON) { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + return if (buildConfig?.getIsNightModeOn() == true) { val uiMode = context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK uiMode == Configuration.UI_MODE_NIGHT_YES } else { @@ -46,7 +50,8 @@ object NightModeUtils { */ fun initNightMode(systemMode: Boolean, nightMode: Boolean) { // 仅配置开启的包才提供夜间模式功能 - if (BuildConfig.IS_NIGHT_MODE_ON) { + val buildConfig = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider + if (buildConfig?.getIsNightModeOn() == true) { if (systemMode) { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) } else { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/PackageFlavorHelper.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/PackageFlavorHelper.java new file mode 100644 index 0000000000..18230501d2 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/PackageFlavorHelper.java @@ -0,0 +1,16 @@ +package com.gh.gamecenter.common.utils; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.core.provider.IBuildConfigProvider; + +public class PackageFlavorHelper { + + private PackageFlavorHelper() { + } + + private static final IBuildConfigProvider mBuildConfig = (IBuildConfigProvider) ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation(); + // 包体是否为测试包 + public static final boolean IS_TEST_FLAVOR = mBuildConfig.getBuildTime() != 0L || mBuildConfig.isDebug(); + +} diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/PermissionHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/PermissionHelper.kt new file mode 100644 index 0000000000..7b4352bcf7 --- /dev/null +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/PermissionHelper.kt @@ -0,0 +1,274 @@ +package com.gh.gamecenter.common.utils + +import android.Manifest +import android.annotation.SuppressLint +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Build +import android.provider.Settings +import androidx.core.content.ContextCompat +import androidx.fragment.app.FragmentActivity +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.constant.Constants +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IActivationProvider +import com.gh.gamecenter.core.provider.IAppProvider +import com.gh.gamecenter.core.provider.IDirectProvider +import com.gh.gamecenter.core.utils.EmptyCallback +import com.gh.gamecenter.core.utils.MtaHelper +import com.gh.gamecenter.core.utils.SPUtils +import com.tbruyelle.rxpermissions2.RxPermissions + +object PermissionHelper { + + const val INSTALL_PERMISSION_CODE = 100 + + @SuppressLint("CheckResult") + @JvmStatic + fun requestReadPhoneStateAndStoragePermissionFromStartUp(context: Context) { + if (context is FragmentActivity) { + val rxPermission = RxPermissions(context) + + var requestCount = 0 + val permissionsStatusMap = hashMapOf() + permissionsStatusMap[Manifest.permission.READ_PHONE_STATE] = false + permissionsStatusMap[Manifest.permission.READ_EXTERNAL_STORAGE] = false + permissionsStatusMap[Manifest.permission.WRITE_EXTERNAL_STORAGE] = false + + tryWithDefaultCatch { + rxPermission + .requestEach( + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE + ) + .subscribe { permission -> + requestCount++ + permissionsStatusMap[permission.name] = permission.granted + + if (requestCount == 2) { + val hasReadPhoneStatePermission = permissionsStatusMap[Manifest.permission.READ_PHONE_STATE] == true + val hasReadStoragePermission = permissionsStatusMap[Manifest.permission.READ_EXTERNAL_STORAGE] == true + + if (hasReadPhoneStatePermission && hasReadStoragePermission) { + MtaHelper.onEvent("授权情况", "启动授权", "都授权") + } else if (!hasReadPhoneStatePermission && !hasReadStoragePermission) { + MtaHelper.onEvent("授权情况", "启动授权", "都不授权") + } else if (hasReadPhoneStatePermission) { + MtaHelper.onEvent("授权情况", "启动授权", "只授权IMEI") + } else if (hasReadStoragePermission) { + MtaHelper.onEvent("授权情况", "启动授权", "只授权存储") + } + } + } + } + + } + } + + @SuppressLint("CheckResult") + @JvmStatic + fun checkStoragePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { + if (context is FragmentActivity) { + if (context.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED + && context.checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED + ) { + emptyCallback.onCallback() + SPUtils.setBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION, false) + } else { + showDialogBeforeRequestingStorageDialog(context, emptyCallback) + } + } + } + + @SuppressLint("CheckResult") + private fun checkStoragePermissionBeforeAction(context: FragmentActivity, emptyCallback: EmptyCallback) { + tryWithDefaultCatch { + val rxPermission = RxPermissions(context) + rxPermission + .requestEachCombined(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE) + .subscribe { permission -> + when { + permission.granted -> { + emptyCallback.onCallback() + SPUtils.setBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION, false) + } + permission.shouldShowRequestPermissionRationale -> { + // do nothing + } + else -> { + if (SPUtils.getBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION)) { + val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + intent.data = Uri.parse("package:" + context.packageName) + context.startActivity(intent) + } else { + SPUtils.setBoolean(Constants.SP_USER_HAS_PERMANENTLY_DENIED_STORAGE_PERMISSION, true) + } + } + } + } + } + } + + @SuppressLint("CheckResult") + @JvmStatic + fun checkReadPhoneStateAndStoragePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { + if (context is FragmentActivity) { + if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED + && context.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED + && context.checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED + ) { + emptyCallback.onCallback() + } else { + val rxPermission = RxPermissions(context) + + tryWithDefaultCatch { + rxPermission + .requestEachCombined( + Manifest.permission.READ_PHONE_STATE, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE + ) + .subscribe { permission -> + when { + permission.granted -> { + emptyCallback.onCallback() + + val provider = ARouter.getInstance().build(RouteConsts.provider.activation).navigation() as? IActivationProvider + provider?.sendActivationInfo() + } + permission.shouldShowRequestPermissionRationale -> { + // do nothing + } + else -> { + val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + intent.data = Uri.parse("package:" + context.getPackageName()) + context.startActivity(intent) + } + } + } + } + } + } + } + + @SuppressLint("CheckResult") + @JvmStatic + fun checkReadPhoneStatePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { + if (context is FragmentActivity) { + + if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { + emptyCallback.onCallback() + } else { + val rxPermission = RxPermissions(context) + + tryWithDefaultCatch { + rxPermission + .requestEachCombined(Manifest.permission.READ_PHONE_STATE) + .subscribe { permission -> + when { + permission.granted -> { + emptyCallback.onCallback() + val provider = ARouter.getInstance().build(RouteConsts.provider.activation).navigation() as? IActivationProvider + provider?.sendActivationInfo() + } + permission.shouldShowRequestPermissionRationale -> { + // do nothing + } + else -> { + val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + intent.data = Uri.parse("package:" + context.getPackageName()) + context.startActivity(intent) + } + } + } + } + } + } + } + + /** + * 跳转到权限设置 + * + * @param activity + */ + fun toPermissionSetting(activity: Activity) { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) { + toSystemConfig(activity) + } else { + try { + toApplicationInfo(activity) + } catch (e: Exception) { + e.printStackTrace() + toSystemConfig(activity) + } + + } + } + + /** + * 应用信息界面 + * + * @param activity + */ + private fun toApplicationInfo(activity: Activity) { + val localIntent = Intent() + localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + localIntent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS + localIntent.data = Uri.fromParts("package", activity.packageName, null) + activity.startActivity(localIntent) + } + + /** + * 系统设置界面 + * + * @param activity + */ + private fun toSystemConfig(activity: Activity) { + try { + val intent = Intent(Settings.ACTION_SETTINGS) + activity.startActivity(intent) + } catch (e: Exception) { + e.printStackTrace() + } + } + + private fun showDialogBeforeRequestingStorageDialog(context: FragmentActivity, emptyCallback: EmptyCallback) { + DialogHelper.showDialog( + context, + title = "权限申请", + content = "光环助手将向您申请开启设备的存储权限,以保证能正常使用相关功能。拒绝授权将无法正常使用部分功能。", + cancelText = "放弃", + confirmText = "去授权", + cancelClickCallback = null, + confirmClickCallback = { checkStoragePermissionBeforeAction(context, emptyCallback) }, + extraConfig = DialogHelper.Config(hint = "查看权限应用场景"), + uiModificationCallback = { + it.hintTv.setTextColor(ContextCompat.getColor(context, R.color.theme_font)) + it.hintTv.setOnClickListener { + val provider = ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as? IDirectProvider + provider?.directToWebView(context, Constants.PERMISSION_SCENARIO_ADDRESS, "(权限弹窗)") + } + it.contentTv.setTextColor(ContextCompat.getColor(context, R.color.text_title)) + } + ) + } + + /** + * 开启安装未知来源权限 + */ + fun toInstallPermissionSetting(activity: Activity) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { + toSystemConfig(activity) + } else { + val packageURI = Uri.fromParts("package", activity.packageName, null) + val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI) + activity.startActivityForResult(intent, INSTALL_PERMISSION_CODE) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/PicassoImageGetter.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/PicassoImageGetter.java similarity index 95% rename from app/src/main/java/com/gh/common/util/PicassoImageGetter.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/PicassoImageGetter.java index b9055c47c6..be21c40a6f 100644 --- a/app/src/main/java/com/gh/common/util/PicassoImageGetter.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/PicassoImageGetter.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; import android.content.Context; import android.graphics.Bitmap; @@ -13,8 +13,8 @@ import android.widget.TextView; import androidx.core.content.res.ResourcesCompat; -import com.gh.gamecenter.R; -import com.halo.assistant.HaloApp; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.core.HaloApp; import com.squareup.picasso.Picasso; import com.squareup.picasso.Target; import com.squareup.picasso.Transformation; @@ -33,7 +33,7 @@ public class PicassoImageGetter implements Html.ImageGetter { public Drawable getDrawable(String source) { BitmapDrawablePlaceHolder drawable = new BitmapDrawablePlaceHolder(); - Context context = HaloApp.getInstance().getApplication(); + Context context = HaloApp.getInstance(); ImageUtils.getPicasso() .load(source) .transform(new CircleTransformation()) @@ -83,7 +83,6 @@ public class PicassoImageGetter implements Html.ImageGetter { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { setDrawable(new BitmapDrawable(HaloApp.getInstance() - .getApplication() .getResources(), bitmap)); } diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/ShareUtils.java similarity index 90% rename from app/src/main/java/com/gh/common/util/ShareUtils.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/ShareUtils.java index 38558183c5..8696c91cb3 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/ShareUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; import android.app.Activity; import android.content.Context; @@ -25,12 +25,21 @@ import android.widget.TextView; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.constant.Config; -import com.gh.gamecenter.R; -import com.gh.gamecenter.WeiBoShareActivity; -import com.gh.gamecenter.entity.AdditionalParamsEntity; -import com.gh.gamecenter.entity.ShareEntity; -import com.gh.gamecenter.eventbus.EBShare; +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.callback.BiCallback; +import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.common.entity.AdditionalParamsEntity; +import com.gh.gamecenter.common.entity.ShareEntity; +import com.gh.gamecenter.common.eventbus.EBShare; +import com.gh.gamecenter.core.provider.IConfigProvider; +import com.gh.gamecenter.core.provider.IEnergyTaskProvider; +import com.gh.gamecenter.core.provider.IPackageHelperProvider; +import com.gh.gamecenter.core.provider.IPackageUtilsProvider; +import com.gh.gamecenter.core.utils.DisplayUtils; +import com.gh.gamecenter.core.utils.IntentUtils; +import com.gh.gamecenter.core.utils.MtaHelper; import com.lightgame.utils.Utils; import com.tencent.connect.share.QQShare; import com.tencent.connect.share.QzoneShare; @@ -50,6 +59,7 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; + /** * Created by khy on 2016/9/4. */ @@ -140,12 +150,13 @@ public class ShareUtils { @Override public void onComplete(Object o) { Utils.toast(mContext, R.string.share_success_hint); + IEnergyTaskProvider energyTaskProvider = (IEnergyTaskProvider) ARouter.getInstance().build(RouteConsts.provider.energyTask).navigation(); EventBus.getDefault().post(new EBShare(ShareUtils.shareEntrance)); LogUtils.uploadShareResult(shareType, ShareUtils.shareEntrance.getName(), "success", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); - EnergyTaskHelper.postEnergyTaskForShare(ShareUtils.shareEntrance.getName(), ShareUtils.resourceId, ShareUtils.shareEntity.getShareUrl()); + energyTaskProvider.postEnergyTaskForShare(ShareUtils.shareEntrance.getName(), ShareUtils.resourceId, ShareUtils.shareEntity.getShareUrl()); if (ShareUtils.shareEntrance == ShareEntrance.inviteFriends) { - IntegralLogHelper.INSTANCE.logInviteResult("成功", mShareType.getName()); + energyTaskProvider.logInviteResult("成功", mShareType.getName()); } if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareEntrance.communityArticle || @@ -173,7 +184,8 @@ public class ShareUtils { LogUtils.uploadShareResult(shareType, ShareUtils.shareEntrance.getName(), "fail", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); if (ShareUtils.shareEntrance == ShareEntrance.inviteFriends) { - IntegralLogHelper.INSTANCE.logInviteResult("失败", mShareType.getName()); + IEnergyTaskProvider energyTaskProvider = (IEnergyTaskProvider) ARouter.getInstance().build(RouteConsts.provider.energyTask).navigation(); + energyTaskProvider.logInviteResult("失败", mShareType.getName()); } if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareEntrance.communityArticle || @@ -188,7 +200,8 @@ public class ShareUtils { LogUtils.uploadShareResult(shareType, ShareUtils.shareEntrance.getName(), "cancel", ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); if (ShareUtils.shareEntrance == ShareEntrance.inviteFriends) { - IntegralLogHelper.INSTANCE.logInviteResult("取消", mShareType.getName()); + IEnergyTaskProvider energyTaskProvider = (IEnergyTaskProvider) ARouter.getInstance().build(RouteConsts.provider.energyTask).navigation(); + energyTaskProvider.logInviteResult("取消", mShareType.getName()); } if (ShareUtils.shareEntrance == ShareUtils.ShareEntrance.askNormal || ShareUtils.shareEntrance == ShareEntrance.communityArticle || @@ -204,9 +217,10 @@ public class ShareUtils { }; private ShareUtils(Context context) { + IConfigProvider configProvider = (IConfigProvider) ARouter.getInstance().build(RouteConsts.provider.config).navigation(); mContext = context.getApplicationContext(); - mTencent = Tencent.createInstance(Config.TENCENT_APPID, mContext); //初始化QQ分享 - mIWXAPI = WXAPIFactory.createWXAPI(mContext, Config.WECHAT_APPID); //初始化微信分享 + mTencent = Tencent.createInstance(configProvider.getTencentAppId(), mContext); //初始化QQ分享 + mIWXAPI = WXAPIFactory.createWXAPI(mContext, configProvider.getWechatAppId()); //初始化微信分享 } public static ShareUtils getInstance(Context context) { @@ -218,7 +232,8 @@ public class ShareUtils { //检查是否安装手机QQ public static boolean isQQClientAvailable(Context context) { - List pinfo = PackageUtils.getInstalledPackages(context, 0); + IPackageUtilsProvider packageUtilsConfig = (IPackageUtilsProvider) ARouter.getInstance().build(RouteConsts.provider.packageUtils).navigation(); + List pinfo = packageUtilsConfig.getInstalledPackages(context, 0); if (pinfo != null) { for (int i = 0; i < pinfo.size(); i++) { String pn = pinfo.get(i).packageName; @@ -489,8 +504,8 @@ public class ShareUtils { shareType = "wechat_friend"; mShareType = ShareType.wechat; LogUtils.uploadShareType(shareType, shareEntrance.getName(), shareUrl, mTitle, mSummary, resourceId); - - if (!PackageHelper.INSTANCE.getLocalPackageNameSet().contains("com.tencent.mm")) { + IPackageHelperProvider packageHelperProvider = (IPackageHelperProvider) ARouter.getInstance().build(RouteConsts.provider.packageHelper).navigation(); + if (!packageHelperProvider.getLocalPackageNameSet().contains("com.tencent.mm")) { Utils.toast(mContext, "没安装微信,分享失败"); return; } @@ -657,8 +672,8 @@ public class ShareUtils { mShareType = ShareType.wechatMoments; shareType = "wechat_moment"; LogUtils.uploadShareType(shareType, shareEntrance.getName(), shareUrl, mTitle, mSummary, resourceId); - - if (!PackageHelper.INSTANCE.getLocalPackageNameSet().contains("com.tencent.mm")) { + IPackageHelperProvider packageHelperProvider = (IPackageHelperProvider) ARouter.getInstance().build(RouteConsts.provider.packageHelper).navigation(); + if (!packageHelperProvider.getLocalPackageNameSet().contains("com.tencent.mm")) { Utils.toast(mContext, "没安装微信,分享失败"); return; } @@ -709,14 +724,23 @@ public class ShareUtils { } Activity activity = mActivity.get(); if (activity != null) { - Intent intent = WeiBoShareActivity.getWeiboShareIntent( - activity, - shareUrl, - shareIcon, - mTitle, - mSummary, - mShareEntrance.toString()); - activity.startActivity(intent); +// Intent intent = WeiBoShareActivity.getWeiboShareIntent( +// activity, +// shareUrl, +// shareIcon, +// mTitle, +// mSummary, +// mShareEntrance.toString()); +// activity.startActivity(intent); + ARouter.getInstance().build(RouteConsts.activity.weiBoShareActivity) + .withString(EntranceConsts.KET_SHARE_STYLE, "NORMAL") + .withString(EntranceConsts.KET_TITLE, mTitle) + .withString(EntranceConsts.KET_SHAREICON, shareIcon) + .withString(EntranceConsts.KET_SUMMARY, mSummary) + .withString(EntranceConsts.KET_SHAREURL, shareUrl) + .withString(EntranceConsts.KET_TYPE, mShareEntrance.toString()) + .withFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + .navigation(); } diff --git a/app/src/main/java/com/gh/common/util/TextHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/TextHelper.kt similarity index 93% rename from app/src/main/java/com/gh/common/util/TextHelper.kt rename to module_common/src/main/java/com/gh/gamecenter/common/utils/TextHelper.kt index b1aedff177..e842ad92be 100644 --- a/app/src/main/java/com/gh/common/util/TextHelper.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/TextHelper.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.common.utils import android.content.ClipboardManager import android.content.Context @@ -12,10 +12,14 @@ import android.widget.EditText import android.widget.TextView import androidx.annotation.ColorRes import androidx.core.content.ContextCompat -import com.gh.common.view.CustomLinkMovementMethod -import com.gh.common.view.RoundStrokeBackgroundColorSpan -import com.gh.gamecenter.R -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.callback.SimpleCallback +import com.gh.gamecenter.common.view.CustomLinkMovementMethod +import com.gh.gamecenter.core.utils.ClickUtils +import com.gh.gamecenter.core.utils.ToastUtils +import com.gh.gamecenter.common.view.RoundStrokeBackgroundColorSpan +import com.gh.gamecenter.core.utils.DisplayUtils import com.lightgame.utils.Utils import java.util.* import java.util.regex.Pattern @@ -39,7 +43,7 @@ object TextHelper { val str = editText.text.toString().substring(0, length) editText.setText(str) editText.setSelection(str.length) - if (!ClickUtils.isFastDoubleClick(R.id.inputEt, 2000)) { + if (!ClickUtils.isFastDoubleClick(editText.id, 2000)) { exceedCallback?.onExceed() } } @@ -114,7 +118,7 @@ object TextHelper { textView.text = getHighlightedSpannableStringThatIsWrappedInsideWrapper(textView.context, text ?: "", "###", R.color.theme_font, object : SimpleCallback { override fun onCallback(arg: String) { - val application = HaloApp.getInstance().application + val application = HaloApp.getInstance() val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager cmb.text = arg Utils.toast(application, "已复制:$arg") @@ -148,7 +152,7 @@ object TextHelper { highlightColorId: Int = R.color.theme_font, highlightedTextClickListener: SimpleCallback? = object : SimpleCallback { override fun onCallback(arg: String) { - val application = HaloApp.getInstance().application + val application = HaloApp.getInstance() val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager cmb.text = arg Utils.toast(application, "已复制:$arg") @@ -167,7 +171,7 @@ object TextHelper { highlightColorId: Int = R.color.theme_font, highlightedTextClickListener: SimpleCallback? = object : SimpleCallback { override fun onCallback(arg: String) { - val application = HaloApp.getInstance().application + val application = HaloApp.getInstance() val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager cmb.text = arg Utils.toast(application, "已复制:$arg") @@ -263,6 +267,7 @@ object TextHelper { return contents } + @JvmStatic fun getCommentLabelSpannableStringBuilder(comment: CharSequence, colorRes: Int): SpannableStringBuilder { val contents = SpannableStringBuilder() var count = 0 @@ -279,7 +284,7 @@ object TextHelper { val newLabel = "#$label# " contents.append(newLabel) contents.setSpan( - ForegroundColorSpan(ContextCompat.getColor(HaloApp.getInstance().application, colorRes)), + ForegroundColorSpan(ContextCompat.getColor(HaloApp.getInstance(), colorRes)), count, count + newLabel.length - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE ) count += newLabel.length @@ -306,7 +311,7 @@ object TextHelper { Color.parseColor(tagStrokeColor), Color.parseColor(tagTextColor), strokeWidth, - DisplayUtils.sp2px(HaloApp.getInstance().application, 10F) + DisplayUtils.sp2px(HaloApp.getInstance(), 10F) ) } else { RoundStrokeBackgroundColorSpan( diff --git a/app/src/main/java/com/gh/common/util/TimestampUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/TimestampUtils.java similarity index 88% rename from app/src/main/java/com/gh/common/util/TimestampUtils.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/TimestampUtils.java index 3481a3f8cd..98776eb72e 100644 --- a/app/src/main/java/com/gh/common/util/TimestampUtils.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/TimestampUtils.java @@ -1,16 +1,18 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; import android.text.TextUtils; -import com.gh.common.constant.Constants; -import com.gh.gamecenter.BuildConfig; -import com.halo.assistant.HaloApp; +import androidx.collection.ArrayMap; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.gh.gamecenter.common.BuildConfig; +import com.gh.gamecenter.common.constant.Constants; +import com.gh.gamecenter.common.constant.RouteConsts; +import com.gh.gamecenter.core.provider.IAppProvider; import java.util.ArrayList; import java.util.regex.Pattern; -import androidx.collection.ArrayMap; - public class TimestampUtils { // 基准时间 @@ -65,8 +67,8 @@ public class TimestampUtils { return url; } } - - if (BuildConfig.DEBUG || "GH_REFRESH".equals(HaloApp.getInstance().getChannel())) { + IAppProvider appProvider = (IAppProvider) ARouter.getInstance().build(RouteConsts.provider.app).navigation(); + if (BuildConfig.DEBUG || "GH_REFRESH".equals(appProvider.getChannel())) { if (TextUtils.isEmpty(url)) { return url; } @@ -124,7 +126,7 @@ public class TimestampUtils { } long now = System.currentTimeMillis(); // Utils.log("url now timestamp = " + now); - return (long) (Math.ceil(((float)(now - base)) / cd) * cd + base); + return (long) (Math.ceil(((float) (now - base)) / cd) * cd + base); } private static ArrayMap getIntervalMap() { diff --git a/app/src/main/java/com/gh/common/util/UserIconUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/UserIconUtils.java similarity index 96% rename from app/src/main/java/com/gh/common/util/UserIconUtils.java rename to module_common/src/main/java/com/gh/gamecenter/common/utils/UserIconUtils.java index 299a9c9c0e..47a99fca6c 100644 --- a/app/src/main/java/com/gh/common/util/UserIconUtils.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/UserIconUtils.java @@ -1,6 +1,6 @@ -package com.gh.common.util; +package com.gh.gamecenter.common.utils; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; /** * Created by khy on 2017/2/13. diff --git a/app/src/main/java/com/gh/common/view/AbstractSwipeRefreshHeader.java b/module_common/src/main/java/com/gh/gamecenter/common/view/AbstractSwipeRefreshHeader.java similarity index 99% rename from app/src/main/java/com/gh/common/view/AbstractSwipeRefreshHeader.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/AbstractSwipeRefreshHeader.java index b8e6a2ff8d..7a6c70e43b 100644 --- a/app/src/main/java/com/gh/common/view/AbstractSwipeRefreshHeader.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/AbstractSwipeRefreshHeader.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.drawable.Animatable; @@ -21,7 +21,6 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import com.gh.gamecenter.R; import com.scwang.smartrefresh.layout.api.RefreshInternal; import com.scwang.smartrefresh.layout.api.RefreshKernel; import com.scwang.smartrefresh.layout.api.RefreshLayout; diff --git a/app/src/main/java/com/gh/common/view/AutoScrollRecyclerViewContainerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/AutoScrollRecyclerViewContainerView.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/AutoScrollRecyclerViewContainerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/AutoScrollRecyclerViewContainerView.kt index 6dcb57c3e5..a00090485d 100644 --- a/app/src/main/java/com/gh/common/view/AutoScrollRecyclerViewContainerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/AutoScrollRecyclerViewContainerView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.os.Build diff --git a/app/src/main/java/com/gh/common/view/AutoScrollRecyclerViewContainerViewBackup.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/AutoScrollRecyclerViewContainerViewBackup.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/AutoScrollRecyclerViewContainerViewBackup.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/AutoScrollRecyclerViewContainerViewBackup.kt index 183f0e4dbc..ca7bcf0212 100644 --- a/app/src/main/java/com/gh/common/view/AutoScrollRecyclerViewContainerViewBackup.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/AutoScrollRecyclerViewContainerViewBackup.kt @@ -1,5 +1,4 @@ -//package com.gh.common.view -// +//package com.gh.gamecenter.common.view //import android.content.Context //import android.util.AttributeSet //import android.view.MotionEvent diff --git a/app/src/main/java/com/gh/common/view/AvatarBorderView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/AvatarBorderView.kt similarity index 96% rename from app/src/main/java/com/gh/common/view/AvatarBorderView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/AvatarBorderView.kt index e9c757b480..b71729e68e 100644 --- a/app/src/main/java/com/gh/common/view/AvatarBorderView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/AvatarBorderView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.graphics.Color @@ -10,10 +10,10 @@ import androidx.cardview.widget.CardView import androidx.constraintlayout.widget.ConstraintLayout import com.facebook.drawee.generic.RoundingParams import com.facebook.drawee.view.SimpleDraweeView -import com.gh.common.util.ImageUtils -import com.gh.common.util.dip2px -import com.gh.common.util.toColor -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.toColor class AvatarBorderView : ConstraintLayout { diff --git a/app/src/main/java/com/gh/common/view/BugFixedPopupWindow.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/BugFixedPopupWindow.kt similarity index 92% rename from app/src/main/java/com/gh/common/view/BugFixedPopupWindow.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/BugFixedPopupWindow.kt index b10a2f19aa..d8539583f7 100644 --- a/app/src/main/java/com/gh/common/view/BugFixedPopupWindow.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/BugFixedPopupWindow.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.graphics.Color import android.graphics.drawable.PaintDrawable diff --git a/app/src/main/java/com/gh/common/view/CardLinearLayout.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CardLinearLayout.java similarity index 99% rename from app/src/main/java/com/gh/common/view/CardLinearLayout.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CardLinearLayout.java index f557571fc5..2069ad6685 100644 --- a/app/src/main/java/com/gh/common/view/CardLinearLayout.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CardLinearLayout.java @@ -1,14 +1,15 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.drawable.Drawable; -import androidx.core.content.ContextCompat; import android.util.AttributeSet; import android.widget.LinearLayout; -import com.gh.gamecenter.R; +import androidx.core.content.ContextCompat; + +import com.gh.gamecenter.common.R; public class CardLinearLayout extends LinearLayout { diff --git a/app/src/main/java/com/gh/common/view/CardRelativeLayout.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CardRelativeLayout.java similarity index 98% rename from app/src/main/java/com/gh/common/view/CardRelativeLayout.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CardRelativeLayout.java index c94f333a2f..1daf726cb2 100644 --- a/app/src/main/java/com/gh/common/view/CardRelativeLayout.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CardRelativeLayout.java @@ -1,14 +1,15 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.drawable.Drawable; -import androidx.core.content.ContextCompat; import android.util.AttributeSet; import android.widget.RelativeLayout; -import com.gh.gamecenter.R; +import androidx.core.content.ContextCompat; + +import com.gh.gamecenter.common.R; public class CardRelativeLayout extends RelativeLayout { diff --git a/app/src/main/java/com/gh/common/view/CircleProgressBar.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CircleProgressBar.java similarity index 98% rename from app/src/main/java/com/gh/common/view/CircleProgressBar.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CircleProgressBar.java index d889cc78f8..563f590c69 100644 --- a/app/src/main/java/com/gh/common/view/CircleProgressBar.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CircleProgressBar.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; @@ -9,8 +9,8 @@ import android.graphics.RectF; import android.util.AttributeSet; import android.view.View; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.core.utils.DisplayUtils; public class CircleProgressBar extends View { private int height; diff --git a/app/src/main/java/com/gh/common/view/ClearEditTextNormal.java b/module_common/src/main/java/com/gh/gamecenter/common/view/ClearEditTextNormal.java similarity index 97% rename from app/src/main/java/com/gh/common/view/ClearEditTextNormal.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/ClearEditTextNormal.java index 4565159c9c..cc8d170a67 100644 --- a/app/src/main/java/com/gh/common/view/ClearEditTextNormal.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/ClearEditTextNormal.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.drawable.Drawable; @@ -12,8 +12,8 @@ import android.view.animation.Animation; import android.view.animation.CycleInterpolator; import android.view.animation.TranslateAnimation; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.core.utils.DisplayUtils; public class ClearEditTextNormal extends androidx.appcompat.widget.AppCompatEditText implements OnFocusChangeListener, TextWatcher { diff --git a/app/src/main/java/com/gh/common/view/CropImageBorderView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CropImageBorderView.java similarity index 98% rename from app/src/main/java/com/gh/common/view/CropImageBorderView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CropImageBorderView.java index 36a60809e6..6cc951549a 100644 --- a/app/src/main/java/com/gh/common/view/CropImageBorderView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CropImageBorderView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.Canvas; @@ -9,7 +9,7 @@ import android.util.AttributeSet; import android.util.TypedValue; import android.view.View; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; public class CropImageBorderView extends View { diff --git a/app/src/main/java/com/gh/common/view/CropImageCustom.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CropImageCustom.java similarity index 96% rename from app/src/main/java/com/gh/common/view/CropImageCustom.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CropImageCustom.java index 33c1672796..379450bedc 100644 --- a/app/src/main/java/com/gh/common/view/CropImageCustom.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CropImageCustom.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; @@ -9,8 +9,8 @@ import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.core.utils.DisplayUtils; import java.io.BufferedOutputStream; import java.io.File; diff --git a/app/src/main/java/com/gh/common/view/CropImageZoomView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CropImageZoomView.java similarity index 99% rename from app/src/main/java/com/gh/common/view/CropImageZoomView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CropImageZoomView.java index 5138f65d22..ad0e7c5115 100644 --- a/app/src/main/java/com/gh/common/view/CropImageZoomView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CropImageZoomView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.Bitmap; diff --git a/app/src/main/java/com/gh/common/view/CustomDividerItemDecoration.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomDividerItemDecoration.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/CustomDividerItemDecoration.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/CustomDividerItemDecoration.kt index 060fd1d0b6..7bee73f30d 100644 --- a/app/src/main/java/com/gh/common/view/CustomDividerItemDecoration.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomDividerItemDecoration.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.graphics.Canvas diff --git a/app/src/main/java/com/gh/common/view/CustomDurationScroller.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomDurationScroller.java similarity index 96% rename from app/src/main/java/com/gh/common/view/CustomDurationScroller.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CustomDurationScroller.java index 4be3082b8e..9abb4c853e 100644 --- a/app/src/main/java/com/gh/common/view/CustomDurationScroller.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomDurationScroller.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.view.animation.Interpolator; diff --git a/app/src/main/java/com/gh/common/view/CustomLinkMovementMethod.java b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomLinkMovementMethod.java similarity index 98% rename from app/src/main/java/com/gh/common/view/CustomLinkMovementMethod.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/CustomLinkMovementMethod.java index f95f6ac4b1..505a49062e 100644 --- a/app/src/main/java/com/gh/common/view/CustomLinkMovementMethod.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomLinkMovementMethod.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.text.Layout; import android.text.Selection; diff --git a/app/src/main/java/com/gh/common/view/CustomMarkerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomMarkerView.kt similarity index 81% rename from app/src/main/java/com/gh/common/view/CustomMarkerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/CustomMarkerView.kt index 5c770db69c..0236a95949 100644 --- a/app/src/main/java/com/gh/common/view/CustomMarkerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomMarkerView.kt @@ -1,11 +1,9 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.widget.TextView -import androidx.core.content.ContextCompat -import com.gh.common.util.DisplayUtils -import com.gh.common.util.dip2px -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.utils.dip2px import com.github.mikephil.charting.components.MarkerView import com.github.mikephil.charting.data.Entry import com.github.mikephil.charting.highlight.Highlight diff --git a/app/src/main/java/com/gh/common/view/CustomOrderDrawChildLinearLayout.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomOrderDrawChildLinearLayout.kt similarity index 92% rename from app/src/main/java/com/gh/common/view/CustomOrderDrawChildLinearLayout.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/CustomOrderDrawChildLinearLayout.kt index 8c2c54886b..a428e756a1 100644 --- a/app/src/main/java/com/gh/common/view/CustomOrderDrawChildLinearLayout.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomOrderDrawChildLinearLayout.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/CustomSeekBar.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomSeekBar.kt similarity index 94% rename from app/src/main/java/com/gh/common/view/CustomSeekBar.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/CustomSeekBar.kt index 738f4bbfe1..7727d74f2e 100644 --- a/app/src/main/java/com/gh/common/view/CustomSeekBar.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/CustomSeekBar.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.annotation.SuppressLint import android.content.Context @@ -9,11 +9,10 @@ import android.graphics.Rect import android.util.AttributeSet import android.view.View import androidx.appcompat.widget.AppCompatSeekBar -import com.gh.common.util.DisplayUtils -import com.gh.common.util.dip2px -import com.gh.common.util.px2dip -import com.gh.common.util.sp2px -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.dip2px +import com.gh.gamecenter.common.utils.sp2px /** * 自定义滑块顶部带进度显示的SeekBar diff --git a/app/src/main/java/com/gh/common/view/DraggableBigImageView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/DraggableBigImageView.kt similarity index 99% rename from app/src/main/java/com/gh/common/view/DraggableBigImageView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/DraggableBigImageView.kt index 5c88edb9b5..45b6241242 100644 --- a/app/src/main/java/com/gh/common/view/DraggableBigImageView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/DraggableBigImageView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.graphics.RectF diff --git a/app/src/main/java/com/gh/common/view/DrawableView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/DrawableView.kt similarity index 52% rename from app/src/main/java/com/gh/common/view/DrawableView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/DrawableView.kt index 0ae6a1ce5d..1dee70ccb2 100644 --- a/app/src/main/java/com/gh/common/view/DrawableView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/DrawableView.kt @@ -1,5 +1,6 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view +import android.content.Context import android.content.res.ColorStateList import android.graphics.Color import android.graphics.LinearGradient @@ -13,16 +14,16 @@ import android.widget.TextView import androidx.annotation.ColorRes import androidx.annotation.DrawableRes import androidx.core.content.ContextCompat -import com.gh.common.util.DisplayUtils -import com.gh.common.util.dip2px -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.core.utils.DisplayUtils +import com.gh.gamecenter.common.utils.dip2px object DrawableView { @JvmStatic fun getServerDrawableBySource(@ColorRes colorId: Int): Drawable { - return getServerDrawable(ContextCompat.getColor(HaloApp.getInstance().application, colorId)) + return getServerDrawable(ContextCompat.getColor(HaloApp.getInstance(), colorId)) } @JvmStatic @@ -39,36 +40,69 @@ object DrawableView { } @JvmStatic - fun getOvalDrawable(@ColorRes colorId: Int, radius: Float = 999F): Drawable { + fun getOvalDrawable( + @ColorRes colorId: Int, + radius: Float = 999F + ): Drawable { val drawable = GradientDrawable() - drawable.setColor(ContextCompat.getColor(HaloApp.getInstance().application, colorId)) + drawable.setColor(ContextCompat.getColor(HaloApp.getInstance(), colorId)) drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat() return drawable } @JvmStatic - fun getOvalSelectorStyle(@ColorRes defaultColorId: Int, @ColorRes checkColorId: Int): StateListDrawable { + fun getOvalDrawable( + @ColorRes colorId: Int, + radius: Float = 999F, + context: Context = HaloApp.getInstance() + ): Drawable { + val drawable = GradientDrawable() + drawable.setColor(ContextCompat.getColor(context, colorId)) + drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat() + return drawable + } + + @JvmStatic + fun getOvalSelectorStyle( + @ColorRes defaultColorId: Int, + @ColorRes checkColorId: Int, + context: Context = HaloApp.getInstance() + ): StateListDrawable { val res = StateListDrawable() - res.addState(intArrayOf(android.R.attr.state_checked), getOvalDrawable(checkColorId)) - res.addState(intArrayOf(), getOvalDrawable(defaultColorId)) + res.addState(intArrayOf(android.R.attr.state_checked), getOvalDrawable(checkColorId, context = context)) + res.addState(intArrayOf(), getOvalDrawable(defaultColorId, context = context)) return res } @JvmStatic - fun getSelectorColorStyle(@ColorRes defaultColorId: Int, @ColorRes checkColorId: Int): ColorStateList { + fun getSelectorColorStyle( + @ColorRes defaultColorId: Int, + @ColorRes checkColorId: Int, + context: Context = HaloApp.getInstance() + ): ColorStateList { val states = arrayOf( - intArrayOf(-android.R.attr.state_checked), - intArrayOf(android.R.attr.state_checked)) + intArrayOf(-android.R.attr.state_checked), + intArrayOf(android.R.attr.state_checked) + ) val colors = intArrayOf( - ContextCompat.getColor(HaloApp.getInstance().application, defaultColorId), - ContextCompat.getColor(HaloApp.getInstance().application, checkColorId)) + ContextCompat.getColor(context, defaultColorId), + ContextCompat.getColor(context, checkColorId) + ) return ColorStateList(states, colors) } @JvmStatic - fun getStrokeDrawable(@ColorRes colorCode: Int, strokeWidth: Float = 1F, radius: Float = 999F): Drawable { + fun getStrokeDrawable( + @ColorRes colorCode: Int, + strokeWidth: Float = 1F, + radius: Float = 999F, + context: Context = HaloApp.getInstance() + ): Drawable { val drawable = GradientDrawable() - drawable.setStroke(strokeWidth.dip2px(), ContextCompat.getColor(HaloApp.getInstance().application, colorCode)) + drawable.setStroke( + strokeWidth.dip2px(), + ContextCompat.getColor(context, colorCode) + ) drawable.cornerRadius = radius return drawable } @@ -76,7 +110,7 @@ object DrawableView { @JvmStatic fun setTextDrawable(textView: TextView, @DrawableRes drawableId: Int?, text: String? = null) { val drawable = if (drawableId != null) { - ContextCompat.getDrawable(HaloApp.getInstance().application, drawableId) + ContextCompat.getDrawable(HaloApp.getInstance(), drawableId) } else { null } @@ -89,30 +123,60 @@ object DrawableView { @JvmStatic fun getGradientDrawable(width: Int, startColor: Int, endColor: Int): Drawable { val drawable = ShapeDrawable(RectShape()) - drawable.paint.shader = LinearGradient(0f, 0F, width.toFloat(), 0F, startColor, endColor, Shader.TileMode.REPEAT) + drawable.paint.shader = LinearGradient( + 0f, + 0F, + width.toFloat(), + 0F, + startColor, + endColor, + Shader.TileMode.REPEAT + ) return drawable } @JvmStatic - fun getCornerDrawable(color: Int, radiusLT: Float, radiusRT: Float, radiusRB: Float, radiusLB: Float):Drawable{ + fun getCornerDrawable( + color: Int, + radiusLT: Float, + radiusRT: Float, + radiusRB: Float, + radiusLB: Float + ): Drawable { val drawable = GradientDrawable() drawable.shape = GradientDrawable.RECTANGLE drawable.setColor(color) - val radiusEach = floatArrayOf(radiusLT.dip2px().toFloat(), radiusLT.dip2px().toFloat(), radiusRT.dip2px().toFloat(), radiusRT.dip2px().toFloat(), - radiusRB.dip2px().toFloat(), radiusRB.dip2px().toFloat(), radiusLB.dip2px().toFloat(), radiusLB.dip2px().toFloat()) + val radiusEach = floatArrayOf( + radiusLT.dip2px().toFloat(), + radiusLT.dip2px().toFloat(), + radiusRT.dip2px().toFloat(), + radiusRT.dip2px().toFloat(), + radiusRB.dip2px().toFloat(), + radiusRB.dip2px().toFloat(), + radiusLB.dip2px().toFloat(), + radiusLB.dip2px().toFloat() + ) drawable.cornerRadii = radiusEach return drawable } @JvmStatic fun getCornerGradientDrawable(startColor: Int, endColor: Int, radius: Float = 999F): Drawable { - val drawable = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, intArrayOf(startColor, endColor)) + val drawable = GradientDrawable( + GradientDrawable.Orientation.LEFT_RIGHT, + intArrayOf(startColor, endColor) + ) drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat() return drawable } @JvmStatic - fun getGradientDrawable(startColor: Int, endColor: Int, orientation: GradientDrawable.Orientation = GradientDrawable.Orientation.LEFT_RIGHT, radius: Float = 999F): Drawable { + fun getGradientDrawable( + startColor: Int, + endColor: Int, + orientation: GradientDrawable.Orientation = GradientDrawable.Orientation.LEFT_RIGHT, + radius: Float = 999F + ): Drawable { val drawable = GradientDrawable(orientation, intArrayOf(startColor, endColor)) drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat() return drawable diff --git a/app/src/main/java/com/gh/common/view/DumbRefreshLayout.java b/module_common/src/main/java/com/gh/gamecenter/common/view/DumbRefreshLayout.java similarity index 94% rename from app/src/main/java/com/gh/common/view/DumbRefreshLayout.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/DumbRefreshLayout.java index cbcb5d8cc3..00a5cca5b5 100644 --- a/app/src/main/java/com/gh/common/view/DumbRefreshLayout.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/DumbRefreshLayout.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.util.AttributeSet; diff --git a/app/src/main/java/com/gh/common/view/EllipsizeTextView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/EllipsizeTextView.kt similarity index 95% rename from app/src/main/java/com/gh/common/view/EllipsizeTextView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/EllipsizeTextView.kt index be5a84975a..0154dd1852 100644 --- a/app/src/main/java/com/gh/common/view/EllipsizeTextView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/EllipsizeTextView.kt @@ -1,10 +1,8 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.annotation.SuppressLint import android.content.Context -import android.text.SpannableString import android.text.SpannableStringBuilder -import android.text.TextUtils import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView diff --git a/app/src/main/java/com/gh/common/view/EmptyDrawable.java b/module_common/src/main/java/com/gh/gamecenter/common/view/EmptyDrawable.java similarity index 96% rename from app/src/main/java/com/gh/common/view/EmptyDrawable.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/EmptyDrawable.java index 22171c0848..f5d690acae 100644 --- a/app/src/main/java/com/gh/common/view/EmptyDrawable.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/EmptyDrawable.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.annotation.SuppressLint; import android.graphics.Canvas; diff --git a/app/src/main/java/com/gh/common/view/ExpandAndCloseTextView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/ExpandAndCloseTextView.java similarity index 99% rename from app/src/main/java/com/gh/common/view/ExpandAndCloseTextView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/ExpandAndCloseTextView.java index 69afeb6cad..4213884092 100644 --- a/app/src/main/java/com/gh/common/view/ExpandAndCloseTextView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/ExpandAndCloseTextView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.Paint; @@ -22,7 +22,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatTextView; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; import java.lang.reflect.Field; diff --git a/app/src/main/java/com/gh/common/view/ExpandTextView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/ExpandTextView.java similarity index 99% rename from app/src/main/java/com/gh/common/view/ExpandTextView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/ExpandTextView.java index 696c3bc23a..4150652cbc 100644 --- a/app/src/main/java/com/gh/common/view/ExpandTextView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/ExpandTextView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; @@ -18,7 +18,8 @@ import androidx.annotation.NonNull; import androidx.appcompat.widget.AppCompatTextView; import androidx.core.content.ContextCompat; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; + public class ExpandTextView extends AppCompatTextView { diff --git a/app/src/main/java/com/gh/common/view/FixAppBarLayoutBehavior.java b/module_common/src/main/java/com/gh/gamecenter/common/view/FixAppBarLayoutBehavior.java similarity index 97% rename from app/src/main/java/com/gh/common/view/FixAppBarLayoutBehavior.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/FixAppBarLayoutBehavior.java index d92bd4034f..66b09a1ce5 100644 --- a/app/src/main/java/com/gh/common/view/FixAppBarLayoutBehavior.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/FixAppBarLayoutBehavior.java @@ -1,12 +1,14 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; -import com.google.android.material.appbar.AppBarLayout; -import androidx.coordinatorlayout.widget.CoordinatorLayout; -import androidx.core.view.ViewCompat; import android.util.AttributeSet; import android.view.View; +import androidx.coordinatorlayout.widget.CoordinatorLayout; +import androidx.core.view.ViewCompat; + +import com.google.android.material.appbar.AppBarLayout; + /** * Workaround AppBarLayout.Behavior for https://issuetracker.google.com/66996774 * diff --git a/app/src/main/java/com/gh/common/view/FixGridLayoutManager.java b/module_common/src/main/java/com/gh/gamecenter/common/view/FixGridLayoutManager.java similarity index 91% rename from app/src/main/java/com/gh/common/view/FixGridLayoutManager.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/FixGridLayoutManager.java index 6d7e4ccf3f..c51fc20d3e 100644 --- a/app/src/main/java/com/gh/common/view/FixGridLayoutManager.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/FixGridLayoutManager.java @@ -1,10 +1,9 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.util.AttributeSet; import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; public class FixGridLayoutManager extends GridLayoutManager { diff --git a/app/src/main/java/com/gh/common/view/FixLinearLayoutManager.java b/module_common/src/main/java/com/gh/gamecenter/common/view/FixLinearLayoutManager.java similarity index 96% rename from app/src/main/java/com/gh/common/view/FixLinearLayoutManager.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/FixLinearLayoutManager.java index 672d8fb63b..03386c9b99 100644 --- a/app/src/main/java/com/gh/common/view/FixLinearLayoutManager.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/FixLinearLayoutManager.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.util.AttributeSet; diff --git a/app/src/main/java/com/gh/common/view/FixedHorizontalScrollView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/FixedHorizontalScrollView.kt similarity index 95% rename from app/src/main/java/com/gh/common/view/FixedHorizontalScrollView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/FixedHorizontalScrollView.kt index 01a7a810cf..c08d817295 100644 --- a/app/src/main/java/com/gh/common/view/FixedHorizontalScrollView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/FixedHorizontalScrollView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/FixedScrollView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/FixedScrollView.kt similarity index 95% rename from app/src/main/java/com/gh/common/view/FixedScrollView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/FixedScrollView.kt index 68dd50a299..d44e4a00eb 100644 --- a/app/src/main/java/com/gh/common/view/FixedScrollView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/FixedScrollView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/FixedSpeedScroller.java b/module_common/src/main/java/com/gh/gamecenter/common/view/FixedSpeedScroller.java similarity index 96% rename from app/src/main/java/com/gh/common/view/FixedSpeedScroller.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/FixedSpeedScroller.java index bdf5f3fec4..41ec679074 100644 --- a/app/src/main/java/com/gh/common/view/FixedSpeedScroller.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/FixedSpeedScroller.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.view.animation.Interpolator; diff --git a/app/src/main/java/com/gh/common/view/GameTagContainerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/GameTagContainerView.kt similarity index 92% rename from app/src/main/java/com/gh/common/view/GameTagContainerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/GameTagContainerView.kt index 0bfdaeccdd..bc8e320ddc 100644 --- a/app/src/main/java/com/gh/common/view/GameTagContainerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/GameTagContainerView.kt @@ -1,9 +1,9 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet import android.widget.LinearLayout -import com.gh.common.util.tryCatchInRelease +import com.gh.gamecenter.common.utils.tryCatchInRelease /** * 游戏列表标签的容器(特定功能的View) diff --git a/app/src/main/java/com/gh/common/view/Gh_RelativeLayout.java b/module_common/src/main/java/com/gh/gamecenter/common/view/Gh_RelativeLayout.java similarity index 97% rename from app/src/main/java/com/gh/common/view/Gh_RelativeLayout.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/Gh_RelativeLayout.java index 732000814b..8c0aef4ff8 100644 --- a/app/src/main/java/com/gh/common/view/Gh_RelativeLayout.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/Gh_RelativeLayout.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.util.AttributeSet; diff --git a/app/src/main/java/com/gh/common/view/GradientAlphaTextSpan.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/GradientAlphaTextSpan.kt similarity index 96% rename from app/src/main/java/com/gh/common/view/GradientAlphaTextSpan.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/GradientAlphaTextSpan.kt index 4cb945963d..c4f2585eda 100644 --- a/app/src/main/java/com/gh/common/view/GradientAlphaTextSpan.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/GradientAlphaTextSpan.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.graphics.* import android.text.style.ReplacementSpan diff --git a/app/src/main/java/com/gh/common/view/GradientRoundBackgroundColorSpan.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/GradientRoundBackgroundColorSpan.kt similarity index 87% rename from app/src/main/java/com/gh/common/view/GradientRoundBackgroundColorSpan.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/GradientRoundBackgroundColorSpan.kt index c2cb78853a..5012e2c403 100644 --- a/app/src/main/java/com/gh/common/view/GradientRoundBackgroundColorSpan.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/GradientRoundBackgroundColorSpan.kt @@ -1,10 +1,10 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.graphics.* import android.text.style.ReplacementSpan import androidx.annotation.Dimension -import com.gh.common.util.DisplayUtils -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.core.utils.DisplayUtils class GradientRoundBackgroundColorSpan(private val startColor: String, @@ -30,7 +30,7 @@ class GradientRoundBackgroundColorSpan(private val startColor: String, val originalTextWidth = paint.measureText(text, start, end).toInt() // 当目标字体大小与原字体大小不一样时,需要先用目标字体大小测量字体宽度 if (textSize != 0) { - paint.textSize = DisplayUtils.sp2px(HaloApp.getInstance().application, textSize.toFloat()).toFloat() + paint.textSize = DisplayUtils.sp2px(HaloApp.getInstance(), textSize.toFloat()).toFloat() } // 目标文字宽度 val textWidth = paint.measureText(text, start, end).toInt() @@ -46,8 +46,8 @@ class GradientRoundBackgroundColorSpan(private val startColor: String, top.toFloat(), x + originalTextWidth, top + fontMetrics.bottom - fontMetrics.top), - DisplayUtils.dip2px(HaloApp.getInstance().application, 5f).toFloat(), - DisplayUtils.dip2px(HaloApp.getInstance().application, 5f).toFloat(), + DisplayUtils.dip2px(HaloApp.getInstance(), 5f).toFloat(), + DisplayUtils.dip2px(HaloApp.getInstance(), 5f).toFloat(), paint) //重置paint @@ -58,7 +58,7 @@ class GradientRoundBackgroundColorSpan(private val startColor: String, // 用目标字体大小画字 if (textSize != 0) { - paint.textSize = DisplayUtils.sp2px(HaloApp.getInstance().application, textSize.toFloat()).toFloat() + paint.textSize = DisplayUtils.sp2px(HaloApp.getInstance(), textSize.toFloat()).toFloat() } val offsetX = (originalTextWidth - textWidth) / 2 canvas.drawText(text, start, end, x + offsetX, y.toFloat(), paint) diff --git a/app/src/main/java/com/gh/common/view/GridDivider.java b/module_common/src/main/java/com/gh/gamecenter/common/view/GridDivider.java similarity index 99% rename from app/src/main/java/com/gh/common/view/GridDivider.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/GridDivider.java index a8e38f41cd..4fb873a9da 100644 --- a/app/src/main/java/com/gh/common/view/GridDivider.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/GridDivider.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; diff --git a/app/src/main/java/com/gh/common/view/GridSpacingItemColorDecoration.java b/module_common/src/main/java/com/gh/gamecenter/common/view/GridSpacingItemColorDecoration.java similarity index 99% rename from app/src/main/java/com/gh/common/view/GridSpacingItemColorDecoration.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/GridSpacingItemColorDecoration.java index fab435d51a..4adf5d6ec2 100644 --- a/app/src/main/java/com/gh/common/view/GridSpacingItemColorDecoration.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/GridSpacingItemColorDecoration.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.Canvas; diff --git a/app/src/main/java/com/gh/common/view/GridSpacingItemDecoration.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/GridSpacingItemDecoration.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/GridSpacingItemDecoration.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/GridSpacingItemDecoration.kt index 5348b7edc2..943cf1133d 100644 --- a/app/src/main/java/com/gh/common/view/GridSpacingItemDecoration.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/GridSpacingItemDecoration.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.graphics.Rect import android.view.View diff --git a/app/src/main/java/com/gh/common/view/HighlightableTextView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/HighlightableTextView.kt similarity index 76% rename from app/src/main/java/com/gh/common/view/HighlightableTextView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/HighlightableTextView.kt index d008f9e6d6..40bfc02dc7 100644 --- a/app/src/main/java/com/gh/common/view/HighlightableTextView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/HighlightableTextView.kt @@ -1,14 +1,14 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.ClipboardManager import android.content.Context import android.graphics.Color import android.util.AttributeSet import android.widget.TextView -import com.gh.common.util.SimpleCallback -import com.gh.common.util.TextHelper -import com.gh.gamecenter.R -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.callback.SimpleCallback +import com.gh.gamecenter.common.utils.TextHelper import com.lightgame.utils.Utils /** @@ -21,9 +21,10 @@ class HighlightableTextView @JvmOverloads constructor(context: Context, attrs: A } override fun setText(text: CharSequence?, type: BufferType?) { - super.setText(TextHelper.getHighlightedSpannableStringThatIsWrappedInsideWrapper(context, text.toString(), "###", R.color.theme_font, object : SimpleCallback { + super.setText(TextHelper.getHighlightedSpannableStringThatIsWrappedInsideWrapper(context, text.toString(), "###", R.color.theme_font, object : + SimpleCallback { override fun onCallback(arg: String) { - val application = HaloApp.getInstance().application + val application = HaloApp.getInstance() val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager cmb.text = arg Utils.toast(application, "已复制:$arg") diff --git a/app/src/main/java/com/gh/common/view/HorizontalItemDecoration.java b/module_common/src/main/java/com/gh/gamecenter/common/view/HorizontalItemDecoration.java similarity index 95% rename from app/src/main/java/com/gh/common/view/HorizontalItemDecoration.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/HorizontalItemDecoration.java index 157551b553..3ce7478c2a 100644 --- a/app/src/main/java/com/gh/common/view/HorizontalItemDecoration.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/HorizontalItemDecoration.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.Color; @@ -8,7 +8,7 @@ import android.view.View; import androidx.recyclerview.widget.RecyclerView; -import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.core.utils.DisplayUtils; public class HorizontalItemDecoration extends RecyclerView.ItemDecoration { diff --git a/app/src/main/java/com/gh/common/view/InterceptRecyclerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/InterceptRecyclerView.kt similarity index 97% rename from app/src/main/java/com/gh/common/view/InterceptRecyclerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/InterceptRecyclerView.kt index e09b4d8653..f354b59798 100644 --- a/app/src/main/java/com/gh/common/view/InterceptRecyclerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/InterceptRecyclerView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/LikeView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/LikeView.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/LikeView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/LikeView.kt index a0d91147bd..179db024a1 100644 --- a/app/src/main/java/com/gh/common/view/LikeView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/LikeView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.animation.* import android.content.Context @@ -9,7 +9,7 @@ import android.view.animation.LinearInterpolator import android.widget.ImageView import android.widget.RelativeLayout import androidx.core.content.ContextCompat -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R import java.util.* class LikeView : RelativeLayout { diff --git a/app/src/main/java/com/gh/common/view/LimitHeightLinearLayout.java b/module_common/src/main/java/com/gh/gamecenter/common/view/LimitHeightLinearLayout.java similarity index 93% rename from app/src/main/java/com/gh/common/view/LimitHeightLinearLayout.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/LimitHeightLinearLayout.java index 062da45d0a..c0aad2dcb8 100644 --- a/app/src/main/java/com/gh/common/view/LimitHeightLinearLayout.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/LimitHeightLinearLayout.java @@ -1,12 +1,12 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.widget.LinearLayout; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.core.utils.DisplayUtils; /** * Created by khy on 2/04/18. diff --git a/app/src/main/java/com/gh/common/view/LimitHeightScrollView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/LimitHeightScrollView.java similarity index 93% rename from app/src/main/java/com/gh/common/view/LimitHeightScrollView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/LimitHeightScrollView.java index b39d9629d9..b234b6535e 100644 --- a/app/src/main/java/com/gh/common/view/LimitHeightScrollView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/LimitHeightScrollView.java @@ -1,12 +1,12 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.widget.ScrollView; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.core.utils.DisplayUtils; /** * Created by khy on 2/04/18. diff --git a/app/src/main/java/com/gh/common/view/LongPressView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/LongPressView.java similarity index 97% rename from app/src/main/java/com/gh/common/view/LongPressView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/LongPressView.java index 4cf9ca7843..db7afda6ed 100644 --- a/app/src/main/java/com/gh/common/view/LongPressView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/LongPressView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; @@ -7,10 +7,10 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; -import com.gh.gamecenter.R; - import androidx.annotation.Nullable; +import com.gh.gamecenter.common.R; + public class LongPressView extends View { private int mLastMotionX, mLastMotionY; // 是否移动了 diff --git a/app/src/main/java/com/gh/common/view/LongScrollbarWebView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/LongScrollbarWebView.kt similarity index 90% rename from app/src/main/java/com/gh/common/view/LongScrollbarWebView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/LongScrollbarWebView.kt index 6593b4feb6..592dfc344e 100644 --- a/app/src/main/java/com/gh/common/view/LongScrollbarWebView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/LongScrollbarWebView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/MarqueeView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/MarqueeView.java similarity index 97% rename from app/src/main/java/com/gh/common/view/MarqueeView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/MarqueeView.java index 399a8447c8..91ed6b32e7 100644 --- a/app/src/main/java/com/gh/common/view/MarqueeView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/MarqueeView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; @@ -12,8 +12,8 @@ import android.view.animation.AnimationUtils; import android.widget.TextView; import android.widget.ViewFlipper; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.core.utils.DisplayUtils; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/common/view/MaterializedFrameLayout.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/MaterializedFrameLayout.kt similarity index 95% rename from app/src/main/java/com/gh/common/view/MaterializedFrameLayout.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/MaterializedFrameLayout.kt index 432ee061b4..e203852ba9 100644 --- a/app/src/main/java/com/gh/common/view/MaterializedFrameLayout.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/MaterializedFrameLayout.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.os.Build diff --git a/app/src/main/java/com/gh/common/view/MaterializedRelativeLayout.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/MaterializedRelativeLayout.kt similarity index 96% rename from app/src/main/java/com/gh/common/view/MaterializedRelativeLayout.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/MaterializedRelativeLayout.kt index f43b069849..67a014319b 100644 --- a/app/src/main/java/com/gh/common/view/MaterializedRelativeLayout.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/MaterializedRelativeLayout.kt @@ -1,10 +1,10 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.os.Build import android.util.AttributeSet import android.widget.RelativeLayout -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R class MaterializedRelativeLayout : RelativeLayout { diff --git a/app/src/main/java/com/gh/common/view/MaxHeightNestedScrollView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightNestedScrollView.kt similarity index 94% rename from app/src/main/java/com/gh/common/view/MaxHeightNestedScrollView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightNestedScrollView.kt index 0942f8b87c..83dcd5330e 100644 --- a/app/src/main/java/com/gh/common/view/MaxHeightNestedScrollView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightNestedScrollView.kt @@ -1,9 +1,9 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet import androidx.core.widget.NestedScrollView -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R class MaxHeightNestedScrollView(context: Context, attrs: AttributeSet? = null) : NestedScrollView(context, attrs) { diff --git a/app/src/main/java/com/gh/common/view/MaxHeightRecyclerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightRecyclerView.kt similarity index 92% rename from app/src/main/java/com/gh/common/view/MaxHeightRecyclerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightRecyclerView.kt index cc94035b24..ca810e1647 100644 --- a/app/src/main/java/com/gh/common/view/MaxHeightRecyclerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightRecyclerView.kt @@ -1,13 +1,12 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context -import android.content.res.TypedArray import android.util.AttributeSet import android.view.View import androidx.recyclerview.widget.RecyclerView +import com.gh.gamecenter.common.R -import com.gh.gamecenter.R class MaxHeightRecyclerView : RecyclerView { private var mMaxHeight: Int = 0 diff --git a/app/src/main/java/com/gh/common/view/MessageSpannableTextView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/MessageSpannableTextView.java similarity index 98% rename from app/src/main/java/com/gh/common/view/MessageSpannableTextView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/MessageSpannableTextView.java index 60fd3768f0..1fadc1eb33 100644 --- a/app/src/main/java/com/gh/common/view/MessageSpannableTextView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/MessageSpannableTextView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.text.SpannableStringBuilder; @@ -11,7 +11,7 @@ import android.view.View; import androidx.appcompat.widget.AppCompatTextView; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/gh/common/view/NavigationBarView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/NavigationBarView.kt similarity index 88% rename from app/src/main/java/com/gh/common/view/NavigationBarView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/NavigationBarView.kt index 31667cb988..cc9caea99b 100644 --- a/app/src/main/java/com/gh/common/view/NavigationBarView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/NavigationBarView.kt @@ -1,10 +1,10 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.os.Build import android.util.AttributeSet import android.view.View -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.core.utils.DisplayUtils /** * 导航栏占位 View diff --git a/app/src/main/java/com/gh/common/view/NestedRecyclerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/NestedRecyclerView.kt similarity index 96% rename from app/src/main/java/com/gh/common/view/NestedRecyclerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/NestedRecyclerView.kt index 2bdded884b..88364d1dc3 100644 --- a/app/src/main/java/com/gh/common/view/NestedRecyclerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/NestedRecyclerView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.os.Build @@ -8,7 +8,7 @@ import android.util.AttributeSet import android.view.MotionEvent import android.view.View -open class NestedRecyclerView : androidx.recyclerview.widget.RecyclerView, NestedScrollingParent { +open class NestedRecyclerView : RecyclerView, NestedScrollingParent { private var nestedScrollTarget: View? = null private var nestedScrollTargetIsBeingDragged = false diff --git a/app/src/main/java/com/gh/common/view/NestedScrollWebView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/NestedScrollWebView.java similarity index 98% rename from app/src/main/java/com/gh/common/view/NestedScrollWebView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/NestedScrollWebView.java index 5725ff27d4..e7ee02bed7 100644 --- a/app/src/main/java/com/gh/common/view/NestedScrollWebView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/NestedScrollWebView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.util.AttributeSet; @@ -9,7 +9,7 @@ import androidx.core.view.NestedScrollingChild; import androidx.core.view.NestedScrollingChildHelper; import androidx.core.view.ViewCompat; -import com.gh.common.view.dsbridge.DWebView; +import com.gh.gamecenter.common.view.dsbridge.DWebView; public class NestedScrollWebView extends DWebView implements NestedScrollingChild { diff --git a/app/src/main/java/com/gh/common/view/NestedScrollWebView2.java b/module_common/src/main/java/com/gh/gamecenter/common/view/NestedScrollWebView2.java similarity index 99% rename from app/src/main/java/com/gh/common/view/NestedScrollWebView2.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/NestedScrollWebView2.java index 699754cd26..ae540f1585 100644 --- a/app/src/main/java/com/gh/common/view/NestedScrollWebView2.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/NestedScrollWebView2.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.os.Bundle; @@ -17,8 +17,6 @@ import android.webkit.WebView; import android.widget.OverScroller; import android.widget.ScrollView; -import com.gh.common.view.dsbridge.DWebView; - import androidx.core.view.AccessibilityDelegateCompat; import androidx.core.view.InputDeviceCompat; import androidx.core.view.NestedScrollingChild2; @@ -30,6 +28,8 @@ import androidx.core.view.ViewCompat; import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; import androidx.core.view.accessibility.AccessibilityRecordCompat; +import com.gh.gamecenter.common.view.dsbridge.DWebView; + /** * 注意:父view中有实现了{@link NestedScrollingParent2}才会有嵌套滑动功能 * diff --git a/app/src/main/java/com/gh/common/view/NoDefaultMinWidthTabLayout.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/NoDefaultMinWidthTabLayout.kt similarity index 97% rename from app/src/main/java/com/gh/common/view/NoDefaultMinWidthTabLayout.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/NoDefaultMinWidthTabLayout.kt index 77f6f3c0bb..1c5b593fc0 100644 --- a/app/src/main/java/com/gh/common/view/NoDefaultMinWidthTabLayout.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/NoDefaultMinWidthTabLayout.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/NoScrollFocusScrollView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/NoScrollFocusScrollView.java similarity index 94% rename from app/src/main/java/com/gh/common/view/NoScrollFocusScrollView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/NoScrollFocusScrollView.java index 98018e1827..6c1627b056 100644 --- a/app/src/main/java/com/gh/common/view/NoScrollFocusScrollView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/NoScrollFocusScrollView.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.graphics.Rect; diff --git a/app/src/main/java/com/gh/common/view/OffsetLinearLayoutManager.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/OffsetLinearLayoutManager.kt similarity index 87% rename from app/src/main/java/com/gh/common/view/OffsetLinearLayoutManager.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/OffsetLinearLayoutManager.kt index 7788823c80..987412d89f 100644 --- a/app/src/main/java/com/gh/common/view/OffsetLinearLayoutManager.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/OffsetLinearLayoutManager.kt @@ -1,11 +1,7 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context -import androidx.core.view.marginTop -import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.dip2px -import java.util.* /** * 重写computeVerticalScrollOffset,精确计算RecyclerView滑动距离 diff --git a/app/src/main/java/com/gh/common/view/RadiusCardView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/RadiusCardView.kt similarity index 94% rename from app/src/main/java/com/gh/common/view/RadiusCardView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/RadiusCardView.kt index bda6ba1b0b..9424df42a5 100644 --- a/app/src/main/java/com/gh/common/view/RadiusCardView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/RadiusCardView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.annotation.SuppressLint import android.content.Context @@ -6,8 +6,8 @@ import android.graphics.* import android.graphics.drawable.ColorDrawable import android.util.AttributeSet import androidx.cardview.widget.CardView -import com.gh.common.util.dip2px -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.utils.dip2px class RadiusCardView : CardView { var topLeftRadius = 0f diff --git a/app/src/main/java/com/gh/common/view/RecyclerViewExtended.java b/module_common/src/main/java/com/gh/gamecenter/common/view/RecyclerViewExtended.java similarity index 96% rename from app/src/main/java/com/gh/common/view/RecyclerViewExtended.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/RecyclerViewExtended.java index 183e195454..2c4eadc02d 100644 --- a/app/src/main/java/com/gh/common/view/RecyclerViewExtended.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/RecyclerViewExtended.java @@ -1,11 +1,12 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; -import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by LGT on 2016/10/11. */ diff --git a/app/src/main/java/com/gh/common/view/RoundStrokeBackgroundColorSpan.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/RoundStrokeBackgroundColorSpan.kt similarity index 88% rename from app/src/main/java/com/gh/common/view/RoundStrokeBackgroundColorSpan.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/RoundStrokeBackgroundColorSpan.kt index e6094005e1..0c6f6fd0ce 100644 --- a/app/src/main/java/com/gh/common/view/RoundStrokeBackgroundColorSpan.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/RoundStrokeBackgroundColorSpan.kt @@ -1,12 +1,12 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.graphics.Canvas import android.graphics.Paint import android.graphics.RectF import android.text.style.ReplacementSpan import androidx.annotation.Dimension -import com.gh.common.util.DisplayUtils -import com.halo.assistant.HaloApp +import com.gh.gamecenter.common.HaloApp +import com.gh.gamecenter.core.utils.DisplayUtils class RoundStrokeBackgroundColorSpan(private val strokeColor: Int, private val textColor: Int, @@ -47,8 +47,8 @@ class RoundStrokeBackgroundColorSpan(private val strokeColor: Int, top.toFloat() + halfStrokeWidth, x + textWidth + halfStrokeWidth, top + fontMetrics.bottom - fontMetrics.top), - DisplayUtils.dip2px(HaloApp.getInstance().application, 3f).toFloat(), - DisplayUtils.dip2px(HaloApp.getInstance().application, 3f).toFloat(), + DisplayUtils.dip2px(HaloApp.getInstance(), 3f).toFloat(), + DisplayUtils.dip2px(HaloApp.getInstance(), 3f).toFloat(), paint) paint.color = this.textColor diff --git a/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java b/module_common/src/main/java/com/gh/gamecenter/common/view/ScaleAutoScrollViewPager.java similarity index 79% rename from app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/ScaleAutoScrollViewPager.java index bf7d53ec65..da45a82335 100644 --- a/app/src/main/java/com/gh/common/view/ScaleAutoScrollViewPager.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/ScaleAutoScrollViewPager.java @@ -1,11 +1,14 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; +import android.view.View; + +import com.gh.gamecenter.common.view.autoscrollviewpager.AutoScrollViewPager; + +import com.gh.gamecenter.common.R; -import com.gh.common.view.autoscrollviewpager.AutoScrollViewPager; -import com.gh.gamecenter.R; /** * @author CsHeng @@ -36,8 +39,8 @@ public class ScaleAutoScrollViewPager extends AutoScrollViewPager { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); - int width = MeasureSpec.getSize(widthMeasureSpec); - int height = MeasureSpec.getSize(heightMeasureSpec); + int width = View.MeasureSpec.getSize(widthMeasureSpec); + int height = View.MeasureSpec.getSize(heightMeasureSpec); if (mMeasureByHeight) { setMeasuredDimension((int) (height * mScale), height); } else { diff --git a/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/ScaleSimpleDraweeView.java similarity index 96% rename from app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/ScaleSimpleDraweeView.java index 569dfd766f..8e0612f54f 100644 --- a/app/src/main/java/com/gh/common/view/ScaleSimpleDraweeView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/ScaleSimpleDraweeView.java @@ -1,11 +1,11 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import com.facebook.drawee.view.SimpleDraweeView; -import com.gh.gamecenter.R; +import com.gh.gamecenter.common.R; /** * @author CsHeng diff --git a/app/src/main/java/com/gh/common/view/ScrimAwareCollapsingToolbarLayout.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/ScrimAwareCollapsingToolbarLayout.kt similarity index 92% rename from app/src/main/java/com/gh/common/view/ScrimAwareCollapsingToolbarLayout.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/ScrimAwareCollapsingToolbarLayout.kt index 7a0f0c5c60..4e6fcdbd89 100644 --- a/app/src/main/java/com/gh/common/view/ScrimAwareCollapsingToolbarLayout.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/ScrimAwareCollapsingToolbarLayout.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/ScrollEventListener.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/ScrollEventListener.kt similarity index 99% rename from app/src/main/java/com/gh/common/view/ScrollEventListener.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/ScrollEventListener.kt index d1098bff63..ce5c7ebf32 100644 --- a/app/src/main/java/com/gh/common/view/ScrollEventListener.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/ScrollEventListener.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/gh/common/view/SegmentedFilterView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/SegmentedFilterView.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/SegmentedFilterView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/SegmentedFilterView.kt index 650ef89a15..77f23d3db0 100644 --- a/app/src/main/java/com/gh/common/view/SegmentedFilterView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/SegmentedFilterView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.animation.ValueAnimator import android.content.Context @@ -13,8 +13,8 @@ import android.widget.LinearLayout import android.widget.RadioButton import android.widget.RadioGroup import androidx.core.content.ContextCompat -import com.gh.common.util.dip2px -import com.gh.gamecenter.R +import com.gh.gamecenter.common.R +import com.gh.gamecenter.common.utils.dip2px import splitties.views.dsl.core.add class SegmentedFilterView : FrameLayout { diff --git a/app/src/main/java/com/gh/common/view/SpacingItemDecoration.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/SpacingItemDecoration.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/SpacingItemDecoration.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/SpacingItemDecoration.kt index 52d4dcec3c..337de0cac6 100644 --- a/app/src/main/java/com/gh/common/view/SpacingItemDecoration.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/SpacingItemDecoration.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.graphics.Rect import android.view.View diff --git a/app/src/main/java/com/gh/common/view/StackRecyclerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/StackRecyclerView.kt similarity index 96% rename from app/src/main/java/com/gh/common/view/StackRecyclerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/StackRecyclerView.kt index 044dd53f75..9d150f0205 100644 --- a/app/src/main/java/com/gh/common/view/StackRecyclerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/StackRecyclerView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/StatusBarView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/StatusBarView.kt similarity index 76% rename from app/src/main/java/com/gh/common/view/StatusBarView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/StatusBarView.kt index d7178305ef..0483b277b9 100644 --- a/app/src/main/java/com/gh/common/view/StatusBarView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/StatusBarView.kt @@ -1,10 +1,10 @@ -package com.gh.common.view +package com.gh.gamecenter.common.view import android.content.Context import android.os.Build import android.util.AttributeSet import android.view.View -import com.gh.common.util.DisplayUtils +import com.gh.gamecenter.core.utils.DisplayUtils class StatusBarView @JvmOverloads constructor(context: Context?, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : View(context, attrs, defStyleAttr) { override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { @@ -13,6 +13,6 @@ class StatusBarView @JvmOverloads constructor(context: Context?, attrs: Attribut } else { DisplayUtils.getStatusBarHeight(resources) } - setMeasuredDimension(View.MeasureSpec.getSize(widthMeasureSpec), height) + setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), height) } } diff --git a/app/src/main/java/com/gh/common/view/SwipeLayout.java b/module_common/src/main/java/com/gh/gamecenter/common/view/SwipeLayout.java similarity index 99% rename from app/src/main/java/com/gh/common/view/SwipeLayout.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/SwipeLayout.java index ea2188b4ac..eee52b8944 100644 --- a/app/src/main/java/com/gh/common/view/SwipeLayout.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/SwipeLayout.java @@ -1,13 +1,9 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Rect; import android.os.Handler; -import androidx.annotation.Nullable; -import androidx.core.view.GravityCompat; -import androidx.core.view.ViewCompat; -import androidx.customview.widget.ViewDragHelper; import android.util.AttributeSet; import android.view.GestureDetector; import android.view.Gravity; @@ -21,7 +17,12 @@ import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.FrameLayout; -import com.gh.gamecenter.R; +import androidx.annotation.Nullable; +import androidx.core.view.GravityCompat; +import androidx.core.view.ViewCompat; +import androidx.customview.widget.ViewDragHelper; + +import com.gh.gamecenter.common.R; import java.lang.reflect.Method; import java.util.ArrayList; diff --git a/app/src/main/java/com/gh/common/view/SwipeRefreshHeader.java b/module_common/src/main/java/com/gh/gamecenter/common/view/SwipeRefreshHeader.java similarity index 96% rename from app/src/main/java/com/gh/common/view/SwipeRefreshHeader.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/SwipeRefreshHeader.java index 5efa01e377..3ba1fdc25b 100644 --- a/app/src/main/java/com/gh/common/view/SwipeRefreshHeader.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/SwipeRefreshHeader.java @@ -1,4 +1,7 @@ -package com.gh.common.view; +package com.gh.gamecenter.common.view; + +import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; +import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import android.annotation.SuppressLint; import android.content.Context; @@ -13,7 +16,7 @@ import android.widget.TextView; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; -import com.scwang.smartrefresh.layout.R; +import com.gh.gamecenter.common.R; import com.scwang.smartrefresh.layout.api.RefreshHeader; import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.constant.RefreshState; @@ -22,9 +25,6 @@ import com.scwang.smartrefresh.layout.internal.ArrowDrawable; import com.scwang.smartrefresh.layout.internal.ProgressDrawable; import com.scwang.smartrefresh.layout.util.DensityUtil; -import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; -import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; - @SuppressLint("RestrictedApi") @SuppressWarnings({"unused", "UnusedReturnValue"}) public class SwipeRefreshHeader extends AbstractSwipeRefreshHeader implements RefreshHeader { @@ -55,7 +55,7 @@ public class SwipeRefreshHeader extends AbstractSwipeRefreshHeader diff --git a/app/src/main/java/com/gh/common/view/autoscrollviewpager/CustomDurationScroller.java b/module_common/src/main/java/com/gh/gamecenter/common/view/autoscrollviewpager/CustomDurationScroller.java similarity index 95% rename from app/src/main/java/com/gh/common/view/autoscrollviewpager/CustomDurationScroller.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/autoscrollviewpager/CustomDurationScroller.java index 74484cbda6..d4c45588c8 100644 --- a/app/src/main/java/com/gh/common/view/autoscrollviewpager/CustomDurationScroller.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/autoscrollviewpager/CustomDurationScroller.java @@ -1,4 +1,4 @@ -package com.gh.common.view.autoscrollviewpager; +package com.gh.gamecenter.common.view.autoscrollviewpager; import android.content.Context; import android.view.animation.Interpolator; diff --git a/app/src/main/java/com/gh/common/view/divider/FlexibleDividerDecoration.java b/module_common/src/main/java/com/gh/gamecenter/common/view/divider/FlexibleDividerDecoration.java similarity index 99% rename from app/src/main/java/com/gh/common/view/divider/FlexibleDividerDecoration.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/divider/FlexibleDividerDecoration.java index 728d79ee8c..98e227acb8 100644 --- a/app/src/main/java/com/gh/common/view/divider/FlexibleDividerDecoration.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/divider/FlexibleDividerDecoration.java @@ -1,4 +1,4 @@ -package com.gh.common.view.divider; +package com.gh.gamecenter.common.view.divider; import android.content.Context; import android.content.res.Resources; @@ -7,6 +7,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.view.View; + import androidx.annotation.ColorRes; import androidx.annotation.DimenRes; import androidx.annotation.DrawableRes; @@ -14,7 +16,6 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import android.view.View; public abstract class FlexibleDividerDecoration extends RecyclerView.ItemDecoration { diff --git a/app/src/main/java/com/gh/common/view/divider/HorizontalDividerItemDecoration.java b/module_common/src/main/java/com/gh/gamecenter/common/view/divider/HorizontalDividerItemDecoration.java similarity index 99% rename from app/src/main/java/com/gh/common/view/divider/HorizontalDividerItemDecoration.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/divider/HorizontalDividerItemDecoration.java index 7bd86cb255..5568d376da 100644 --- a/app/src/main/java/com/gh/common/view/divider/HorizontalDividerItemDecoration.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/divider/HorizontalDividerItemDecoration.java @@ -1,12 +1,13 @@ -package com.gh.common.view.divider; +package com.gh.gamecenter.common.view.divider; import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.view.View; + import androidx.annotation.DimenRes; import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; -import android.view.View; public class HorizontalDividerItemDecoration extends FlexibleDividerDecoration { diff --git a/app/src/main/java/com/gh/common/view/divider/VerticalDividerItemDecoration.java b/module_common/src/main/java/com/gh/gamecenter/common/view/divider/VerticalDividerItemDecoration.java similarity index 99% rename from app/src/main/java/com/gh/common/view/divider/VerticalDividerItemDecoration.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/divider/VerticalDividerItemDecoration.java index 3f4ab782e2..e2ef6ce757 100644 --- a/app/src/main/java/com/gh/common/view/divider/VerticalDividerItemDecoration.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/divider/VerticalDividerItemDecoration.java @@ -1,12 +1,13 @@ -package com.gh.common.view.divider; +package com.gh.gamecenter.common.view.divider; import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.view.View; + import androidx.annotation.DimenRes; import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; -import android.view.View; public class VerticalDividerItemDecoration extends FlexibleDividerDecoration { diff --git a/app/src/main/java/com/gh/common/view/dsbridge/CompletionHandler.java b/module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/CompletionHandler.java similarity index 77% rename from app/src/main/java/com/gh/common/view/dsbridge/CompletionHandler.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/CompletionHandler.java index 271be1d85a..5087c58d19 100644 --- a/app/src/main/java/com/gh/common/view/dsbridge/CompletionHandler.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/CompletionHandler.java @@ -1,4 +1,4 @@ -package com.gh.common.view.dsbridge; +package com.gh.gamecenter.common.view.dsbridge; /** * Created by du on 16/12/31. diff --git a/app/src/main/java/com/gh/common/view/dsbridge/DWebView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/DWebView.java similarity index 99% rename from app/src/main/java/com/gh/common/view/dsbridge/DWebView.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/DWebView.java index be552d1be3..f428afeff8 100644 --- a/app/src/main/java/com/gh/common/view/dsbridge/DWebView.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/DWebView.java @@ -1,11 +1,9 @@ -package com.gh.common.view.dsbridge; +package com.gh.gamecenter.common.view.dsbridge; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; -import android.app.Dialog; import android.content.Context; -import android.content.DialogInterface; import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; @@ -15,7 +13,6 @@ import android.os.Message; import android.util.AttributeSet; import android.util.Log; import android.view.Gravity; -import android.view.InflateException; import android.view.View; import android.view.ViewGroup; import android.webkit.ConsoleMessage; diff --git a/app/src/main/java/com/gh/common/view/dsbridge/OnReturnValue.java b/module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/OnReturnValue.java similarity index 69% rename from app/src/main/java/com/gh/common/view/dsbridge/OnReturnValue.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/OnReturnValue.java index 16e506a738..52656bc5e3 100644 --- a/app/src/main/java/com/gh/common/view/dsbridge/OnReturnValue.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/dsbridge/OnReturnValue.java @@ -1,4 +1,4 @@ -package com.gh.common.view.dsbridge; +package com.gh.gamecenter.common.view.dsbridge; /** * Created by du on 16/12/31. diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/BaseDrawable.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/BaseDrawable.java similarity index 98% rename from app/src/main/java/com/gh/common/view/materialratingbar/BaseDrawable.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/BaseDrawable.java index ad1cfe1ac5..8dc7ce2fc2 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/BaseDrawable.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/BaseDrawable.java @@ -3,7 +3,7 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar; +package com.gh.gamecenter.common.view.materialratingbar; import android.content.res.ColorStateList; import android.graphics.Canvas; diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/ClipDrawableCompat.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/ClipDrawableCompat.java similarity index 98% rename from app/src/main/java/com/gh/common/view/materialratingbar/ClipDrawableCompat.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/ClipDrawableCompat.java index ba4ca799a1..12ee3bacf8 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/ClipDrawableCompat.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/ClipDrawableCompat.java @@ -3,15 +3,16 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar; +package com.gh.gamecenter.common.view.materialratingbar; import android.content.res.ColorStateList; import android.graphics.PorterDuff; import android.graphics.drawable.ClipDrawable; import android.graphics.drawable.Drawable; +import android.util.Log; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import android.util.Log; class ClipDrawableCompat extends ClipDrawable implements TintableDrawable { diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/MaterialRatingBar.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/MaterialRatingBar.java similarity index 99% rename from app/src/main/java/com/gh/common/view/materialratingbar/MaterialRatingBar.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/MaterialRatingBar.java index 15b5b67704..9860506447 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/MaterialRatingBar.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/MaterialRatingBar.java @@ -3,7 +3,7 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar; +package com.gh.gamecenter.common.view.materialratingbar; import android.annotation.SuppressLint; import android.content.Context; @@ -17,12 +17,12 @@ import android.util.Log; import android.view.View; import android.widget.RatingBar; -import com.gh.common.view.materialratingbar.internal.DrawableCompat; -import com.gh.gamecenter.R; - import androidx.annotation.Nullable; import androidx.appcompat.widget.TintTypedArray; +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.view.materialratingbar.internal.DrawableCompat; + // AppCompatRatingBar will add undesired measuring behavior. @SuppressLint("AppCompatCustomView") diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/MaterialRatingDrawable.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/MaterialRatingDrawable.java similarity index 96% rename from app/src/main/java/com/gh/common/view/materialratingbar/MaterialRatingDrawable.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/MaterialRatingDrawable.java index d1165a9d99..c5bdc768b3 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/MaterialRatingDrawable.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/MaterialRatingDrawable.java @@ -3,7 +3,7 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar; +package com.gh.gamecenter.common.view.materialratingbar; import android.annotation.SuppressLint; import android.content.Context; @@ -11,11 +11,12 @@ import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; -import androidx.appcompat.content.res.AppCompatResources; import android.view.Gravity; -import com.gh.common.view.materialratingbar.internal.ThemeUtils; -import com.gh.gamecenter.R; +import androidx.appcompat.content.res.AppCompatResources; + +import com.gh.gamecenter.common.R; +import com.gh.gamecenter.common.view.materialratingbar.internal.ThemeUtils; public class MaterialRatingDrawable extends LayerDrawable { diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/TileDrawable.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/TileDrawable.java similarity index 97% rename from app/src/main/java/com/gh/common/view/materialratingbar/TileDrawable.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/TileDrawable.java index d98c77b2a7..86ac7727b1 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/TileDrawable.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/TileDrawable.java @@ -3,7 +3,7 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar; +package com.gh.gamecenter.common.view.materialratingbar; import android.graphics.Canvas; import android.graphics.ColorFilter; diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/TintableDrawable.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/TintableDrawable.java similarity index 97% rename from app/src/main/java/com/gh/common/view/materialratingbar/TintableDrawable.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/TintableDrawable.java index 4bef685944..8a48471f81 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/TintableDrawable.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/TintableDrawable.java @@ -3,7 +3,7 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar; +package com.gh.gamecenter.common.view.materialratingbar; import android.content.res.ColorStateList; import android.graphics.ColorFilter; diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/internal/DrawableCompat.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/internal/DrawableCompat.java similarity index 91% rename from app/src/main/java/com/gh/common/view/materialratingbar/internal/DrawableCompat.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/internal/DrawableCompat.java index bbc1f3a66b..1fc477cc69 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/internal/DrawableCompat.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/internal/DrawableCompat.java @@ -3,7 +3,7 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar.internal; +package com.gh.gamecenter.common.view.materialratingbar.internal; import android.graphics.PorterDuff; diff --git a/app/src/main/java/com/gh/common/view/materialratingbar/internal/ThemeUtils.java b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/internal/ThemeUtils.java similarity index 91% rename from app/src/main/java/com/gh/common/view/materialratingbar/internal/ThemeUtils.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/internal/ThemeUtils.java index 25a7770a2f..fc1fb01b6a 100644 --- a/app/src/main/java/com/gh/common/view/materialratingbar/internal/ThemeUtils.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/materialratingbar/internal/ThemeUtils.java @@ -3,7 +3,7 @@ * All Rights Reserved. */ -package com.gh.common.view.materialratingbar.internal; +package com.gh.gamecenter.common.view.materialratingbar.internal; import android.content.Context; import android.content.res.TypedArray; diff --git a/app/src/main/java/com/gh/common/view/stacklayoutmanager/StackAnimation.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackAnimation.kt similarity index 83% rename from app/src/main/java/com/gh/common/view/stacklayoutmanager/StackAnimation.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackAnimation.kt index 921b7ce8aa..c60bf46161 100644 --- a/app/src/main/java/com/gh/common/view/stacklayoutmanager/StackAnimation.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackAnimation.kt @@ -1,7 +1,7 @@ -package com.gh.common.view.stacklayoutmanager +package com.gh.gamecenter.common.view.stacklayoutmanager import android.view.View -import com.gh.common.view.stacklayoutmanager.StackLayoutManager.ScrollOrientation +import com.gh.gamecenter.common.view.stacklayoutmanager.StackLayoutManager.ScrollOrientation abstract class StackAnimation(scrollOrientation: ScrollOrientation, visibleCount: Int) { diff --git a/app/src/main/java/com/gh/common/view/stacklayoutmanager/StackLayout.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackLayout.kt similarity index 95% rename from app/src/main/java/com/gh/common/view/stacklayoutmanager/StackLayout.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackLayout.kt index a946350b12..cb363d09a9 100644 --- a/app/src/main/java/com/gh/common/view/stacklayoutmanager/StackLayout.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackLayout.kt @@ -1,4 +1,4 @@ -package com.gh.common.view.stacklayoutmanager +package com.gh.gamecenter.common.view.stacklayoutmanager import android.view.View diff --git a/app/src/main/java/com/gh/common/view/stacklayoutmanager/StackLayoutManager.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackLayoutManager.kt similarity index 98% rename from app/src/main/java/com/gh/common/view/stacklayoutmanager/StackLayoutManager.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackLayoutManager.kt index 181d49573a..4c3c102239 100644 --- a/app/src/main/java/com/gh/common/view/stacklayoutmanager/StackLayoutManager.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/stacklayoutmanager/StackLayoutManager.kt @@ -1,4 +1,4 @@ -package com.gh.common.view.stacklayoutmanager +package com.gh.gamecenter.common.view.stacklayoutmanager import android.view.View import android.view.ViewGroup @@ -308,17 +308,11 @@ class StackLayoutManager(scrollOrientation: ScrollOrientation, } override fun scrollToPosition(position: Int) { - if (position < 0 || position >= itemCount) { - throw ArrayIndexOutOfBoundsException("$position is out of bound [0..$itemCount-1]") - } mScrollOffset = getPositionOffset(position) requestLayout() } override fun smoothScrollToPosition(recyclerView: RecyclerView, state: State?, position: Int) { - if (position < 0 || position >= itemCount) { - throw ArrayIndexOutOfBoundsException("$position is out of bound [0..$itemCount-1]") - } mFixScrolling = true scrollToCenter(position, recyclerView, true) } diff --git a/app/src/main/java/com/gh/common/view/vertical_recycler/CustomRecyclerView.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/CustomRecyclerView.kt similarity index 91% rename from app/src/main/java/com/gh/common/view/vertical_recycler/CustomRecyclerView.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/CustomRecyclerView.kt index eddf7ae24e..47ff9aac46 100644 --- a/app/src/main/java/com/gh/common/view/vertical_recycler/CustomRecyclerView.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/CustomRecyclerView.kt @@ -1,4 +1,4 @@ -package com.gh.common.view.vertical_recycler +package com.gh.gamecenter.common.view.vertical_recycler import android.content.Context import android.util.AttributeSet diff --git a/app/src/main/java/com/gh/common/view/vertical_recycler/OnPagerListener.java b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/OnPagerListener.java similarity index 91% rename from app/src/main/java/com/gh/common/view/vertical_recycler/OnPagerListener.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/OnPagerListener.java index 93b882930b..dbb5148f6d 100644 --- a/app/src/main/java/com/gh/common/view/vertical_recycler/OnPagerListener.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/OnPagerListener.java @@ -1,4 +1,4 @@ -package com.gh.common.view.vertical_recycler; +package com.gh.gamecenter.common.view.vertical_recycler; public interface OnPagerListener { /** diff --git a/app/src/main/java/com/gh/common/view/vertical_recycler/PagerLayoutManager.java b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/PagerLayoutManager.java similarity index 99% rename from app/src/main/java/com/gh/common/view/vertical_recycler/PagerLayoutManager.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/PagerLayoutManager.java index c7b7b197b2..50de501ee4 100644 --- a/app/src/main/java/com/gh/common/view/vertical_recycler/PagerLayoutManager.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/PagerLayoutManager.java @@ -1,4 +1,4 @@ -package com.gh.common.view.vertical_recycler; +package com.gh.gamecenter.common.view.vertical_recycler; import android.content.Context; import android.view.Gravity; diff --git a/app/src/main/java/com/gh/common/view/vertical_recycler/ScrollPageHelper.java b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/ScrollPageHelper.java similarity index 95% rename from app/src/main/java/com/gh/common/view/vertical_recycler/ScrollPageHelper.java rename to module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/ScrollPageHelper.java index 5a0b8634bf..c99da1f74c 100644 --- a/app/src/main/java/com/gh/common/view/vertical_recycler/ScrollPageHelper.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/ScrollPageHelper.java @@ -1,11 +1,9 @@ -package com.gh.common.view.vertical_recycler; +package com.gh.gamecenter.common.view.vertical_recycler; import android.text.TextUtils; import android.view.Gravity; import android.view.View; -import java.util.Locale; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.GridLayoutManager; @@ -14,6 +12,8 @@ import androidx.recyclerview.widget.OrientationHelper; import androidx.recyclerview.widget.PagerSnapHelper; import androidx.recyclerview.widget.RecyclerView; +import java.util.Locale; + public class ScrollPageHelper extends PagerSnapHelper { private OrientationHelper mHorizontalHelper, mVerticalHelper; private int gravity; @@ -22,17 +22,19 @@ public class ScrollPageHelper extends PagerSnapHelper { /** * 构造方法 - * @param gravity 位置 - * @param enableSnapLast 最后一个是否按照位置对齐 + * + * @param gravity 位置 + * @param enableSnapLast 最后一个是否按照位置对齐 */ - public ScrollPageHelper(int gravity, boolean enableSnapLast){ + public ScrollPageHelper(int gravity, boolean enableSnapLast) { this.snapLastItem = enableSnapLast; this.gravity = gravity; } /** * 这个方法是与recyclerView绑定 - * @param recyclerView recyclerView + * + * @param recyclerView recyclerView * @throws IllegalStateException */ @Override @@ -55,9 +57,8 @@ public class ScrollPageHelper extends PagerSnapHelper { /** - * - * @param layoutManager layoutManager - * @param targetView 目标view + * @param layoutManager layoutManager + * @param targetView 目标view * @return */ @Nullable @@ -91,7 +92,8 @@ public class ScrollPageHelper extends PagerSnapHelper { /** * 找到当前时刻的SnapView - * @param layoutManager layoutManager + * + * @param layoutManager layoutManager * @return */ @Nullable diff --git a/app/src/main/java/com/gh/common/view/vertical_recycler/SnappingLinearLayoutManager.kt b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/SnappingLinearLayoutManager.kt similarity index 91% rename from app/src/main/java/com/gh/common/view/vertical_recycler/SnappingLinearLayoutManager.kt rename to module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/SnappingLinearLayoutManager.kt index 18b05820d0..bd5ea5f449 100644 --- a/app/src/main/java/com/gh/common/view/vertical_recycler/SnappingLinearLayoutManager.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/view/vertical_recycler/SnappingLinearLayoutManager.kt @@ -1,11 +1,11 @@ -package com.gh.common.view.vertical_recycler +package com.gh.gamecenter.common.view.vertical_recycler import android.content.Context import android.graphics.PointF import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearSmoothScroller import androidx.recyclerview.widget.RecyclerView -import com.gh.common.util.tryWithDefaultCatch +import com.gh.gamecenter.common.utils.tryWithDefaultCatch class SnappingLinearLayoutManager(val context: Context) : LinearLayoutManager(context) { override fun smoothScrollToPosition(recyclerView: RecyclerView?, state: RecyclerView.State?, position: Int) { diff --git a/app/src/main/res/anim/anim_marquee_in.xml b/module_common/src/main/res/anim/anim_marquee_in.xml similarity index 100% rename from app/src/main/res/anim/anim_marquee_in.xml rename to module_common/src/main/res/anim/anim_marquee_in.xml diff --git a/app/src/main/res/anim/anim_marquee_out.xml b/module_common/src/main/res/anim/anim_marquee_out.xml similarity index 100% rename from app/src/main/res/anim/anim_marquee_out.xml rename to module_common/src/main/res/anim/anim_marquee_out.xml diff --git a/app/src/main/res/anim/community_publication_enter.xml b/module_common/src/main/res/anim/community_publication_enter.xml similarity index 100% rename from app/src/main/res/anim/community_publication_enter.xml rename to module_common/src/main/res/anim/community_publication_enter.xml diff --git a/app/src/main/res/anim/community_publication_exit.xml b/module_common/src/main/res/anim/community_publication_exit.xml similarity index 100% rename from app/src/main/res/anim/community_publication_exit.xml rename to module_common/src/main/res/anim/community_publication_exit.xml diff --git a/app/src/main/res/anim/pophidden_anim.xml b/module_common/src/main/res/anim/pophidden_anim.xml similarity index 100% rename from app/src/main/res/anim/pophidden_anim.xml rename to module_common/src/main/res/anim/pophidden_anim.xml diff --git a/app/src/main/res/anim/popshow_anim.xml b/module_common/src/main/res/anim/popshow_anim.xml similarity index 100% rename from app/src/main/res/anim/popshow_anim.xml rename to module_common/src/main/res/anim/popshow_anim.xml diff --git a/app/src/main/res/anim/popshow_anim_scale.xml b/module_common/src/main/res/anim/popshow_anim_scale.xml similarity index 100% rename from app/src/main/res/anim/popshow_anim_scale.xml rename to module_common/src/main/res/anim/popshow_anim_scale.xml diff --git a/app/src/main/res/anim/popwindow_option_anim_enter.xml b/module_common/src/main/res/anim/popwindow_option_anim_enter.xml similarity index 100% rename from app/src/main/res/anim/popwindow_option_anim_enter.xml rename to module_common/src/main/res/anim/popwindow_option_anim_enter.xml diff --git a/app/src/main/res/anim/popwindow_option_anim_exit.xml b/module_common/src/main/res/anim/popwindow_option_anim_exit.xml similarity index 100% rename from app/src/main/res/anim/popwindow_option_anim_exit.xml rename to module_common/src/main/res/anim/popwindow_option_anim_exit.xml diff --git a/app/src/main/res/color/game_collection_rg_button_selector.xml b/module_common/src/main/res/color/game_collection_rg_button_selector.xml similarity index 100% rename from app/src/main/res/color/game_collection_rg_button_selector.xml rename to module_common/src/main/res/color/game_collection_rg_button_selector.xml diff --git a/app/src/main/res/color/text_tabbar_style.xml b/module_common/src/main/res/color/text_tabbar_style.xml similarity index 100% rename from app/src/main/res/color/text_tabbar_style.xml rename to module_common/src/main/res/color/text_tabbar_style.xml diff --git a/app/src/main/res/drawable-hdpi/share_cancel_logo.webp b/module_common/src/main/res/drawable-hdpi/share_cancel_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_cancel_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_cancel_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_copyfont_logo.webp b/module_common/src/main/res/drawable-hdpi/share_copyfont_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_copyfont_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_copyfont_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_email_logo.webp b/module_common/src/main/res/drawable-hdpi/share_email_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_email_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_email_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_qq_logo.webp b/module_common/src/main/res/drawable-hdpi/share_qq_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_qq_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_qq_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_qzone_logo.webp b/module_common/src/main/res/drawable-hdpi/share_qzone_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_qzone_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_qzone_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_save.webp b/module_common/src/main/res/drawable-hdpi/share_save.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_save.webp rename to module_common/src/main/res/drawable-hdpi/share_save.webp diff --git a/app/src/main/res/drawable-hdpi/share_shortmessage_logo.webp b/module_common/src/main/res/drawable-hdpi/share_shortmessage_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_shortmessage_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_shortmessage_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_sinaweibo_logo.webp b/module_common/src/main/res/drawable-hdpi/share_sinaweibo_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_sinaweibo_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_sinaweibo_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_wechat_logo.webp b/module_common/src/main/res/drawable-hdpi/share_wechat_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_wechat_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_wechat_logo.webp diff --git a/app/src/main/res/drawable-hdpi/share_wechatmoments_logo.webp b/module_common/src/main/res/drawable-hdpi/share_wechatmoments_logo.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/share_wechatmoments_logo.webp rename to module_common/src/main/res/drawable-hdpi/share_wechatmoments_logo.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon1.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon1.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon1.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon1.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon2.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon2.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon2.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon2.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon3.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon3.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon3.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon3.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon4.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon4.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon4.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon4.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon5.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon5.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon5.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon5.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon6.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon6.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon6.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon6.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon7.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon7.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon7.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon7.webp diff --git a/app/src/main/res/drawable-hdpi/user_default_icon8.webp b/module_common/src/main/res/drawable-hdpi/user_default_icon8.webp similarity index 100% rename from app/src/main/res/drawable-hdpi/user_default_icon8.webp rename to module_common/src/main/res/drawable-hdpi/user_default_icon8.webp diff --git a/app/src/main/res/drawable-night-xxxhdpi/ic_bar_back.webp b/module_common/src/main/res/drawable-night-xxxhdpi/ic_bar_back.webp similarity index 100% rename from app/src/main/res/drawable-night-xxxhdpi/ic_bar_back.webp rename to module_common/src/main/res/drawable-night-xxxhdpi/ic_bar_back.webp diff --git a/app/src/main/res/drawable-nodpi/occupy.9.png b/module_common/src/main/res/drawable-nodpi/occupy.9.png similarity index 100% rename from app/src/main/res/drawable-nodpi/occupy.9.png rename to module_common/src/main/res/drawable-nodpi/occupy.9.png diff --git a/app/src/main/res/drawable-nodpi/occupy2.webp b/module_common/src/main/res/drawable-nodpi/occupy2.webp similarity index 100% rename from app/src/main/res/drawable-nodpi/occupy2.webp rename to module_common/src/main/res/drawable-nodpi/occupy2.webp diff --git a/app/src/main/res/drawable-nodpi/personal_user_default_icon.webp b/module_common/src/main/res/drawable-nodpi/personal_user_default_icon.webp similarity index 100% rename from app/src/main/res/drawable-nodpi/personal_user_default_icon.webp rename to module_common/src/main/res/drawable-nodpi/personal_user_default_icon.webp diff --git a/module_common/src/main/res/drawable-v24/ic_launcher_foreground.xml b/module_common/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000000..2b068d1146 --- /dev/null +++ b/module_common/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/frame_bottom.webp b/module_common/src/main/res/drawable-xhdpi/frame_bottom.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_bottom.webp rename to module_common/src/main/res/drawable-xhdpi/frame_bottom.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_center.webp b/module_common/src/main/res/drawable-xhdpi/frame_center.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_center.webp rename to module_common/src/main/res/drawable-xhdpi/frame_center.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_left.webp b/module_common/src/main/res/drawable-xhdpi/frame_left.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_left.webp rename to module_common/src/main/res/drawable-xhdpi/frame_left.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_left_bottom_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_left_bottom_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_left_bottom_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_left_bottom_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_left_top_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_left_top_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_left_top_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_left_top_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_right.webp b/module_common/src/main/res/drawable-xhdpi/frame_right.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_right.webp rename to module_common/src/main/res/drawable-xhdpi/frame_right.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_right_bottom_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_right_bottom_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_right_bottom_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_right_bottom_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_right_top_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_right_top_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_right_top_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_right_top_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_top.webp b/module_common/src/main/res/drawable-xhdpi/frame_top.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_top.webp rename to module_common/src/main/res/drawable-xhdpi/frame_top.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_bottom.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_bottom.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_bottom.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_bottom.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_center.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_center.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_center.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_center.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_left.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_left.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_left.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_left.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_left_bottom_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_left_bottom_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_left_bottom_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_left_bottom_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_left_top_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_left_top_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_left_top_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_left_top_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_right.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_right.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_right.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_right.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_right_bottom_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_right_bottom_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_right_bottom_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_right_bottom_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_right_top_square.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_right_top_square.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_right_top_square.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_right_top_square.webp diff --git a/app/src/main/res/drawable-xhdpi/frame_tran_top.webp b/module_common/src/main/res/drawable-xhdpi/frame_tran_top.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/frame_tran_top.webp rename to module_common/src/main/res/drawable-xhdpi/frame_tran_top.webp diff --git a/app/src/main/res/drawable-xxhdpi/ic_video_arrow_down.webp b/module_common/src/main/res/drawable-xxhdpi/ic_video_arrow_down.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_video_arrow_down.webp rename to module_common/src/main/res/drawable-xxhdpi/ic_video_arrow_down.webp diff --git a/app/src/main/res/drawable-xxhdpi/icon_input_close.webp b/module_common/src/main/res/drawable-xxhdpi/icon_input_close.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/icon_input_close.webp rename to module_common/src/main/res/drawable-xxhdpi/icon_input_close.webp diff --git a/app/src/main/res/drawable-xxhdpi/icon_package_check_rocket.png b/module_common/src/main/res/drawable-xxhdpi/icon_package_check_rocket.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/icon_package_check_rocket.png rename to module_common/src/main/res/drawable-xxhdpi/icon_package_check_rocket.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_01.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_01.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_01.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_01.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_02.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_02.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_02.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_02.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_03.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_03.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_03.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_03.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_04.png b/module_common/src/main/res/drawable-xxhdpi/refresh_04.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_04.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_04.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_05.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_05.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_05.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_05.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_06.png b/module_common/src/main/res/drawable-xxhdpi/refresh_06.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_06.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_06.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_07.png b/module_common/src/main/res/drawable-xxhdpi/refresh_07.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_07.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_07.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_08.png b/module_common/src/main/res/drawable-xxhdpi/refresh_08.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_08.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_08.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_09.png b/module_common/src/main/res/drawable-xxhdpi/refresh_09.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_09.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_09.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_10.png b/module_common/src/main/res/drawable-xxhdpi/refresh_10.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_10.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_10.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_11.png b/module_common/src/main/res/drawable-xxhdpi/refresh_11.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_11.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_11.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_12.png b/module_common/src/main/res/drawable-xxhdpi/refresh_12.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_12.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_12.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_13.png b/module_common/src/main/res/drawable-xxhdpi/refresh_13.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_13.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_13.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_14.png b/module_common/src/main/res/drawable-xxhdpi/refresh_14.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_14.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_14.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_15.png b/module_common/src/main/res/drawable-xxhdpi/refresh_15.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_15.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_15.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_16.png b/module_common/src/main/res/drawable-xxhdpi/refresh_16.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_16.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_16.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_17.png b/module_common/src/main/res/drawable-xxhdpi/refresh_17.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_17.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_17.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_18.png b/module_common/src/main/res/drawable-xxhdpi/refresh_18.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_18.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_18.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_19.png b/module_common/src/main/res/drawable-xxhdpi/refresh_19.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_19.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_19.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_20.png b/module_common/src/main/res/drawable-xxhdpi/refresh_20.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_20.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_20.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_21.png b/module_common/src/main/res/drawable-xxhdpi/refresh_21.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_21.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_21.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_22.png b/module_common/src/main/res/drawable-xxhdpi/refresh_22.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_22.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_22.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_23.png b/module_common/src/main/res/drawable-xxhdpi/refresh_23.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_23.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_23.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_24.png b/module_common/src/main/res/drawable-xxhdpi/refresh_24.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_24.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_24.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_25.png b/module_common/src/main/res/drawable-xxhdpi/refresh_25.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_25.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_25.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_26.png b/module_common/src/main/res/drawable-xxhdpi/refresh_26.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_26.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_26.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_27.png b/module_common/src/main/res/drawable-xxhdpi/refresh_27.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_27.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_27.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_28.png b/module_common/src/main/res/drawable-xxhdpi/refresh_28.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_28.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_28.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_29.png b/module_common/src/main/res/drawable-xxhdpi/refresh_29.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_29.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_29.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_30.png b/module_common/src/main/res/drawable-xxhdpi/refresh_30.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_30.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_30.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_31.png b/module_common/src/main/res/drawable-xxhdpi/refresh_31.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_31.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_31.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_32.png b/module_common/src/main/res/drawable-xxhdpi/refresh_32.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_32.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_32.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_33.png b/module_common/src/main/res/drawable-xxhdpi/refresh_33.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_33.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_33.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_34.png b/module_common/src/main/res/drawable-xxhdpi/refresh_34.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_34.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_34.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_35.png b/module_common/src/main/res/drawable-xxhdpi/refresh_35.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_35.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_35.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_36.png b/module_common/src/main/res/drawable-xxhdpi/refresh_36.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_36.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_36.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_37.png b/module_common/src/main/res/drawable-xxhdpi/refresh_37.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_37.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_37.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_38.png b/module_common/src/main/res/drawable-xxhdpi/refresh_38.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_38.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_38.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_39.png b/module_common/src/main/res/drawable-xxhdpi/refresh_39.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_39.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_39.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_40.png b/module_common/src/main/res/drawable-xxhdpi/refresh_40.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_40.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_40.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_41.png b/module_common/src/main/res/drawable-xxhdpi/refresh_41.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_41.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_41.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_42.png b/module_common/src/main/res/drawable-xxhdpi/refresh_42.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_42.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_42.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_43.png b/module_common/src/main/res/drawable-xxhdpi/refresh_43.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_43.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_43.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_44.png b/module_common/src/main/res/drawable-xxhdpi/refresh_44.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_44.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_44.png diff --git a/app/src/main/res/drawable-xxhdpi/refresh_45.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_45.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_45.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_45.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_46.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_46.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_46.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_46.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_47.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_47.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_47.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_47.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_48.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_48.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_48.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_48.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_49.webp b/module_common/src/main/res/drawable-xxhdpi/refresh_49.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_49.webp rename to module_common/src/main/res/drawable-xxhdpi/refresh_49.webp diff --git a/app/src/main/res/drawable-xxhdpi/refresh_icon.png b/module_common/src/main/res/drawable-xxhdpi/refresh_icon.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/refresh_icon.png rename to module_common/src/main/res/drawable-xxhdpi/refresh_icon.png diff --git a/app/src/main/res/drawable-xxhdpi/share_qq.webp b/module_common/src/main/res/drawable-xxhdpi/share_qq.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/share_qq.webp rename to module_common/src/main/res/drawable-xxhdpi/share_qq.webp diff --git a/app/src/main/res/drawable-xxhdpi/share_qq_zone.webp b/module_common/src/main/res/drawable-xxhdpi/share_qq_zone.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/share_qq_zone.webp rename to module_common/src/main/res/drawable-xxhdpi/share_qq_zone.webp diff --git a/app/src/main/res/drawable-xxhdpi/share_wechat.webp b/module_common/src/main/res/drawable-xxhdpi/share_wechat.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/share_wechat.webp rename to module_common/src/main/res/drawable-xxhdpi/share_wechat.webp diff --git a/app/src/main/res/drawable-xxhdpi/share_wechat_moments.webp b/module_common/src/main/res/drawable-xxhdpi/share_wechat_moments.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/share_wechat_moments.webp rename to module_common/src/main/res/drawable-xxhdpi/share_wechat_moments.webp diff --git a/app/src/main/res/drawable-xxhdpi/share_weibo.webp b/module_common/src/main/res/drawable-xxhdpi/share_weibo.webp similarity index 100% rename from app/src/main/res/drawable-xxhdpi/share_weibo.webp rename to module_common/src/main/res/drawable-xxhdpi/share_weibo.webp diff --git a/app/src/main/res/drawable-xxxhdpi/ic_bar_back.webp b/module_common/src/main/res/drawable-xxxhdpi/ic_bar_back.webp similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_bar_back.webp rename to module_common/src/main/res/drawable-xxxhdpi/ic_bar_back.webp diff --git a/app/src/main/res/drawable-xxxhdpi/ic_dialog_close.webp b/module_common/src/main/res/drawable-xxxhdpi/ic_dialog_close.webp similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_dialog_close.webp rename to module_common/src/main/res/drawable-xxxhdpi/ic_dialog_close.webp diff --git a/app/src/main/res/drawable-xxxhdpi/ic_double_click_like.webp b/module_common/src/main/res/drawable-xxxhdpi/ic_double_click_like.webp similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_double_click_like.webp rename to module_common/src/main/res/drawable-xxxhdpi/ic_double_click_like.webp diff --git a/app/src/main/res/drawable/ask_tab_indicator_bg.xml b/module_common/src/main/res/drawable/ask_tab_indicator_bg.xml similarity index 100% rename from app/src/main/res/drawable/ask_tab_indicator_bg.xml rename to module_common/src/main/res/drawable/ask_tab_indicator_bg.xml diff --git a/app/src/main/res/drawable/background_shape_white.xml b/module_common/src/main/res/drawable/background_shape_white.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white.xml rename to module_common/src/main/res/drawable/background_shape_white.xml diff --git a/app/src/main/res/drawable/background_shape_white_alpha_10_radius_2.xml b/module_common/src/main/res/drawable/background_shape_white_alpha_10_radius_2.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_alpha_10_radius_2.xml rename to module_common/src/main/res/drawable/background_shape_white_alpha_10_radius_2.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_12_top_only.xml b/module_common/src/main/res/drawable/background_shape_white_radius_12_top_only.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_12_top_only.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_12_top_only.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_16_top_only.xml b/module_common/src/main/res/drawable/background_shape_white_radius_16_top_only.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_16_top_only.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_16_top_only.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_4.xml b/module_common/src/main/res/drawable/background_shape_white_radius_4.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_4.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_4.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_5.xml b/module_common/src/main/res/drawable/background_shape_white_radius_5.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_5.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_5.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_5_bottm_only.xml b/module_common/src/main/res/drawable/background_shape_white_radius_5_bottm_only.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_5_bottm_only.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_5_bottm_only.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_5_top_only.xml b/module_common/src/main/res/drawable/background_shape_white_radius_5_top_only.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_5_top_only.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_5_top_only.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_6.xml b/module_common/src/main/res/drawable/background_shape_white_radius_6.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_6.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_6.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_8.xml b/module_common/src/main/res/drawable/background_shape_white_radius_8.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_8.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_8.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_8_bottom_only.xml b/module_common/src/main/res/drawable/background_shape_white_radius_8_bottom_only.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_8_bottom_only.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_8_bottom_only.xml diff --git a/app/src/main/res/drawable/background_shape_white_radius_8_top_only.xml b/module_common/src/main/res/drawable/background_shape_white_radius_8_top_only.xml similarity index 100% rename from app/src/main/res/drawable/background_shape_white_radius_8_top_only.xml rename to module_common/src/main/res/drawable/background_shape_white_radius_8_top_only.xml diff --git a/app/src/main/res/drawable/bg_chart_marker.xml b/module_common/src/main/res/drawable/bg_chart_marker.xml similarity index 100% rename from app/src/main/res/drawable/bg_chart_marker.xml rename to module_common/src/main/res/drawable/bg_chart_marker.xml diff --git a/app/src/main/res/drawable/bg_share_dialog.xml b/module_common/src/main/res/drawable/bg_share_dialog.xml similarity index 100% rename from app/src/main/res/drawable/bg_share_dialog.xml rename to module_common/src/main/res/drawable/bg_share_dialog.xml diff --git a/app/src/main/res/drawable/cardview_item_style.xml b/module_common/src/main/res/drawable/cardview_item_style.xml similarity index 100% rename from app/src/main/res/drawable/cardview_item_style.xml rename to module_common/src/main/res/drawable/cardview_item_style.xml diff --git a/app/src/main/res/drawable/ic_chart_marker_triangle.xml b/module_common/src/main/res/drawable/ic_chart_marker_triangle.xml similarity index 100% rename from app/src/main/res/drawable/ic_chart_marker_triangle.xml rename to module_common/src/main/res/drawable/ic_chart_marker_triangle.xml diff --git a/app/src/main/res/drawable/ic_icon_star_ratting.xml b/module_common/src/main/res/drawable/ic_icon_star_ratting.xml similarity index 100% rename from app/src/main/res/drawable/ic_icon_star_ratting.xml rename to module_common/src/main/res/drawable/ic_icon_star_ratting.xml diff --git a/app/src/main/res/drawable/ic_icon_star_ratting_gray.xml b/module_common/src/main/res/drawable/ic_icon_star_ratting_gray.xml similarity index 100% rename from app/src/main/res/drawable/ic_icon_star_ratting_gray.xml rename to module_common/src/main/res/drawable/ic_icon_star_ratting_gray.xml diff --git a/module_common/src/main/res/drawable/ic_launcher_background.xml b/module_common/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000..07d5da9cbf --- /dev/null +++ b/module_common/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/refresh_anim.xml b/module_common/src/main/res/drawable/refresh_anim.xml similarity index 100% rename from app/src/main/res/drawable/refresh_anim.xml rename to module_common/src/main/res/drawable/refresh_anim.xml diff --git a/app/src/main/res/drawable/reuse_listview_item_style.xml b/module_common/src/main/res/drawable/reuse_listview_item_style.xml similarity index 100% rename from app/src/main/res/drawable/reuse_listview_item_style.xml rename to module_common/src/main/res/drawable/reuse_listview_item_style.xml diff --git a/app/src/main/res/layout/activity_normal.xml b/module_common/src/main/res/layout/activity_normal.xml similarity index 100% rename from app/src/main/res/layout/activity_normal.xml rename to module_common/src/main/res/layout/activity_normal.xml diff --git a/app/src/main/res/layout/activity_tablayout_no_title_viewpager.xml b/module_common/src/main/res/layout/activity_tablayout_no_title_viewpager.xml similarity index 95% rename from app/src/main/res/layout/activity_tablayout_no_title_viewpager.xml rename to module_common/src/main/res/layout/activity_tablayout_no_title_viewpager.xml index 18c7f1632a..683509cfdd 100644 --- a/app/src/main/res/layout/activity_tablayout_no_title_viewpager.xml +++ b/module_common/src/main/res/layout/activity_tablayout_no_title_viewpager.xml @@ -40,9 +40,9 @@ android:layout_width="190dp" android:layout_height="@dimen/tab_layout_height" android:layout_centerHorizontal="true" - android:background="@color/white"> + android:background="@color/background_white"> - @@ -23,7 +23,7 @@ android:layout_height = "wrap_content" android:layout_marginTop = "25dp" android:lineSpacingMultiplier = "1.3" - android:textColor = "@color/black" + android:textColor = "@color/text_black" android:textSize = "14sp" /> - - + tools:visibility="visible" />--> + android:background = "@color/background_white" /> \ No newline at end of file diff --git a/app/src/main/res/layout/tab_item.xml b/module_common/src/main/res/layout/tab_item.xml similarity index 100% rename from app/src/main/res/layout/tab_item.xml rename to module_common/src/main/res/layout/tab_item.xml diff --git a/app/src/main/res/layout/view_avatar_border.xml b/module_common/src/main/res/layout/view_avatar_border.xml similarity index 100% rename from app/src/main/res/layout/view_avatar_border.xml rename to module_common/src/main/res/layout/view_avatar_border.xml diff --git a/module_common/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/module_common/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000..eca70cfe52 --- /dev/null +++ b/module_common/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/module_common/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/module_common/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000000..eca70cfe52 --- /dev/null +++ b/module_common/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/module_common/src/main/res/mipmap-hdpi/ic_launcher.webp b/module_common/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000..c209e78ecd Binary files /dev/null and b/module_common/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/module_common/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/module_common/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..b2dfe3d1ba Binary files /dev/null and b/module_common/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/module_common/src/main/res/mipmap-mdpi/ic_launcher.webp b/module_common/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000..4f0f1d64e5 Binary files /dev/null and b/module_common/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/module_common/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/module_common/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..62b611da08 Binary files /dev/null and b/module_common/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/module_common/src/main/res/mipmap-xhdpi/ic_launcher.webp b/module_common/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000..948a3070fe Binary files /dev/null and b/module_common/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/module_common/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/module_common/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..1b9a6956b3 Binary files /dev/null and b/module_common/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/module_common/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/module_common/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000..28d4b77f9f Binary files /dev/null and b/module_common/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/module_common/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/module_common/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..9287f50836 Binary files /dev/null and b/module_common/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/module_common/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/module_common/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000..aa7d6427e6 Binary files /dev/null and b/module_common/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/module_common/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/module_common/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..9126ae37cb Binary files /dev/null and b/module_common/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/module_common/src/main/res/values-night/colors.xml b/module_common/src/main/res/values-night/colors.xml new file mode 100644 index 0000000000..1c4942c5ef --- /dev/null +++ b/module_common/src/main/res/values-night/colors.xml @@ -0,0 +1,308 @@ + + + + #2888E0 + #332888E0 + + #EB9238 + + #E0393E + + #07A385 + + + #2888E0 + #991383EB + + + #E0FFFFFF + #A3FFFFFF + #7AFFFFFF + #3DFFFFFF + @color/black + @color/white + + + #121212 + #000000 + #00121212 + + #333333 + + #1A000000 + + #66000000 + + #33000000 + + + @color/white + + @color/text_title + + @color/text_subtitleDesc + + #B3B3B3 + + + @color/divider + + + #0D000000 + + #14FFFFFF + + #d1e5f7 + + + #08FFFFFF + + + @color/theme + #06D0A8 + #FFB13C + @color/c7c7c7 + #A7A8B2 + + + #05C400 + #FFB13C + #FF6A28 + + + #FDA34D + + #1BA4FC + + #D63338 + + #FDA34D + + #2EC991 + + #ECECEC + + #30000000 + + #1668d0 + + #59d3ff + + #717171 + + #676767 + + #f8f8f8 + + #FF4E00 + + #175aa3 + + #60d6d5ff + + #949494 + + #454545 + + #e9e9e9 + + #FFB048 + + #F7F7F7 + + @color/white_alpha_20 + + #CCCCCC + #FFFDF2 + + #4BC3FF + + #ecfaff + + #FA8850 + + #39B5FA + + #0A2496FF + + + @android:color/black + #08000000 + #0D000000 + #1A000000 + #33000000 + #4D000000 + #99000000 + #66000000 + #80000000 + + #1AFFFFFF + #33FFFFFF + #66FFFFFF + #80FFFFFF + #99FFFFFF + #CCFFFFFF + #E6FFFFFF + @android:color/white + @android:color/white + @android:color/transparent + + #b3b3b3 + + + #aaaaaa + #AAAAAA + #dcdcdc + #c7c7c7 + #d6d5ff + #f8f8f8 + #e5e5e5 + #e6e6e6 + #ECF6FF + #EDEDED + #F2F2F2 + #FFC247 + #FF9933 + #F4F5F6 + #CDF5F0 + #80000000 + #404040 + #ededed + #26262B + #1F1F23 + #303030 + #F7F7F7 + #FFF6E6 + #EBF5FF + #3797FF + #EFF7FF + #806F9CEF + #EBFDFF + #7CE7F8 + #E6F8FA + #91F0FD + #F6FBFF + #50DCDC + #81B5FF + #20FFB5 + #00DDDD + #74FFFF + #60D5FF + #EDF5FC + #F2F7FC + #EBFAF7 + @color/background + @color/background + #b2b2b2 + @color/text_subtitleDesc + @color/text_title + #3A3A3A + #5d5d5d + #5D5D5D + #949494 + #fbfbfb + #d5d5d5 + #b3b3b3 + #B3B3B3 + #6c6c6c + #ff5151 + #ffbf00 + #FA8500 + #f67722 + #989898 + #444444 + #777777 + #f2f2f2 + #292929 + #00DD08 + #E0FFF9 + #F10000 + #EA3333 + #FF700F + #FF7C1F + #181927 + #e6f3ff + #1F89EC + #EEF5FB + #C1BFC9 + #FF5F14 + #FFDAA2 + #F9A755 + #FF9B06 + #D8D8D8 + @color/background + #3BABFF + #2461FF + #FF0000 + #A1A5B7 + #50556B + #979A9F + #C2C6CC + #C0C0C0 + #242529 + #ebebeb + #4BC7FF + #F8F8F8 + #F0F0F0 + #00DBB0 + #00B8B8 + #00D7B0 + #dddddd + #FFB749 + #FF6D3C + #F56614 + #FF6455 + #F0F8FF + #2A85FB + #F3F3F3 + #3CB9FF + #E8F3FF + #05CBA3 + #F2F3F7 + #EDF4FB + #2E96FF + #FFB84F + #FFEACC + #FEDD26 + #140B6D + #16161A + #28282E + #8798A8 + #3796FF + #213964 + #06CCF4 + #F8A142 + #f9f9f9 + #a9a9a9 + @color/text_subtitle + #0E0E0E + #F9FAFB + #00CDEB + #80EFFF + #00BFDB + #00DFFF + #3682C2 + #F67722 + #4B4B4B + #FF925C + #3087D9 + #C0C6CC + #717C8E + #DAF7F1 + #FFE5E6 + #17C2A1 + #0089D1 + #00DBA4 + #07B896 + #279BFE + #C4C4C4 + #4D4D4D + + #99666666 + #6621282E + \ No newline at end of file diff --git a/module_common/src/main/res/values-night/style.xml b/module_common/src/main/res/values-night/style.xml new file mode 100644 index 0000000000..0d96858030 --- /dev/null +++ b/module_common/src/main/res/values-night/style.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module_common/src/main/res/values-night/themes.xml b/module_common/src/main/res/values-night/themes.xml new file mode 100644 index 0000000000..757059b8ed --- /dev/null +++ b/module_common/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/module_common/src/main/res/values/attrs.xml b/module_common/src/main/res/values/attrs.xml new file mode 100644 index 0000000000..57951d5e42 --- /dev/null +++ b/module_common/src/main/res/values/attrs.xml @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module_common/src/main/res/values/colors.xml b/module_common/src/main/res/values/colors.xml new file mode 100644 index 0000000000..37bd64e09b --- /dev/null +++ b/module_common/src/main/res/values/colors.xml @@ -0,0 +1,315 @@ + + + + #2496FF + #332496FF + #CC2496FF + + #FFA142 + + #FF4147 + + #06CEA8 + + + #1383EB + #991383EB + + + #333333 + #666666 + #999999 + #CCCCCC + @color/white + @color/black + + + #F5F5F5 + #FFFFFF + #00F5F5F5 + + #EEEEEE + + #1A000000 + + #66000000 + + #33000000 + + + @color/white + + @color/text_5d5d5d + + @color/text_9a9a9a + + #B3B3B3 + + + @color/bg_ededed + + + #0D000000 + + #E1E1E1 + + #d1e5f7 + + + #F5F5F5 + + + @color/theme + #06D0A8 + #FFB13C + @color/c7c7c7 + #A7A8B2 + + + #05C400 + #FFB13C + #FF6A28 + + + #FDA34D + + #1BA4FC + + #D63338 + + #FDA34D + + #2EC991 + + #ECECEC + + #30000000 + + #1668d0 + + #59d3ff + + #717171 + + #676767 + + #f8f8f8 + + #FF4E00 + + #175aa3 + + #60d6d5ff + + #949494 + + #454545 + + #e9e9e9 + + #FFB048 + + #F7F7F7 + + @color/white_alpha_20 + + #CCCCCC + #FFFDF2 + + #4BC3FF + + #ecfaff + + #FA8850 + + #39B5FA + + #0A2496FF + + @android:color/black + #08000000 + #0D000000 + #1A000000 + #33000000 + #4D000000 + #99000000 + #66000000 + #80000000 + + #1AFFFFFF + #33FFFFFF + #66FFFFFF + #80FFFFFF + #99FFFFFF + #CCFFFFFF + #E6FFFFFF + @android:color/white + @android:color/white + @android:color/transparent + + #b3b3b3 + + + #aaaaaa + #AAAAAA + #dcdcdc + #c7c7c7 + #d6d5ff + #f8f8f8 + #e5e5e5 + #e6e6e6 + #ECF6FF + #EDEDED + #F2F2F2 + #FFC247 + #FF9933 + #F4F5F6 + #CDF5F0 + #EBF8FF + #80000000 + #404040 + #ededed + #26262B + #1F1F23 + #303030 + #F7F7F7 + #FFF6E6 + #EBF5FF + #3797FF + #EFF7FF + #806F9CEF + #EBFDFF + #7CE7F8 + #E6F8FA + #91F0FD + #F6FBFF + #50DCDC + #81B5FF + #20FFB5 + #00DDDD + #74FFFF + #60D5FF + #EDF5FC + #F2F7FC + #EBFAF7 + #F2F2F2 + #F8F8F8 + #b2b2b2 + #9a9a9a + #3a3a3a + #3A3A3A + #5d5d5d + #5D5D5D + #949494 + #fbfbfb + #d5d5d5 + #b3b3b3 + #B3B3B3 + #6c6c6c + #ff5151 + #ffbf00 + #FA8500 + #f67722 + #989898 + #444444 + #777777 + #f2f2f2 + #292929 + #00DD08 + #E0FFF9 + #F10000 + #EA3333 + #FF700F + #FF7C1F + #181927 + #e6f3ff + #1F89EC + #EEF5FB + #C1BFC9 + #FF5F14 + #FFDAA2 + #F9A755 + #FF9B06 + #D8D8D8 + #FAFAFA + #3BABFF + #2461FF + #FF0000 + #A1A5B7 + #50556B + #979A9F + #C2C6CC + #C0C0C0 + #242529 + #ebebeb + #4BC7FF + #F8F8F8 + #F0F0F0 + #00DBB0 + #00B8B8 + #00D7B0 + #dddddd + #FFB749 + #FF6D3C + #F56614 + #FF6455 + #F0F8FF + #2A85FB + #F3F3F3 + #3CB9FF + #E8F3FF + #05CBA3 + #F2F3F7 + #EDF4FB + #2E96FF + #FFB84F + #FFEACC + #FEDD26 + #140B6D + #16161A + #28282E + #8798A8 + #3796FF + #213964 + #06CCF4 + #F8A142 + #f9f9f9 + #a9a9a9 + #757575 + #0E0E0E + #F9FAFB + #00CDEB + #80EFFF + #00BFDB + #00DFFF + #3682C2 + #F67722 + #4B4B4B + #FF925C + #3087D9 + #C0C6CC + #717C8E + #DAF7F1 + #FFE5E6 + #17C2A1 + #0089D1 + #00DBA4 + #07B896 + #279BFE + #C4C4C4 + #FFF3EB + #F5F6F7 + #46DBAA + #FA8850 + #A2ADB8 + #CCFF5269 + #4D4D4D + + #99666666 + #6621282E + \ No newline at end of file diff --git a/module_common/src/main/res/values/dimens.xml b/module_common/src/main/res/values/dimens.xml new file mode 100644 index 0000000000..d3f7a47d64 --- /dev/null +++ b/module_common/src/main/res/values/dimens.xml @@ -0,0 +1,68 @@ + + + + 20sp + 18sp + 16sp + 14sp + 13sp + 12sp + 11sp + 10sp + + 0dp + + + 150dp + + 22dp + + 48dp + + 45dp + + 0.5dp + + 146dp + 81dp + + 80dp + 20dp + 55dp + + 54dp + + 16dp + 6dp + 4dp + + 122dp + + 300dp + + 20dp + 3dp + 14dp + + 48dp + + 40dp + 16dp + 4dp + + 113dp + + 16dp + + + + \ No newline at end of file diff --git a/module_common/src/main/res/values/ids.xml b/module_common/src/main/res/values/ids.xml new file mode 100644 index 0000000000..d26b0db5e1 --- /dev/null +++ b/module_common/src/main/res/values/ids.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/module_common/src/main/res/values/strings.xml b/module_common/src/main/res/values/strings.xml new file mode 100644 index 0000000000..ff69e4e34c --- /dev/null +++ b/module_common/src/main/res/values/strings.xml @@ -0,0 +1,29 @@ + + module_common + 取消 + 确定 + 不需要内存缓存 + highResImage + 取消关注游戏后,您将无法及时收到游戏的攻略、资讯等最新动态提醒。]]> + 检查更新中... + + + 分享跳转中... + 分享成功 + 分享已取消 + 分享失败 + 分享到 + 微信好友 + 朋友圈 + QQ好友 + QQ空间 + 微博 + 解析包出错(可能被误删了),请重新下载 + + https://www.ghzs.com/link?source=appshare100 + https://www.ghzs.com/link?source=appshare300 + https://and-static.ghzs.com/app-logo.png + + background_id + text_color_id + \ No newline at end of file diff --git a/module_common/src/main/res/values/style.xml b/module_common/src/main/res/values/style.xml new file mode 100644 index 0000000000..4e5eada3a1 --- /dev/null +++ b/module_common/src/main/res/values/style.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module_common/src/main/res/values/themes.xml b/module_common/src/main/res/values/themes.xml new file mode 100644 index 0000000000..a3032f82eb --- /dev/null +++ b/module_common/src/main/res/values/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/app/src/release/java/com/gh/gamecenter/Injection.java b/module_common/src/release/java/com/gh/gamecenter/Injection.java similarity index 65% rename from app/src/release/java/com/gh/gamecenter/Injection.java rename to module_common/src/release/java/com/gh/gamecenter/Injection.java index c25c7dbe4d..104ed9a42a 100644 --- a/app/src/release/java/com/gh/gamecenter/Injection.java +++ b/module_common/src/release/java/com/gh/gamecenter/Injection.java @@ -2,7 +2,7 @@ package com.gh.gamecenter; import android.app.Application; -import com.gh.base.AppUncaughtHandler; +//import com.gh.base.AppUncaughtHandler; import okhttp3.OkHttpClient; @@ -15,8 +15,8 @@ import okhttp3.OkHttpClient; public class Injection { public static boolean appInit(Application application) { - AppUncaughtHandler appUncaughtHandler = new AppUncaughtHandler(application); - Thread.setDefaultUncaughtExceptionHandler(appUncaughtHandler); +// AppUncaughtHandler appUncaughtHandler = new AppUncaughtHandler(application); +// Thread.setDefaultUncaughtExceptionHandler(appUncaughtHandler); return true; } diff --git a/module_common/src/test/java/com/gh/gamecenter/common/ExampleUnitTest.kt b/module_common/src/test/java/com/gh/gamecenter/common/ExampleUnitTest.kt new file mode 100644 index 0000000000..b79550db21 --- /dev/null +++ b/module_common/src/test/java/com/gh/gamecenter/common/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.gh.gamecenter.common + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/module_core/.gitignore b/module_core/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/module_core/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/module_core/build.gradle b/module_core/build.gradle new file mode 100644 index 0000000000..fd4c8f9379 --- /dev/null +++ b/module_core/build.gradle @@ -0,0 +1,94 @@ +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' + id 'kotlin-kapt' +} + +android { + + compileSdkVersion rootProject.ext.compileSdkVersion + + defaultConfig { + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode rootProject.ext.versionCode + versionName rootProject.ext.versionName + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + + kapt { + arguments { + arg("AROUTER_MODULE_NAME", project.name) + } + } + + buildFeatures { + viewBinding true + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + api "androidx.core:core-ktx:${core}" + api "androidx.recyclerview:recyclerview:${recyclerView}" + api "androidx.appcompat:appcompat:${appCompat}" + api "com.airbnb.android:lottie:${lottie}" + api "com.google.auto.service:auto-service:${autoServiceVersion}" + kapt "com.google.auto.service:auto-service:${autoServiceVersion}" + api "io.reactivex.rxjava2:rxjava:${rxJava2}" + api "io.reactivex.rxjava2:rxandroid:${rxAndroid2}" + api "com.jakewharton.rxbinding2:rxbinding:${rxBinding2}" + api "com.github.tbruyelle:rxpermissions:${rxPermissions}" + api "com.squareup.okhttp3:okhttp:${okHttp}" + api "com.squareup.retrofit2:retrofit:${retrofit}" + api "com.squareup.retrofit2:converter-gson:${retrofit}" // include gson 2.7 + api "com.squareup.retrofit2:adapter-rxjava2:${retrofit}" + api "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifeCycle" + api "androidx.lifecycle:lifecycle-livedata-ktx:$lifeCycle" + api "androidx.lifecycle:lifecycle-common-java8:$lifeCycle" + api "androidx.lifecycle:lifecycle-extensions:$lifeCycleExtensions" + api "com.facebook.fresco:fresco:${fresco}" + api "com.facebook.fresco:animated-gif-lite:${fresco}" + api "com.facebook.fresco:animated-drawable:${fresco}" + api "com.facebook.fresco:animated-webp:${fresco}" + api "com.facebook.fresco:webpsupport:${fresco}" + api "com.squareup.picasso:picasso:${picasso}" + api "com.google.zxing:core:${zxing}" + api "com.google.zxing:android-core:${zxing}" + api "top.zibin:Luban:${luban}" + api "androidx.webkit:webkit:${webkit}" + api("com.github.piasy:BigImageViewer:${bigImageViewer}", { + exclude group: 'com.squareup.okhttp3' + exclude group: 'androidx.swiperefreshlayout' + exclude group: 'com.github.bumptech.glide' + exclude group: 'com.facebook.fresco' + }) + api "com.lahm.library:easy-protector-release:${easyProtector}" + api "io.sentry:sentry-android:4.3.0" + + api "com.alibaba:arouter-api:$arouterVersion" + kapt "com.alibaba:arouter-compiler:$arouterVersion" + + api project(':libraries:LGLibrary') + api project(':libraries:QQShare') + api project(':libraries:Matisse') +} \ No newline at end of file diff --git a/module_core/proguard-rules.pro b/module_core/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/module_core/proguard-rules.pro @@ -0,0 +1,21 @@ +# 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 \ No newline at end of file diff --git a/module_core/src/androidTest/java/com/gh/gamecenter/core/ExampleInstrumentedTest.kt b/module_core/src/androidTest/java/com/gh/gamecenter/core/ExampleInstrumentedTest.kt new file mode 100644 index 0000000000..e4066bc1a2 --- /dev/null +++ b/module_core/src/androidTest/java/com/gh/gamecenter/core/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.gh.gamecenter.core + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.gh.gamecenter.core", appContext.packageName) + } +} \ No newline at end of file diff --git a/module_core/src/main/AndroidManifest.xml b/module_core/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..54114a5299 --- /dev/null +++ b/module_core/src/main/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/AppExecutor.kt b/module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt similarity index 88% rename from app/src/main/java/com/gh/common/AppExecutor.kt rename to module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt index bee84ace07..6a4c7519af 100644 --- a/app/src/main/java/com/gh/common/AppExecutor.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt @@ -1,13 +1,12 @@ -package com.gh.common +package com.gh.gamecenter.core import android.os.Handler import android.os.Looper -import com.gh.base.GHThreadFactory -import com.gh.common.AppExecutor.heavyWeightIoExecutor -import com.gh.common.AppExecutor.ioExecutor -import com.gh.common.AppExecutor.lightWeightIoExecutor -import com.gh.common.AppExecutor.logExecutor -import com.gh.common.AppExecutor.uiExecutor +import com.gh.gamecenter.core.AppExecutor.heavyWeightIoExecutor +import com.gh.gamecenter.core.AppExecutor.ioExecutor +import com.gh.gamecenter.core.AppExecutor.lightWeightIoExecutor +import com.gh.gamecenter.core.AppExecutor.uiExecutor + import io.reactivex.schedulers.Schedulers import java.util.concurrent.* diff --git a/app/src/main/java/com/gh/base/GHThreadFactory.kt b/module_core/src/main/java/com/gh/gamecenter/core/GHThreadFactory.kt similarity index 93% rename from app/src/main/java/com/gh/base/GHThreadFactory.kt rename to module_core/src/main/java/com/gh/gamecenter/core/GHThreadFactory.kt index 9bb468e288..73be3478df 100644 --- a/app/src/main/java/com/gh/base/GHThreadFactory.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/GHThreadFactory.kt @@ -1,4 +1,4 @@ -package com.gh.base +package com.gh.gamecenter.core import java.util.concurrent.ThreadFactory import java.util.concurrent.atomic.AtomicInteger diff --git a/module_core/src/main/java/com/gh/gamecenter/core/HaloApp.kt b/module_core/src/main/java/com/gh/gamecenter/core/HaloApp.kt new file mode 100644 index 0000000000..dd999e7a55 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/HaloApp.kt @@ -0,0 +1,45 @@ +package com.gh.gamecenter.core + +import android.app.Application +import android.content.Context +import android.content.res.Configuration +import com.gh.gamecenter.core.iinterface.IApplication +import com.google.auto.service.AutoService + +@AutoService(IApplication::class) +class HaloApp : IApplication { + + override fun attachBaseContext() { + + } + + override fun onCreate(application: Application) { + mApp = application + } + + + override fun onLowMemory() { + + } + + override fun onTerminate() { + + } + + override fun onTrimMemory(level: Int) { + + } + + override fun onConfigurationChanged(newConfig: Configuration) { + + } + + companion object { + private lateinit var mApp: Application + + @JvmStatic + fun getInstance(): Application { + return mApp + } + } +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/iinterface/IApplication.kt b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/IApplication.kt new file mode 100644 index 0000000000..25f5474304 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/IApplication.kt @@ -0,0 +1,19 @@ +package com.gh.gamecenter.core.iinterface + +import android.app.Application +import android.content.res.Configuration + +interface IApplication { + + fun attachBaseContext() + + fun onCreate(application: Application) + + fun onLowMemory() + + fun onTerminate() + + fun onTrimMemory(level: Int) + + fun onConfigurationChanged(newConfig: Configuration) +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/iinterface/IOffsetable.kt b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/IOffsetable.kt similarity index 80% rename from app/src/main/java/com/gh/common/iinterface/IOffsetable.kt rename to module_core/src/main/java/com/gh/gamecenter/core/iinterface/IOffsetable.kt index 71ccf4e76c..bc5be929ce 100644 --- a/app/src/main/java/com/gh/common/iinterface/IOffsetable.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/IOffsetable.kt @@ -1,4 +1,4 @@ -package com.gh.common.iinterface +package com.gh.gamecenter.core.iinterface @Suppress("SpellCheckingInspection") interface IOffsetable { diff --git a/app/src/main/java/com/gh/common/iinterface/IScrollable.kt b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/IScrollable.kt similarity index 53% rename from app/src/main/java/com/gh/common/iinterface/IScrollable.kt rename to module_core/src/main/java/com/gh/gamecenter/core/iinterface/IScrollable.kt index 1b3a423a21..223391e579 100644 --- a/app/src/main/java/com/gh/common/iinterface/IScrollable.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/IScrollable.kt @@ -1,4 +1,4 @@ -package com.gh.common.iinterface +package com.gh.gamecenter.core.iinterface interface IScrollable { fun scrollToTop() diff --git a/app/src/main/java/com/gh/base/SearchBarHint.java b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/SearchBarHint.java similarity index 80% rename from app/src/main/java/com/gh/base/SearchBarHint.java rename to module_core/src/main/java/com/gh/gamecenter/core/iinterface/SearchBarHint.java index b3f10032ca..be1741fd1e 100644 --- a/app/src/main/java/com/gh/base/SearchBarHint.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/iinterface/SearchBarHint.java @@ -1,4 +1,4 @@ -package com.gh.base; +package com.gh.gamecenter.core.iinterface; import java.util.ArrayList; diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IActivationProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IActivationProvider.kt new file mode 100644 index 0000000000..49528bb70f --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IActivationProvider.kt @@ -0,0 +1,7 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IActivationProvider : IProvider { + fun sendActivationInfo() +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt new file mode 100644 index 0000000000..ff25eb4c4d --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt @@ -0,0 +1,24 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider + +interface IAppProvider : IProvider { + fun getAppName():String + + fun getGid():String + + fun getOaid():String + + fun getChannel():String + + fun getUserAgent():String + + fun getServerUserMark():String + + fun getDeviceRamSize():Long + + fun getTemporaryLocalDeviceId():String + + fun isUserAcceptPrivacyPolicy(context: Context):Boolean +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IBuildConfigProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IBuildConfigProvider.kt new file mode 100644 index 0000000000..cca66cc35f --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IBuildConfigProvider.kt @@ -0,0 +1,16 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IBuildConfigProvider : IProvider { + fun getApplicationId(): String + fun getVersionName(): String + fun getExposureVersion(): String + fun isDebug(): Boolean + fun getBuildTime(): Long + fun getApiHost(): String + fun getDevApiHost(): String + fun getNewApiHost(): String + fun getNewDevApiHost(): String + fun getIsNightModeOn(): Boolean +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/ICheckLoginProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/ICheckLoginProvider.kt new file mode 100644 index 0000000000..36c4bd6011 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/ICheckLoginProvider.kt @@ -0,0 +1,8 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider + +interface ICheckLoginProvider : IProvider { + fun checkLogin(context: Context, entrance: String, action: (() -> Unit)? = null) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt new file mode 100644 index 0000000000..fc10323e93 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt @@ -0,0 +1,18 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IConfigProvider : IProvider { + fun getTencentAppId():String + fun getWechatAppId():String + fun getUploadLimitSize(): Long + fun getSize(): Int + fun getQuality(): Int + fun getRatio(): Int + fun getGif(): String + fun getJpeg(): String + fun getWebp(): String + fun getGitThumb(): String + fun getGifWaterMark(): String + fun getQQ(): String +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDefaultUrlHandlerProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDefaultUrlHandlerProvider.kt new file mode 100644 index 0000000000..b588635285 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDefaultUrlHandlerProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider + +interface IDefaultUrlHandlerProvider : IProvider { + + fun interceptUrl(context: Context, url: String, entrance: String):Boolean +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDialogUtilsProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDialogUtilsProvider.kt new file mode 100644 index 0000000000..7290261546 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDialogUtilsProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider + +interface IDialogUtilsProvider : IProvider { + + fun showRegulationTestDialog(context: Context, confirm: () -> Unit, cancel: () -> Unit) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt new file mode 100644 index 0000000000..04ae7aaf3a --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt @@ -0,0 +1,12 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider + +interface IDirectProvider : IProvider { + fun directToWebView(context: Context, url: String, entrance: String? = null) + + fun directToRegulationTestPage(context: Context) + + fun directToQqConversation(context: Context, qq: String) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDownloadManagerProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDownloadManagerProvider.kt new file mode 100644 index 0000000000..c3046128a6 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDownloadManagerProvider.kt @@ -0,0 +1,8 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider +import com.lightgame.download.DownloadEntity + +interface IDownloadManagerProvider : IProvider { + fun getDownloadEntityByUrl(url: String): DownloadEntity? +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IEnergyTaskProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IEnergyTaskProvider.kt new file mode 100644 index 0000000000..03163909be --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IEnergyTaskProvider.kt @@ -0,0 +1,10 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IEnergyTaskProvider : IProvider { + + fun postEnergyTaskForShare(type: String, id: String, url: String) + + fun logInviteResult(result: String, type: String? = null) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IEntranceUtilsProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IEntranceUtilsProvider.kt new file mode 100644 index 0000000000..85e039c512 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IEntranceUtilsProvider.kt @@ -0,0 +1,11 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import android.os.Bundle +import com.alibaba.android.arouter.facade.template.IProvider + +interface IEntranceUtilsProvider:IProvider { + fun saveShortcut(activityName:String , bundle: Bundle?) + + fun jumpActivity(context: Context , bundle: Bundle) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageHelperProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageHelperProvider.kt new file mode 100644 index 0000000000..a450b154c0 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageHelperProvider.kt @@ -0,0 +1,8 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IPackageHelperProvider : IProvider { + + fun getLocalPackageNameSet(): HashSet +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageInstallerProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageInstallerProvider.kt new file mode 100644 index 0000000000..510f71c1f2 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageInstallerProvider.kt @@ -0,0 +1,13 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider +import com.lightgame.download.DownloadEntity + +interface IPackageInstallerProvider : IProvider { + + fun install(context: Context, downloadEntity: DownloadEntity, showUnzipToast: Boolean) + + fun uninstall(context: Context, path: String) + +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageUtilsProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageUtilsProvider.kt new file mode 100644 index 0000000000..6e7cd7639e --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IPackageUtilsProvider.kt @@ -0,0 +1,18 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import android.content.pm.PackageInfo +import com.alibaba.android.arouter.facade.template.IProvider + +interface IPackageUtilsProvider : IProvider { + + fun obtainProcessName(context: Context): String + + fun getGhVersionName(): String + + fun getInstalledPackages(context: Context, flag: Int): List + + fun getApkSignatureByPackageName(context: Context, packageName: String): Array + + fun getSideLoadedInfo(): MutableMap? +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IQuickLoginProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IQuickLoginProvider.kt new file mode 100644 index 0000000000..ef9a7883f2 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IQuickLoginProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import com.alibaba.android.arouter.facade.template.IProvider + +interface IQuickLoginProvider : IProvider { + + fun startLogin(context: Context, entrance: String) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IUserManagerProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IUserManagerProvider.kt new file mode 100644 index 0000000000..a6cf599ebc --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IUserManagerProvider.kt @@ -0,0 +1,14 @@ +package com.gh.gamecenter.core.provider + +import com.alibaba.android.arouter.facade.template.IProvider + +interface IUserManagerProvider : IProvider { + + fun userShouldTakeRegulationBaseOnLastRemind(): Boolean + + fun getUserId(): String + + fun getToken(): String + + fun refreshToken(accessToken: String, success: () -> Unit, fail: (String?) -> Unit) +} \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt new file mode 100644 index 0000000000..3a34869316 --- /dev/null +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt @@ -0,0 +1,9 @@ +package com.gh.gamecenter.core.provider + +import android.content.Context +import android.content.Intent +import com.alibaba.android.arouter.facade.template.IProvider + +interface IWebProvider : IProvider { + fun getIntent(context: Context, url: String, autoCompletionTitle: Boolean): Intent +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/Animator.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/Animator.kt similarity index 99% rename from app/src/main/java/com/gh/common/util/Animator.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/Animator.kt index 3497607dcb..79e52016f1 100644 --- a/app/src/main/java/com/gh/common/util/Animator.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/Animator.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.gh.common.util +package com.gh.gamecenter.core.utils import android.animation.Animator import androidx.annotation.RequiresApi diff --git a/app/src/main/java/com/gh/common/util/AppDebugConfig.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/AppDebugConfig.java similarity index 97% rename from app/src/main/java/com/gh/common/util/AppDebugConfig.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/AppDebugConfig.java index 1f6bc80de3..31b7c74e5e 100644 --- a/app/src/main/java/com/gh/common/util/AppDebugConfig.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/AppDebugConfig.java @@ -1,9 +1,9 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.os.Debug; import android.util.Log; -import com.gh.gamecenter.BuildConfig; +import com.gh.gamecenter.core.BuildConfig; import java.lang.reflect.Field; diff --git a/app/src/main/java/com/gh/common/view/CenterImageSpan.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/CenterImageSpan.java similarity index 98% rename from app/src/main/java/com/gh/common/view/CenterImageSpan.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/CenterImageSpan.java index c446bb4a4a..955d512651 100644 --- a/app/src/main/java/com/gh/common/view/CenterImageSpan.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/CenterImageSpan.java @@ -1,4 +1,4 @@ -package com.gh.common.view; +package com.gh.gamecenter.core.utils; import android.content.Context; import android.graphics.Canvas; diff --git a/app/src/main/java/com/gh/common/util/ClassUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/ClassUtils.java similarity index 95% rename from app/src/main/java/com/gh/common/util/ClassUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/ClassUtils.java index 846a766ab0..2f0601ad58 100644 --- a/app/src/main/java/com/gh/common/util/ClassUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/ClassUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.text.TextUtils; diff --git a/app/src/main/java/com/gh/common/util/ClickUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/ClickUtils.java similarity index 97% rename from app/src/main/java/com/gh/common/util/ClickUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/ClickUtils.java index 0d6f9dd4a7..9d301788e5 100644 --- a/app/src/main/java/com/gh/common/util/ClickUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/ClickUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.util.Log; diff --git a/app/src/main/java/com/gh/base/CurrentActivityHolder.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/CurrentActivityHolder.kt similarity index 89% rename from app/src/main/java/com/gh/base/CurrentActivityHolder.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/CurrentActivityHolder.kt index c0a33eea04..51c3d2f721 100644 --- a/app/src/main/java/com/gh/base/CurrentActivityHolder.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/CurrentActivityHolder.kt @@ -1,4 +1,4 @@ -package com.gh.base +package com.gh.gamecenter.core.utils import android.app.Activity diff --git a/app/src/main/java/com/gh/common/util/DisplayUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/DisplayUtils.java similarity index 97% rename from app/src/main/java/com/gh/common/util/DisplayUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/DisplayUtils.java index e1526ac77a..0d7e9bd2b7 100644 --- a/app/src/main/java/com/gh/common/util/DisplayUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/DisplayUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.annotation.SuppressLint; import android.app.Activity; @@ -17,13 +17,12 @@ import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; - +import androidx.core.content.ContextCompat; +import com.gh.gamecenter.core.HaloApp; import androidx.annotation.ColorInt; import androidx.annotation.ColorRes; -import androidx.core.content.ContextCompat; import androidx.core.graphics.ColorUtils; -import com.halo.assistant.HaloApp; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -51,7 +50,6 @@ public class DisplayUtils { */ public static int dip2px(float dpValue) { final float scale = HaloApp.getInstance() - .getApplication() .getResources() .getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); @@ -295,14 +293,14 @@ public class DisplayUtils { } public static int getScreenWidth() { - WindowManager manager = (WindowManager) HaloApp.getInstance().getApplication().getSystemService(Context.WINDOW_SERVICE); + WindowManager manager = (WindowManager) HaloApp.getInstance().getSystemService(Context.WINDOW_SERVICE); DisplayMetrics metrics = new DisplayMetrics(); manager.getDefaultDisplay().getMetrics(metrics); return metrics.widthPixels; } public static int getScreenHeight() { - WindowManager manager = (WindowManager) HaloApp.getInstance().getApplication().getSystemService(Context.WINDOW_SERVICE); + WindowManager manager = (WindowManager) HaloApp.getInstance().getSystemService(Context.WINDOW_SERVICE); DisplayMetrics metrics = new DisplayMetrics(); manager.getDefaultDisplay().getMetrics(metrics); return metrics.heightPixels; @@ -311,7 +309,7 @@ public class DisplayUtils { public static int getToastOffset() { try { int i = Resources.getSystem().getIdentifier("toast_y_offset", "dimen", "android"); - return HaloApp.getInstance().getApplication().getResources().getDimensionPixelSize(i); + return HaloApp.getInstance().getResources().getDimensionPixelSize(i); } catch (Resources.NotFoundException e) { e.printStackTrace(); return dip2px(24); @@ -321,7 +319,7 @@ public class DisplayUtils { public static int getToastDefaultGravity() { try { int i = Resources.getSystem().getIdentifier("config_toastDefaultGravity", "integer", "android"); - return HaloApp.getInstance().getApplication().getResources().getInteger(i); + return HaloApp.getInstance().getResources().getInteger(i); } catch (Resources.NotFoundException e) { e.printStackTrace(); return Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL; diff --git a/app/src/main/java/com/gh/common/util/EmojiUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/EmojiUtils.java similarity index 99% rename from app/src/main/java/com/gh/common/util/EmojiUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/EmojiUtils.java index 97a241e4b6..dee17d9d1d 100644 --- a/app/src/main/java/com/gh/common/util/EmojiUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/EmojiUtils.java @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import java.util.Arrays; import java.util.HashSet; diff --git a/app/src/main/java/com/gh/common/util/EmptyCallback.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/EmptyCallback.kt similarity index 56% rename from app/src/main/java/com/gh/common/util/EmptyCallback.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/EmptyCallback.kt index a74dfde5a5..9ada726343 100644 --- a/app/src/main/java/com/gh/common/util/EmptyCallback.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/EmptyCallback.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils interface EmptyCallback { fun onCallback() diff --git a/app/src/main/java/com/gh/common/util/ExtraTagHandler.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/ExtraTagHandler.kt similarity index 99% rename from app/src/main/java/com/gh/common/util/ExtraTagHandler.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/ExtraTagHandler.kt index 9221da1856..be95072b8e 100644 --- a/app/src/main/java/com/gh/common/util/ExtraTagHandler.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/ExtraTagHandler.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import android.text.Editable import android.text.Html.TagHandler diff --git a/app/src/main/java/com/gh/common/util/GsonUtils.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/GsonUtils.kt similarity index 96% rename from app/src/main/java/com/gh/common/util/GsonUtils.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/GsonUtils.kt index 8a5a52386e..1c58fb3e66 100644 --- a/app/src/main/java/com/gh/common/util/GsonUtils.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/GsonUtils.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import com.google.gson.Gson import com.google.gson.GsonBuilder diff --git a/app/src/main/java/com/gh/common/util/GzipUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/GzipUtils.java similarity index 98% rename from app/src/main/java/com/gh/common/util/GzipUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/GzipUtils.java index 3a54ebd0f7..ebf36d722e 100644 --- a/app/src/main/java/com/gh/common/util/GzipUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/GzipUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/app/src/main/java/com/gh/common/util/HtmlUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/HtmlUtils.java similarity index 98% rename from app/src/main/java/com/gh/common/util/HtmlUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/HtmlUtils.java index ef3cc45db5..db3b5199d7 100644 --- a/app/src/main/java/com/gh/common/util/HtmlUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/HtmlUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.text.TextUtils; diff --git a/app/src/main/java/com/gh/common/util/IntentUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/IntentUtils.java similarity index 58% rename from app/src/main/java/com/gh/common/util/IntentUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/IntentUtils.java index 90f69d6005..76b067e31b 100644 --- a/app/src/main/java/com/gh/common/util/IntentUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/IntentUtils.java @@ -1,20 +1,12 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; -import android.os.Bundle; import androidx.annotation.NonNull; -import com.gh.gamecenter.NormalActivity; -import com.gh.gamecenter.SingletonWebActivity; -import com.gh.gamecenter.WebActivity; -import com.gh.gamecenter.category.CategoryListActivity; -import com.gh.gamecenter.entity.CategoryEntity; -import com.halo.assistant.fragment.WebFragment; - /** * @author CsHeng * @Date 17/05/2017 @@ -61,27 +53,4 @@ public class IntentUtils { "https://www.ghzs.com/link?source=appshare333"); return data; } - - public static void startCategoryListActivity(Context context, String categoryTitle, CategoryEntity category) { - DataUtils.onMtaEvent(context, "分类大全", categoryTitle, category.getName()); - context.startActivity(CategoryListActivity.Companion.getIntent(context, categoryTitle, category, "全部")); - } - - public static Intent getWebTargetIntent(Context context, Bundle bundle, String url) { - Class cls; - - if (url.contains("android_page_type=singleton")) { - cls = SingletonWebActivity.class; - } else { - cls = WebActivity.class; - } - if (url.contains("leave_web_page_handle_back_pressed=true")) { - bundle.putBoolean(WebFragment.KEY_LEAVE_WEB_PAGE_TO_HANDLE_BACK_PRESSED, true); - } - - Intent intent = new Intent(context, cls); - intent.putExtra(NormalActivity.NORMAL_FRAGMENT_NAME, WebFragment.class.getCanonicalName()); - intent.putExtra(NormalActivity.NORMAL_FRAGMENT_BUNDLE, bundle); - return intent; - } } diff --git a/app/src/main/java/com/gh/common/util/KeyboardHeightObserver.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/KeyboardHeightObserver.java similarity index 97% rename from app/src/main/java/com/gh/common/util/KeyboardHeightObserver.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/KeyboardHeightObserver.java index 73fb028578..17097e83a4 100644 --- a/app/src/main/java/com/gh/common/util/KeyboardHeightObserver.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/KeyboardHeightObserver.java @@ -15,7 +15,7 @@ * along with Siebe Projects samples. If not, see . */ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; /** * The observer that will be notified when the height of diff --git a/app/src/main/java/com/gh/common/util/KeyboardHeightProvider.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/KeyboardHeightProvider.java similarity index 98% rename from app/src/main/java/com/gh/common/util/KeyboardHeightProvider.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/KeyboardHeightProvider.java index f1c0f55e70..921e2bcc02 100644 --- a/app/src/main/java/com/gh/common/util/KeyboardHeightProvider.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/KeyboardHeightProvider.java @@ -15,7 +15,7 @@ * along with Siebe Projects samples. If not, see . */ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.app.Activity; import android.content.res.Configuration; @@ -28,7 +28,8 @@ import android.view.View; import android.view.WindowManager.LayoutParams; import android.widget.PopupWindow; -import com.gh.gamecenter.R; +import com.gh.gamecenter.core.R; + /** * The keyboard height provider, this class uses a PopupWindow diff --git a/app/src/main/java/com/gh/common/util/MD5Utils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/MD5Utils.java similarity index 99% rename from app/src/main/java/com/gh/common/util/MD5Utils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/MD5Utils.java index b060845690..702570e0f7 100644 --- a/app/src/main/java/com/gh/common/util/MD5Utils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/MD5Utils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.text.TextUtils; diff --git a/app/src/main/java/com/gh/common/util/MtaHelper.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/MtaHelper.kt similarity index 98% rename from app/src/main/java/com/gh/common/util/MtaHelper.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/MtaHelper.kt index dc1a2533aa..02ef9fc807 100644 --- a/app/src/main/java/com/gh/common/util/MtaHelper.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/MtaHelper.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils object MtaHelper { diff --git a/app/src/main/java/com/gh/common/util/NumberUtils.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/NumberUtils.kt similarity index 97% rename from app/src/main/java/com/gh/common/util/NumberUtils.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/NumberUtils.kt index d09c0cdf91..62b1911a4e 100644 --- a/app/src/main/java/com/gh/common/util/NumberUtils.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/NumberUtils.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import java.text.DecimalFormat import kotlin.math.roundToInt diff --git a/app/src/main/java/com/gh/common/util/PageSwitchDataHelper.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/PageSwitchDataHelper.kt similarity index 97% rename from app/src/main/java/com/gh/common/util/PageSwitchDataHelper.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/PageSwitchDataHelper.kt index b6a4ee6d66..3089408f08 100644 --- a/app/src/main/java/com/gh/common/util/PageSwitchDataHelper.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/PageSwitchDataHelper.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import com.lightgame.utils.AppManager diff --git a/app/src/main/java/com/gh/common/util/PatternUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/PatternUtils.java similarity index 98% rename from app/src/main/java/com/gh/common/util/PatternUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/PatternUtils.java index 5ddef8ee17..5b7b886f20 100644 --- a/app/src/main/java/com/gh/common/util/PatternUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/PatternUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.util.Patterns; diff --git a/app/src/main/java/com/gh/common/util/RandomUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/RandomUtils.java similarity index 96% rename from app/src/main/java/com/gh/common/util/RandomUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/RandomUtils.java index f0d3f9dbb3..15b352dc85 100644 --- a/app/src/main/java/com/gh/common/util/RandomUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/RandomUtils.java @@ -1,8 +1,8 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import androidx.annotation.ColorRes; -import com.gh.gamecenter.R; +import com.gh.gamecenter.core.R; import java.math.BigDecimal; import java.util.Random; diff --git a/app/src/main/java/com/gh/common/util/RichEditorUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/RichEditorUtils.java similarity index 97% rename from app/src/main/java/com/gh/common/util/RichEditorUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/RichEditorUtils.java index 650a9026c7..2de87e8c66 100644 --- a/app/src/main/java/com/gh/common/util/RichEditorUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/RichEditorUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.content.Context; import android.graphics.Bitmap; diff --git a/app/src/main/java/com/gh/common/util/RunningUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/RunningUtils.java similarity index 99% rename from app/src/main/java/com/gh/common/util/RunningUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/RunningUtils.java index 905096fd52..ee66bc9cf9 100644 --- a/app/src/main/java/com/gh/common/util/RunningUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/RunningUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.Manifest; import android.app.ActivityManager; diff --git a/app/src/main/java/com/gh/common/util/SentryHelper.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/SentryHelper.kt similarity index 84% rename from app/src/main/java/com/gh/common/util/SentryHelper.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/SentryHelper.kt index c04a2edf23..4d7e82c8fc 100644 --- a/app/src/main/java/com/gh/common/util/SentryHelper.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/SentryHelper.kt @@ -1,6 +1,7 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import android.text.TextUtils +import com.gh.gamecenter.core.BuildConfig import com.lightgame.utils.Utils import io.sentry.Sentry import io.sentry.SentryEvent @@ -25,8 +26,8 @@ object SentryHelper { val value = kv[i] if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { sentryEvent.setTag(key, value) - debugOnly { - throwExceptionInDebug("tag-key 不支持中文", isContainChinese(key)) + if (BuildConfig.DEBUG && isContainChinese(key)) { + throw RuntimeException("tag-key 不支持中文") } } } diff --git a/app/src/main/java/com/gh/common/util/ServiceUtils.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/ServiceUtils.kt similarity index 93% rename from app/src/main/java/com/gh/common/util/ServiceUtils.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/ServiceUtils.kt index fcc2ae9a3f..967d048a26 100644 --- a/app/src/main/java/com/gh/common/util/ServiceUtils.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/ServiceUtils.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import android.app.ActivityManager import android.content.Context diff --git a/app/src/main/java/com/gh/common/util/SharedPreferences.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/SharedPreferences.kt similarity index 100% rename from app/src/main/java/com/gh/common/util/SharedPreferences.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/SharedPreferences.kt diff --git a/app/src/main/java/com/gh/common/util/SimpleImageLoader.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/SimpleImageLoader.java similarity index 93% rename from app/src/main/java/com/gh/common/util/SimpleImageLoader.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/SimpleImageLoader.java index 31bcf4c51f..aafebdc023 100644 --- a/app/src/main/java/com/gh/common/util/SimpleImageLoader.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/SimpleImageLoader.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import com.github.piasy.biv.loader.ImageLoader; diff --git a/app/src/main/java/com/gh/common/util/SingletonHolder.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/SingletonHolder.kt similarity index 93% rename from app/src/main/java/com/gh/common/util/SingletonHolder.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/SingletonHolder.kt index aead75f1e2..d26e213022 100644 --- a/app/src/main/java/com/gh/common/util/SingletonHolder.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/SingletonHolder.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils open class SingletonHolder(creator: () -> T) { private var creator: (() -> T)? = creator diff --git a/app/src/main/java/com/gh/common/util/SpUtils.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/SpUtils.kt similarity index 95% rename from app/src/main/java/com/gh/common/util/SpUtils.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/SpUtils.kt index db004f46f2..215ef085f2 100644 --- a/app/src/main/java/com/gh/common/util/SpUtils.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/SpUtils.kt @@ -1,9 +1,9 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import android.content.Context import android.content.SharedPreferences +import com.gh.gamecenter.core.HaloApp import com.google.gson.reflect.TypeToken -import com.halo.assistant.HaloApp object SPUtils { private var mSp: SharedPreferences? = null @@ -11,7 +11,7 @@ object SPUtils { private val sp: SharedPreferences get() { if (mSp == null) { - mSp = HaloApp.getInstance().application.getSharedPreferences("Halo", Context.MODE_PRIVATE) + mSp = HaloApp.getInstance().getSharedPreferences("Halo", Context.MODE_PRIVATE) } return mSp!! } diff --git a/app/src/main/java/com/gh/common/util/SpanBuilder.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/SpanBuilder.kt similarity index 92% rename from app/src/main/java/com/gh/common/util/SpanBuilder.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/SpanBuilder.kt index b8200f2271..7650700bd1 100644 --- a/app/src/main/java/com/gh/common/util/SpanBuilder.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/SpanBuilder.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import android.content.Context import android.graphics.Color @@ -11,8 +11,7 @@ import android.text.style.* import android.view.View import androidx.annotation.DrawableRes import androidx.core.content.ContextCompat -import com.gh.common.view.CenterImageSpan -import com.halo.assistant.HaloApp +import com.gh.gamecenter.core.HaloApp class SpanBuilder(content: CharSequence) { private var spannableString: SpannableStringBuilder = SpannableStringBuilder(content) @@ -24,15 +23,17 @@ class SpanBuilder(content: CharSequence) { } fun color(start: Int, end: Int, colorRes: Int): SpanBuilder { - val colorSpan = ForegroundColorSpan(ContextCompat.getColor(HaloApp.getInstance().application, colorRes)) + val colorSpan = ForegroundColorSpan(ContextCompat.getColor(HaloApp.getInstance(), colorRes)) spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) return this } fun color(start: Int, end: Int, colorHexInString: String): SpanBuilder { - tryWithDefaultCatch { + try { val colorSpan = ForegroundColorSpan(Color.parseColor(colorHexInString)) spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) + } catch (e: Throwable) { + e.printStackTrace() } return this } @@ -66,7 +67,7 @@ class SpanBuilder(content: CharSequence) { //添加图标 fun image(start: Int, end: Int, @DrawableRes res: Int): SpanBuilder { - val imageSpan = CenterImageSpan(HaloApp.getInstance().application, res) + val imageSpan = CenterImageSpan(HaloApp.getInstance(), res) spannableString.setSpan(imageSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) return this } @@ -82,7 +83,7 @@ class SpanBuilder(content: CharSequence) { val clickSpan = object : ClickableSpan() { override fun updateDrawState(ds: TextPaint) { super.updateDrawState(ds) - ds.color = ContextCompat.getColor(HaloApp.getInstance().application, colorRes) + ds.color = ContextCompat.getColor(HaloApp.getInstance(), colorRes) ds.isUnderlineText = isUnderlineText } diff --git a/app/src/main/java/com/gh/common/util/SpeedUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/SpeedUtils.java similarity index 97% rename from app/src/main/java/com/gh/common/util/SpeedUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/SpeedUtils.java index 787145e624..b0fea37ef7 100644 --- a/app/src/main/java/com/gh/common/util/SpeedUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/SpeedUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; public class SpeedUtils { diff --git a/app/src/main/java/com/gh/common/util/StringUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/StringUtils.java similarity index 98% rename from app/src/main/java/com/gh/common/util/StringUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/StringUtils.java index 407b036fb0..3a87d6efd5 100644 --- a/app/src/main/java/com/gh/common/util/StringUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/StringUtils.java @@ -1,4 +1,4 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.text.Html; import android.text.TextUtils; diff --git a/app/src/main/java/com/gh/common/util/ThirdPartyPackageHelper.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/ThirdPartyPackageHelper.kt similarity index 92% rename from app/src/main/java/com/gh/common/util/ThirdPartyPackageHelper.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/ThirdPartyPackageHelper.kt index e1b9212133..283f42af3c 100644 --- a/app/src/main/java/com/gh/common/util/ThirdPartyPackageHelper.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/ThirdPartyPackageHelper.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils /** * 第三方安装包(即安装包里没有 gh-id)的辅助类 diff --git a/app/src/main/java/com/gh/common/TimeElapsedHelper.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/TimeElapsedHelper.kt similarity index 93% rename from app/src/main/java/com/gh/common/TimeElapsedHelper.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/TimeElapsedHelper.kt index b5e4c97a0c..fdb0035378 100644 --- a/app/src/main/java/com/gh/common/TimeElapsedHelper.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/TimeElapsedHelper.kt @@ -1,12 +1,13 @@ -package com.gh.common +package com.gh.gamecenter.core.utils import android.app.Activity import android.app.Application import android.os.Bundle import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager -import com.gh.base.GHThreadFactory -import com.halo.assistant.HaloApp +import com.gh.gamecenter.core.AppExecutor +import com.gh.gamecenter.core.GHThreadFactory +import com.gh.gamecenter.core.HaloApp import java.util.concurrent.ExecutorService import java.util.concurrent.Executors @@ -56,7 +57,7 @@ class TimeElapsedHelper(val fragment: Fragment?, val activity: Activity?) { override fun onActivityDestroyed(a: Activity) { if (activity == a) { - HaloApp.getInstance().application.unregisterActivityLifecycleCallbacks(this) + HaloApp.getInstance().unregisterActivityLifecycleCallbacks(this) } } }) diff --git a/app/src/main/java/com/gh/common/util/TimeUtils.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/TimeUtils.kt similarity index 99% rename from app/src/main/java/com/gh/common/util/TimeUtils.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/TimeUtils.kt index ae99de688f..ebe195fc93 100644 --- a/app/src/main/java/com/gh/common/util/TimeUtils.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/TimeUtils.kt @@ -1,4 +1,4 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import java.text.ParseException import java.text.SimpleDateFormat diff --git a/app/src/main/java/com/gh/common/util/ToastUtils.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/ToastUtils.kt similarity index 85% rename from app/src/main/java/com/gh/common/util/ToastUtils.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/ToastUtils.kt index 16d96de377..950a243502 100644 --- a/app/src/main/java/com/gh/common/util/ToastUtils.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/ToastUtils.kt @@ -1,6 +1,6 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils -import com.halo.assistant.HaloApp +import com.gh.gamecenter.core.HaloApp import com.lightgame.utils.toast.ToastHelper object ToastUtils { diff --git a/app/src/main/java/com/gh/common/util/TopCutProcess.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/TopCutProcess.kt similarity index 93% rename from app/src/main/java/com/gh/common/util/TopCutProcess.kt rename to module_core/src/main/java/com/gh/gamecenter/core/utils/TopCutProcess.kt index 262e24cd91..18af825bd6 100644 --- a/app/src/main/java/com/gh/common/util/TopCutProcess.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/TopCutProcess.kt @@ -1,7 +1,6 @@ -package com.gh.common.util +package com.gh.gamecenter.core.utils import android.graphics.Bitmap -import android.graphics.Matrix import com.facebook.common.references.CloseableReference import com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory import com.facebook.imagepipeline.request.BasePostprocessor diff --git a/app/src/main/java/com/gh/common/util/UrlFilterUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/UrlFilterUtils.java similarity index 96% rename from app/src/main/java/com/gh/common/util/UrlFilterUtils.java rename to module_core/src/main/java/com/gh/gamecenter/core/utils/UrlFilterUtils.java index f5345964b8..cf859430a1 100644 --- a/app/src/main/java/com/gh/common/util/UrlFilterUtils.java +++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/UrlFilterUtils.java @@ -1,11 +1,11 @@ -package com.gh.common.util; +package com.gh.gamecenter.core.utils; import android.text.TextUtils; -import com.lightgame.config.CommonDebug; - import androidx.annotation.NonNull; +import com.lightgame.config.CommonDebug; + /** * Created by khy on 27/03/18. */ diff --git a/module_core/src/main/res/drawable-v24/ic_launcher_foreground.xml b/module_core/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000000..2b068d1146 --- /dev/null +++ b/module_core/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/module_core/src/main/res/drawable/ic_launcher_background.xml b/module_core/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000..07d5da9cbf --- /dev/null +++ b/module_core/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/popupwindow.xml b/module_core/src/main/res/layout/popupwindow.xml similarity index 100% rename from app/src/main/res/layout/popupwindow.xml rename to module_core/src/main/res/layout/popupwindow.xml diff --git a/module_core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/module_core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000..eca70cfe52 --- /dev/null +++ b/module_core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/module_core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/module_core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000000..eca70cfe52 --- /dev/null +++ b/module_core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/module_core/src/main/res/mipmap-hdpi/ic_launcher.webp b/module_core/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000..c209e78ecd Binary files /dev/null and b/module_core/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/module_core/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/module_core/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..b2dfe3d1ba Binary files /dev/null and b/module_core/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/module_core/src/main/res/mipmap-mdpi/ic_launcher.webp b/module_core/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000..4f0f1d64e5 Binary files /dev/null and b/module_core/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/module_core/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/module_core/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..62b611da08 Binary files /dev/null and b/module_core/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/module_core/src/main/res/mipmap-xhdpi/ic_launcher.webp b/module_core/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000..948a3070fe Binary files /dev/null and b/module_core/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/module_core/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/module_core/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..1b9a6956b3 Binary files /dev/null and b/module_core/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/module_core/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/module_core/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000..28d4b77f9f Binary files /dev/null and b/module_core/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/module_core/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/module_core/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..9287f50836 Binary files /dev/null and b/module_core/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/module_core/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/module_core/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000..aa7d6427e6 Binary files /dev/null and b/module_core/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/module_core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/module_core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000..9126ae37cb Binary files /dev/null and b/module_core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/module_core/src/main/res/values-night/colors.xml b/module_core/src/main/res/values-night/colors.xml new file mode 100644 index 0000000000..388508876e --- /dev/null +++ b/module_core/src/main/res/values-night/colors.xml @@ -0,0 +1,9 @@ + + + #5C8399 + #5C9599 + #6F5EA8 + #996283 + #748054 + #946262 + \ No newline at end of file diff --git a/module_core/src/main/res/values-night/themes.xml b/module_core/src/main/res/values-night/themes.xml new file mode 100644 index 0000000000..757059b8ed --- /dev/null +++ b/module_core/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/module_core/src/main/res/values/colors.xml b/module_core/src/main/res/values/colors.xml new file mode 100644 index 0000000000..388508876e --- /dev/null +++ b/module_core/src/main/res/values/colors.xml @@ -0,0 +1,9 @@ + + + #5C8399 + #5C9599 + #6F5EA8 + #996283 + #748054 + #946262 + \ No newline at end of file diff --git a/module_core/src/main/res/values/strings.xml b/module_core/src/main/res/values/strings.xml new file mode 100644 index 0000000000..8048959145 --- /dev/null +++ b/module_core/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + module_core + \ No newline at end of file diff --git a/module_core/src/main/res/values/themes.xml b/module_core/src/main/res/values/themes.xml new file mode 100644 index 0000000000..a3032f82eb --- /dev/null +++ b/module_core/src/main/res/values/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/module_core/src/test/java/com/gh/gamecenter/core/ExampleUnitTest.kt b/module_core/src/test/java/com/gh/gamecenter/core/ExampleUnitTest.kt new file mode 100644 index 0000000000..2131858922 --- /dev/null +++ b/module_core/src/test/java/com/gh/gamecenter/core/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.gh.gamecenter.core + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/scripts/build_with_simple_backup.sh b/scripts/build_with_simple_backup.sh index f72d72ae2e..6bf764053b 100755 --- a/scripts/build_with_simple_backup.sh +++ b/scripts/build_with_simple_backup.sh @@ -23,6 +23,10 @@ fi # 移除夜间颜色资源 rm -r app/src/main/res/values-night rm -r app/src/main/res/drawable-night-xxxhdpi +rm -r module_core/src/main/res/drawable-night-xxxhdpi +rm -r module_common/src/main/res/drawable-night-xxxhdpi +rm -r module_core/src/main/res/values-night +rm -r module_common/src/main/res/values-night sed -i 's/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "true"/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "false"/g' app/build.gradle ./gradlew --stop diff --git a/scripts/jenkins_build.sh b/scripts/jenkins_build.sh index 8b6a3f5a65..30661249f5 100755 --- a/scripts/jenkins_build.sh +++ b/scripts/jenkins_build.sh @@ -30,6 +30,10 @@ do # 移除夜间颜色资源 rm -r app/src/main/res/values-night rm -r app/src/main/res/drawable-night-xxxhdpi + rm -r module_core/src/main/res/drawable-night-xxxhdpi + rm -r module_common/src/main/res/drawable-night-xxxhdpi + rm -r module_core/src/main/res/values-night + rm -r module_common/src/main/res/values-night sed -i 's/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "true"/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "false"/g' app/build.gradle ;; esac diff --git a/scripts/jenkins_flutter_build.sh b/scripts/jenkins_flutter_build.sh index af675ce2d2..b6e2bc85d8 100755 --- a/scripts/jenkins_flutter_build.sh +++ b/scripts/jenkins_flutter_build.sh @@ -30,6 +30,10 @@ do # 移除夜间颜色资源 rm -r app/src/main/res/values-night rm -r app/src/main/res/drawable-night-xxxhdpi + rm -r module_core/src/main/res/drawable-night-xxxhdpi + rm -r module_common/src/main/res/drawable-night-xxxhdpi + rm -r module_core/src/main/res/values-night + rm -r module_common/src/main/res/values-night sed -i 's/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "true"/buildConfigField "boolean", "IS_NIGHT_MODE_ON", "false"/g' app/build.gradle ;; esac diff --git a/settings.gradle b/settings.gradle index 9d1351d890..e0cf03553b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,3 +9,5 @@ include ':libraries:QQShare' include ':libraries:Matisse' //setBinding(new Binding([gradle: this])) //evaluate(new File(settingsDir, "assistant_flutter/.android/include_flutter.groovy")) +include ':module_core' +include ':module_common'