diff --git a/app/src/main/java/com/gh/common/TimeElapsedHelper.kt b/app/src/main/java/com/gh/common/TimeElapsedHelper.kt index f29c8fef61..004a14160e 100644 --- a/app/src/main/java/com/gh/common/TimeElapsedHelper.kt +++ b/app/src/main/java/com/gh/common/TimeElapsedHelper.kt @@ -29,31 +29,31 @@ class TimeElapsedHelper(val fragment: Fragment?, val activity: Activity?) { init { activity?.application?.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks { - override fun onActivityStarted(a: Activity?) { + override fun onActivityStarted(a: Activity) { } - override fun onActivitySaveInstanceState(a: Activity?, outState: Bundle?) { + override fun onActivitySaveInstanceState(a: Activity, outState: Bundle) { } - override fun onActivityStopped(a: Activity?) { + override fun onActivityStopped(a: Activity) { } - override fun onActivityCreated(a: Activity?, savedInstanceState: Bundle?) { + override fun onActivityCreated(a: Activity, savedInstanceState: Bundle?) { } - override fun onActivityPaused(a: Activity?) { + override fun onActivityPaused(a: Activity) { if (activity == a) { pauseCounting() } } - override fun onActivityResumed(a: Activity?) { + override fun onActivityResumed(a: Activity) { if (activity == a) { resumeCounting() } } - override fun onActivityDestroyed(a: Activity?) { + override fun onActivityDestroyed(a: Activity) { if (activity == a) { HaloApp.getInstance().application.unregisterActivityLifecycleCallbacks(this) } 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 c84e744b31..4aae9ca66f 100644 --- a/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt +++ b/app/src/main/java/com/gh/common/dialog/DeviceRemindDialog.kt @@ -215,7 +215,7 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g class LooperHandle(val mAdapter: BannerAdapter) : Handler() { private val mWeakReference: WeakReference = WeakReference(mAdapter) - override fun handleMessage(msg: Message?) { + override fun handleMessage(msg: Message) { val adapter = mWeakReference.get() adapter?.scrollToNextPage() adapter?.startScroll() 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 eb77c93c23..2f72b80684 100644 --- a/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt +++ b/app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt @@ -76,7 +76,7 @@ object RegionSettingHelper { } override fun onFailure(exception: Exception) { - SPUtils.getString(SP_SETTING).toObject()?.let { + SPUtils.getString(SP_SETTING)?.toObject()?.let { updateSettingsInMemory(it) } } 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 cfcd418c46..08a161c757 100644 --- a/app/src/main/java/com/gh/common/util/DownloadObserver.kt +++ b/app/src/main/java/com/gh/common/util/DownloadObserver.kt @@ -284,7 +284,7 @@ object DownloadObserver { params["game"] = id params["platform"] = platform ?: "" val body = RequestBody.create(MediaType.parse("application/json"), - JSONObject(params).toString()) + JSONObject(params as Map<*, *>).toString()) RetrofitManager.getInstance(mApplication).api.postDownload(body) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index 2e22840862..87c0f83d0d 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -424,7 +424,7 @@ fun String.copyTextAndToast(toastText: String = "复制成功") { val application = HaloApp.getInstance().application val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager val clip = ClipData.newPlainText(null, this) - cmb.primaryClip = clip + cmb.setPrimaryClip(clip) if (!TextUtils.isEmpty(toastText)) { ToastUtils.showToast(toastText) diff --git a/app/src/main/java/com/gh/common/util/SpUtils.kt b/app/src/main/java/com/gh/common/util/SpUtils.kt index df9ac8934c..0b7551873b 100644 --- a/app/src/main/java/com/gh/common/util/SpUtils.kt +++ b/app/src/main/java/com/gh/common/util/SpUtils.kt @@ -23,7 +23,7 @@ object SPUtils { @JvmStatic fun getString(key: String): String { - return sp.getString(key, "") + return sp.getString(key, "")?:"" } @JvmStatic 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 ae4e28fdb5..f980b1248e 100644 --- a/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt +++ b/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt @@ -71,7 +71,7 @@ object SyncDataBetweenPageHelper { val fields = syncData::class.java.declaredFields var isNeedNotify = false for (field in fields) { - if (field.getAnnotation(Synchronize::class.java) != null) { + if (field.getAnnotation(Synchronize::class.java) != null && resultData != null) { // 同步数据 val resultField = resultData::class.java.getDeclaredField(field.name) resultField.isAccessible = true diff --git a/app/src/main/java/com/gh/common/view/GradientAlphaTextSpan.kt b/app/src/main/java/com/gh/common/view/GradientAlphaTextSpan.kt index b41b90cdae..4cb945963d 100644 --- a/app/src/main/java/com/gh/common/view/GradientAlphaTextSpan.kt +++ b/app/src/main/java/com/gh/common/view/GradientAlphaTextSpan.kt @@ -20,7 +20,7 @@ class GradientAlphaTextSpan(var textColor: Int) : ReplacementSpan() { originalColor, originalColorWithAlphaChanged, Shader.TileMode.CLAMP) paint.shader = mShader - canvas.drawText(text, start, end, x, y.toFloat(), paint) + canvas.drawText(text ?: "", start, end, x, y.toFloat(), paint) paint.shader = null } 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 7a991d1311..e9b4d33af9 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt @@ -60,7 +60,7 @@ class MessageEntity { title = parcel.readString() thumb = parcel.readString() communityId = parcel.readString() - images = parcel.createStringArrayList() + images = parcel.createStringArrayList()?: arrayListOf() } override fun writeToParcel(parcel: Parcel, flags: Int) { @@ -102,7 +102,7 @@ class MessageEntity { constructor(parcel: Parcel) : this() { id = parcel.readString() content = parcel.readString() - images = parcel.createStringArrayList() + images = parcel.createStringArrayList()?: arrayListOf() } override fun writeToParcel(parcel: Parcel, flags: Int) { diff --git a/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.kt index 0e925d05bb..53cfc9731d 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/NewsEntity.kt @@ -25,7 +25,7 @@ class NewsEntity : Parcelable, Cloneable { var thumbnail: ThumbnailEntity? = null - @SerializedName(value = "intro",alternate = ["content"]) + @SerializedName(value = "intro", alternate = ["content"]) var intro: String? = null var views: Int = 0 @@ -71,7 +71,7 @@ class NewsEntity : Parcelable, Cloneable { constructor() protected constructor(`in`: Parcel) { - this.id = `in`.readString() + this.id = `in`.readString() ?: "" this.type = `in`.readString() this.title = `in`.readString() this.publishOn = `in`.readLong() diff --git a/app/src/main/java/com/gh/gamecenter/entity/ServerCalendarEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ServerCalendarEntity.kt index 87cfbf43da..a49fdfd8d1 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ServerCalendarEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/ServerCalendarEntity.kt @@ -81,12 +81,13 @@ class ServerCalendarEntity() : Parcelable, BaseObservable() { this.note = source.readString() this.time = source.readLong() this.type = source.readString() - this.remark = source.readString() + this.remark = source.readString() ?: "" } companion object { const val TAG = "ServerCalendarEntity" + @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { override fun createFromParcel(source: Parcel): ServerCalendarEntity { 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 191eb85059..4f00347c2e 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 @@ -103,7 +103,7 @@ class ColumnCollectionDetailActivity : ListActivity(), IScrollable { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val gameEntity = arguments?.getParcelable(GameEntity.TAG) as GameEntity - val gameDetailFactory = GameDetailViewModel.Factory(HaloApp.getInstance().application, gameEntity.id, gameEntity) + 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 mGameDetailViewModel = viewModelProviderFromParent(gameDetailFactory) mFuLiViewModel = viewModelProvider() - mFuLiViewModel?.updateGameEntity(gameEntity) + if (gameEntity != null) { + mFuLiViewModel?.updateGameEntity(gameEntity) + } mGameDetailViewModel?.gameDetailLiveData?.value?.data?.zone?.let { mFuLiViewModel?.updateUnifiedGameDetailEntity(it) 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 9fe2ea5156..0511ec2f9a 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 @@ -41,7 +41,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { private var mInstallPackageName: String? = null private lateinit var mBinding: ActivityRatingEditBinding - private lateinit var mGame: GameEntity + private var mGame: GameEntity? = null private lateinit var mRatingScoreTip: Array private var mFromAmway = false @@ -94,7 +94,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { private fun initView() { mBinding.game = mGame - mPlaceholder = "您觉得《${mGame.name}》怎么样?真实、客观、丰富、大于100字的评论内容,更容易获得点赞并推荐到安利墙哦~" + mPlaceholder = "您觉得《${mGame?.name}》怎么样?真实、客观、丰富、大于100字的评论内容,更容易获得点赞并推荐到安利墙哦~" mBinding.commentRules.setOnClickListener { startActivity(WebActivity.getCommentRulesIntent(this)) } @@ -225,7 +225,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { }) mViewModel.postLiveData.observe(this, Observer { if (it.status == Status.SUCCESS) { - MtaHelper.onEvent("发表评论", "提交", mGame.name) + MtaHelper.onEvent("发表评论", "提交", mGame?.name) setResult(Activity.RESULT_OK) toast("提交成功") // GdtHelper.logAction(ActionType.RATE, @@ -287,7 +287,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { when { errorEntity?.code == 403079 -> { - MtaHelper.onEvent("游戏评论跳转", "出现弹窗", mGame.name ?: "") + MtaHelper.onEvent("游戏评论跳转", "出现弹窗", mGame?.name ?: "") MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "出现弹窗") DialogUtils.showTrackableDialog(this@RatingEditActivity, true, "提示", "检测到您评论的内容中含有反映游戏问题相关内容,可选择点击下方联系客服按钮,将问题反馈给客服,以便更优解决!", @@ -302,7 +302,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { }, TrackableEntity(event = "游戏评论跳转", key = "联系客服弹窗")) } errorEntity?.code == 403080 -> { - MtaHelper.onEvent("游戏评论跳转", "出现弹窗", mGame.name ?: "") + MtaHelper.onEvent("游戏评论跳转", "出现弹窗", mGame?.name ?: "") MtaHelper.onEvent("游戏评论跳转", "意见反馈弹窗", "出现弹窗") DialogUtils.showTrackableDialog(this@RatingEditActivity, "提示", "检测到您评论的内容中含有反映游戏问题相关内容,可选择点击下方问题反馈按钮,将问题反馈给后台客服,以便更优解决!", @@ -313,7 +313,8 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { val intent = SuggestionActivity.getIntentFromRating( this@RatingEditActivity, SuggestType.gameQuestion, content.replace(LABEL_REPLACE_REGEX.toRegex(), ""), - SimpleGameEntity(mGame.id, mGame.name ?: "")) + SimpleGameEntity(mGame?.id ?: "", mGame?.name + ?: "")) startActivity(intent) finish() }) @@ -358,8 +359,8 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { } val gameVersion = if (mInstallPackageName.isNullOrEmpty()) { - val apk = mGame.getApk() - if (apk.isNotEmpty()) apk[0].version else "" + val apk = mGame?.getApk() + if (!apk.isNullOrEmpty()) apk[0].version else "" } else { PackageUtils.getVersionByPackage(mInstallPackageName) } @@ -377,7 +378,7 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver { val body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) - mViewModel.postGameComment(this, mGame.id, mComment?.id ?: "", body) + mViewModel.postGameComment(this, mGame?.id ?: "", mComment?.id ?: "", body) }) } 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 b78077b96d..73b9837a1a 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 @@ -29,7 +29,7 @@ import retrofit2.HttpException import java.io.File class RatingEditViewModel(application: Application, - private val game: GameEntity) : AndroidViewModel(application) { + private val game: GameEntity?) : AndroidViewModel(application) { private val mApi = RetrofitManager.getInstance(application).api @@ -133,12 +133,12 @@ class RatingEditViewModel(application: Application, } private fun getDraftKey(): String? { - if (game.id.isEmpty()) return null + if (game == null || game.id.isEmpty()) return null return RATING_DRAFT_KEY + game.id } class Factory(private val mApplication: Application, - private val mGameEntity: GameEntity) : ViewModelProvider.NewInstanceFactory() { + private val mGameEntity: GameEntity?) : ViewModelProvider.NewInstanceFactory() { override fun create(modelClass: Class): T { return RatingEditViewModel(mApplication, mGameEntity) as T } 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 123608cc86..1860ecdc14 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 @@ -32,8 +32,8 @@ class CommentLogsActivity : ListActivity = WeakReference(adapter) - override fun handleMessage(msg: Message?) { + override fun handleMessage(msg: Message) { val adapter = mWeakReference.get() if (adapter != null) { - if (msg?.what == adapter.mSlideLooperKey) { + if (msg.what == adapter.mSlideLooperKey) { adapter.scrollToNextPage() adapter.startScroll() } diff --git a/app/src/main/java/com/gh/gamecenter/kotterknife/kotterknife.kt b/app/src/main/java/com/gh/gamecenter/kotterknife/kotterknife.kt index 891d6bc2a6..e8c29de3fc 100644 --- a/app/src/main/java/com/gh/gamecenter/kotterknife/kotterknife.kt +++ b/app/src/main/java/com/gh/gamecenter/kotterknife/kotterknife.kt @@ -90,7 +90,7 @@ private val DialogFragment.viewFinder: DialogFragment.(Int) -> View? private val SupportDialogFragment.viewFinder: SupportDialogFragment.(Int) -> View? get() = { dialog?.findViewById(it) ?: view?.findViewById(it) } private val Fragment.viewFinder: Fragment.(Int) -> View? - get() = { view.findViewById(it) } + get() = { view?.findViewById(it) } private val SupportFragment.viewFinder: SupportFragment.(Int) -> View? get() = { view!!.findViewById(it) } private val ViewHolder.viewFinder: ViewHolder.(Int) -> View? 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 1fdadc1c4e..a26a9e5a46 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 @@ -101,7 +101,8 @@ class BackgroundPreviewFragment : NormalFragment() { mLocalPath = arguments?.getString(EntranceUtils.KEY_LOCAL_PATH) ?: "" backgroundImageEntity = arguments?.getParcelable(BackgroundImageEntity::class.java.simpleName) mOriginBitmap = BitmapUtils.getBitmapByFile(mLocalPath, Bitmap.Config.ARGB_8888) - mTempBitmap = Bitmap.createBitmap(mOriginBitmap) + if (mOriginBitmap == null) return + mTempBitmap = Bitmap.createBitmap(mOriginBitmap!!) mBinding.mineGhIv.setImageBitmap(mOriginBitmap) mBinding.personalHomeIv.setImageBitmap(mOriginBitmap) @@ -169,9 +170,10 @@ class BackgroundPreviewFragment : NormalFragment() { @RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1) private fun changeAmbiguity() { - var progress = mBinding.blurSeek.progress + if (mOriginBitmap == null) return + val progress = mBinding.blurSeek.progress mTempBitmap = if (progress == 0) { - Bitmap.createBitmap(mOriginBitmap) + Bitmap.createBitmap(mOriginBitmap!!) } else { BitmapUtils.getBlurBitmap(requireContext(), mOriginBitmap, progress) } @@ -276,11 +278,12 @@ class BackgroundPreviewFragment : NormalFragment() { if (data != null) { val imagePath = data.getStringExtra(CropImageActivity.RESULT_CLIP_PATH) mOriginBitmap = BitmapUtils.getBitmapByFile(imagePath, Bitmap.Config.ARGB_8888) + if (mOriginBitmap == null) return val progress = mBinding.blurSeek.progress mTempBitmap = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && progress != 0) { BitmapUtils.getBlurBitmap(requireContext(), mOriginBitmap, progress) } else { - Bitmap.createBitmap(mOriginBitmap) + Bitmap.createBitmap(mOriginBitmap!!) } mBinding.mineGhIv.setImageBitmap(mTempBitmap) mBinding.personalHomeIv.setImageBitmap(mTempBitmap) 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 a3e5b53942..43d76aac37 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 @@ -101,7 +101,7 @@ class PersonalityBackgroundFragment : NormalFragment() { } else if (requestCode == REQUEST_CODE_IMAGE_CROP && resultCode == Activity.RESULT_OK) { if (data != null) { val imagePath = data.getStringExtra(CropImageActivity.RESULT_CLIP_PATH) - val intent = BackgroundPreviewActivity.getIntent(requireContext(), imagePath, null) + val intent = BackgroundPreviewActivity.getIntent(requireContext(), imagePath ?: "", null) requireActivity().startActivityForResult(intent, CHANGE_BACKGROUND_SUCCESS) } } else if (requestCode == CHANGE_BACKGROUND_SUCCESS && resultCode == Activity.RESULT_OK) { 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 2902124ed4..2ee259e45a 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 @@ -240,8 +240,8 @@ class AnswerDetailFragment : NormalFragment() { } } else if (requestCode == QUESTION_DETAIL && resultCode == Activity.RESULT_OK) { val resultData = data.getParcelableExtra(QuestionsDetailEntity::class.java.simpleName) - mViewModel.answerDetail?.question?.title = resultData.title ?: "" - mViewModel.answerDetail?.question?.description = resultData.description ?: "" + mViewModel.answerDetail?.question?.title = resultData?.title ?: "" + mViewModel.answerDetail?.question?.description = resultData?.description ?: "" mBinding.detail = mViewModel.answerDetail mViewModel.answerDetail?.let { updateView(it) 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 57c4bd970c..617611cf52 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 @@ -248,7 +248,7 @@ class AnswerDetailViewModel(application: Application) : AndroidViewModel(applica val params = HashMap() params["commentable"] = isCommentable val body = RequestBody.create(MediaType.parse("application/json"), - JSONObject(params).toString()) + JSONObject(params as Map<*, *>).toString()) RetrofitManager.getInstance(getApplication()) .api diff --git a/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotFragment.kt index e37b53aad9..66cab6c7ac 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/column/detail/hot/HotFragment.kt @@ -5,6 +5,7 @@ import android.view.View import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.EntranceUtils import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.SpecialColumn import com.gh.gamecenter.qa.entity.AnswerEntity import com.gh.gamecenter.qa.entity.AskTagGroupsEntity @@ -35,7 +36,8 @@ class HotFragment : ListFragment() { val tag = requireArguments().getString(EntranceUtils.KEY_ASK_TAG) val entity = requireArguments().getParcelable(EntranceUtils.KEY_ASK_COLUMN_TAG) val factory = HotViewModel.Factory(HaloApp.getInstance().application - , if (tag.isNullOrEmpty()) entity else tag, requireArguments().getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)) + , if (tag.isNullOrEmpty()) entity as Any else tag, requireArguments().getParcelable(EntranceUtils.KEY_COMMUNITY_DATA) + ?: CommunityEntity()) return ViewModelProviders.of(this, factory).get(HotViewModel::class.java) } 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 aaed8e2af9..37dbcee5b4 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 @@ -5,6 +5,7 @@ import android.view.View import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.EntranceUtils import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.SpecialColumn import com.gh.gamecenter.qa.entity.AnswerEntity import com.gh.gamecenter.qa.entity.AskTagGroupsEntity @@ -35,7 +36,7 @@ class RecommendsFragment : ListFragment() { val tag = requireArguments().getString(EntranceUtils.KEY_ASK_TAG) val entity = requireArguments().getParcelable(EntranceUtils.KEY_ASK_COLUMN_TAG) val factory = RecommendsViewModel.Factory(HaloApp.getInstance().application - , if (tag.isNullOrEmpty()) entity else tag, requireArguments().getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)) + , if (tag.isNullOrEmpty()) entity as Any else tag, requireArguments().getParcelable(EntranceUtils.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/UnansweredFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/column/detail/unanswered/UnansweredFragment.kt index c75af0db8f..695f762ca1 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 @@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView import com.gh.common.util.EntranceUtils import com.gh.gamecenter.baselist.ListFragment +import com.gh.gamecenter.entity.CommunityEntity import com.gh.gamecenter.entity.SpecialColumn import com.gh.gamecenter.qa.entity.AskTagGroupsEntity import com.gh.gamecenter.qa.entity.Questions @@ -35,7 +36,7 @@ class UnansweredFragment : ListFragment() { val tag = requireArguments().getString(EntranceUtils.KEY_ASK_TAG) val entity = requireArguments().getParcelable(EntranceUtils.KEY_ASK_COLUMN_TAG) val factory = UnansweredViewModel.Factory(HaloApp.getInstance().application - , if (tag.isNullOrEmpty()) entity else tag, requireArguments().getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)) + , if (tag.isNullOrEmpty()) entity as Any else tag, requireArguments().getParcelable(EntranceUtils.KEY_COMMUNITY_DATA)?: CommunityEntity()) return ViewModelProviders.of(this, factory).get(UnansweredViewModel::class.java) } 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 beff7eb0ae..a35dee2655 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 @@ -69,7 +69,7 @@ class CommentActivity : BaseActivity() { } else if (!articleId.isNullOrEmpty()) { NewCommentFragment.getCommunityArticleCommentInstance( articleId, - communityId, + communityId?:"", showKeyboard, commentCount, mShowInputOnly, @@ -78,7 +78,7 @@ class CommentActivity : BaseActivity() { commentCallback) } else { NewCommentFragment.getVideoCommentInstance( - videoId, + videoId?:"", showKeyboard, commentCount, isVideoAuthor, 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 44bf05cbfd..ac42bb6f28 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 @@ -114,20 +114,20 @@ class AnswerEntity() : Parcelable { } constructor(parcel: Parcel) : this() { - primaryKey = parcel.readString() - articleCommunityId = parcel.readString() + primaryKey = parcel.readString() ?: "" + articleCommunityId = parcel.readString() ?: "" orderTag = parcel.readLong() id = parcel.readString() brief = parcel.readString() articleTitle = parcel.readString() - questions = parcel.readParcelable(Questions::class.java.classLoader) - images = parcel.createStringArrayList() + questions = parcel.readParcelable(Questions::class.java.classLoader) ?: Questions() + images = parcel.createStringArrayList() ?: arrayListOf() commentCount = parcel.readInt() vote = parcel.readInt() - user = parcel.readParcelable(UserEntity::class.java.classLoader) + user = parcel.readParcelable(UserEntity::class.java.classLoader) ?: UserEntity() communityName = parcel.readString() active = parcel.readByte() != 0.toByte() - type = parcel.readString() + type = parcel.readString() ?: "" time = parcel.readLong() } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/manager/HistoryActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/manager/HistoryActivity.kt index c9e7097999..054595952e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/manager/HistoryActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/manager/HistoryActivity.kt @@ -38,7 +38,7 @@ class HistoryActivity : ListActivity = HashMap() params["mobile"] = phoneNum - val jsonObject = JSONObject(params) + val jsonObject = JSONObject(params as Map<*, *>) jsonObject.put("device", device) val body: RequestBody = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) @@ -80,7 +80,7 @@ class BindPhoneViewModel(application: Application) : AndroidViewModel(applicatio params["mobile"] = phoneNum params["service_id"] = mServiceId params["code"] = code - val jsonObject = JSONObject(params) + val jsonObject = JSONObject(params as Map<*, *>) jsonObject.put("device", device) val body: RequestBody = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) @@ -122,7 +122,7 @@ class BindPhoneViewModel(application: Application) : AndroidViewModel(applicatio val params: MutableMap = HashMap() params["old_mobile"] = oldPhoneNum params["mobile"] = phoneNum - val jsonObject = JSONObject(params) + val jsonObject = JSONObject(params as Map<*, *>) jsonObject.put("device", device) val body: RequestBody = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) @@ -167,7 +167,7 @@ class BindPhoneViewModel(application: Application) : AndroidViewModel(applicatio params["mobile"] = phoneNum params["service_id"] = mServiceId params["code"] = code - val jsonObject = JSONObject(params) + val jsonObject = JSONObject(params as Map<*, *>) jsonObject.put("device", device) val body: RequestBody = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString()) 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 380c8eb47c..6e9d30bf5b 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 @@ -55,8 +55,8 @@ class AddKaiFuActivity : ToolBarActivity() { // initViewModel mViewModel = ViewModelProviders.of(this).get(AddKaiFuViewModel::class.java) mViewModel?.initData(intent.getParcelableExtra(ServerCalendarEntity.TAG) - , intent.getParcelableArrayListExtra(EntranceUtils.KEY_KAIFU_LIST) - , intent.getStringExtra(EntranceUtils.KEY_GAMEID)) + , intent.getParcelableArrayListExtra(EntranceUtils.KEY_KAIFU_LIST) ?: arrayListOf() + , intent.getStringExtra(EntranceUtils.KEY_GAMEID) ?: "") mViewModel?.postResult?.observe(this, androidx.lifecycle.Observer { it -> if (it == null) { toast(R.string.post_failure_hint) @@ -167,7 +167,7 @@ class AddKaiFuActivity : ToolBarActivity() { val text = "取消 清空" val spannableString = SpannableString(text) spannableString.setSpan(object : ClickableSpan() { - override fun onClick(widget: View?) { + override fun onClick(widget: View) { timeSelectListener.onTimeSelect(null, null) } }, text.length - 2, text.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) 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 00075e18f8..665d61d240 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 @@ -27,12 +27,12 @@ class AddKaiFuViewModel(application: Application) : AndroidViewModel(application private var mGameId = "" - fun initData(entity: ServerCalendarEntity, allKaifuList: ArrayList, gameId: String) { + fun initData(entity: ServerCalendarEntity?, allKaifuList: ArrayList, gameId: String) { mAllKaifuList = allKaifuList mGameId = gameId - entity.setNote(entity.getNote() + " +") // 第一条 添加+(号) - if (entity.remark.isNullOrEmpty()) entity.remark = "-" - calendarList.add(entity) + entity?.setNote(entity.getNote() + " +") // 第一条 添加+(号) + if (entity?.remark.isNullOrEmpty()) entity?.remark = "-" + if (entity != null) calendarList.add(entity) for (i in 0 until 5) { calendarList.add(ServerCalendarEntity()) } 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 6bde4d1405..bbb550b43b 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 @@ -30,7 +30,7 @@ class PatchKaifuActivity : ToolBarActivity() { setNavigationTitle("修改开服") mViewModel = ViewModelProviders.of(this).get(PatchKaifuViewModel::class.java) - mViewModel?.initData(intent.getParcelableExtra(ServerCalendarEntity.TAG), intent.getStringExtra(EntranceUtils.KEY_GAMEID)) + mViewModel?.initData(intent.getParcelableExtra(ServerCalendarEntity.TAG), intent.getStringExtra(EntranceUtils.KEY_GAMEID) ?: "") mViewModel?.postResult?.observe(this, Observer { if (it != null) { val intent = 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 e58d0bc1c1..9a70497a24 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 @@ -25,7 +25,7 @@ class PatchKaifuViewModel(application: Application) : AndroidViewModel(applicati var gameId: String? = null - fun initData(serverEntity: ServerCalendarEntity, gameId: String) { + fun initData(serverEntity: ServerCalendarEntity?, gameId: String) { this.serverEntity = serverEntity this.gameId = gameId } 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 a232830691..f6f8106725 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 @@ -63,11 +63,12 @@ class GameVideoActivity : ToolBarActivity() { mBinding.tabIndicator.setIndicatorWidth(20) // view model - val factory = GameVideoViewModel.Factory(application, gameId) + val factory = GameVideoViewModel.Factory(application, gameId ?: "") 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) 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 30912755be..634d09aedb 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 @@ -109,7 +109,7 @@ class UploadVideoActivity : ToolBarActivity() { } else if (requestCode == REQUEST_CODE_IMAGE_CROP && resultCode == Activity.RESULT_OK) { if (data != null) { val imagePath = data.getStringExtra(CropImageActivity.RESULT_CLIP_PATH) - mUpdatedPosterPath = imagePath + mUpdatedPosterPath = imagePath?:"" mBinding.videoPoster.setImageURI("file://$imagePath") LogUtils.logVideoStreamingUpload("更换封面", mPath, mEntranceLink, "") checkPostButtonStatus() @@ -584,10 +584,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) + bmp?.compress(Bitmap.CompressFormat.PNG, 100, out) } } catch (e: java.lang.Exception) { e.printStackTrace() diff --git a/dependencies.gradle b/dependencies.gradle index 72fe54597c..6b41d361a0 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,7 +1,7 @@ ext { //Android - buildToolsVersion = "28.0.3" - compileSdkVersion = 28 + buildToolsVersion = "30.0.2" + compileSdkVersion = 30 minSdkVersion = 16 targetSdkVersion = 26 diff --git a/libraries/LGLibrary b/libraries/LGLibrary index ea38b1831f..605b7ea274 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit ea38b1831fe20c04b8b21a89f75808dddb06211f +Subproject commit 605b7ea274fab941a12a75ed171a1835d79d2adf