Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
android_flowbox
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
android
android_flowbox
Commits
56c62360
Commit
56c62360
authored
Jul 29, 2021
by
jyx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
信息流预加载逻辑修改
parent
4969f74e
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1578 additions
and
69 deletions
+1578
-69
MintsApplication.java
app/src/main/java/com/mints/flowbox/MintsApplication.java
+9
-11
AppOutScreenGroMoreCarrierExpressManager.kt
...ts/flowbox/ad/AppOutScreenGroMoreCarrierExpressManager.kt
+726
-0
AppOutSimpleGroMoreCarrierExpressManager.kt
...ts/flowbox/ad/AppOutSimpleGroMoreCarrierExpressManager.kt
+726
-0
ExpressAdCallback.kt
app/src/main/java/com/mints/flowbox/ad/ExpressAdCallback.kt
+14
-0
PreCsjGroMoreVideoAdManager.java
...m/mints/flowbox/ad/video/PreCsjGroMoreVideoAdManager.java
+1
-2
OutAppRouter.kt
...src/main/java/com/mints/flowbox/keepalive/OutAppRouter.kt
+7
-5
ScreenObserver.kt
...java/com/mints/flowbox/keepalive/screen/ScreenObserver.kt
+4
-3
ApkActivity.kt
...a/com/mints/flowbox/ui/activitys/keepalive/ApkActivity.kt
+23
-6
BoostFastActivity.kt
...mints/flowbox/ui/activitys/keepalive/BoostFastActivity.kt
+25
-7
ScreenActivity.kt
...om/mints/flowbox/ui/activitys/keepalive/ScreenActivity.kt
+16
-18
TransparentActivity.kt
...nts/flowbox/ui/activitys/keepalive/TransparentActivity.kt
+4
-2
TriggerActivity.kt
...m/mints/flowbox/ui/activitys/keepalive/TriggerActivity.kt
+22
-8
WifiView.java
app/src/main/java/com/mints/flowbox/ui/widgets/WifiView.java
+1
-2
IntentUtils.java
...n/java/com/mints/flowbox/utils/keepalive/IntentUtils.java
+0
-5
No files found.
app/src/main/java/com/mints/flowbox/MintsApplication.java
View file @
56c62360
...
...
@@ -38,8 +38,6 @@ import com.mints.flowbox.ui.activitys.keepalive.TriggerActivity;
import
com.mints.flowbox.utils.ForegroundOrBackground
;
import
com.mints.flowbox.utils.LogUtil
;
import
com.mints.flowbox.utils.SystemUtils
;
import
com.mints.flowbox.utils.keepalive.IntentUtils
;
import
com.mints.flowbox.utils.keepalive.ScreenLockerUtils
;
import
com.module.legacy.oreo.RegisterJobUtils
;
import
com.orhanobut.logger.AndroidLogAdapter
;
import
com.orhanobut.logger.FormatStrategy
;
...
...
@@ -225,15 +223,15 @@ public class MintsApplication extends BaseApp {
BatteryWatch
.
getInstance
(
this
).
begin
(
new
BatteryWatch
.
BatteryStateListener
()
{
@Override
public
void
onCharging
()
{
if
(
IntentUtils
.
isRunningForeground
(
MintsApplication
.
getContext
()))
{
return
;
}
if
(
ScreenLockerUtils
.
INSTANCE
.
canShowScreenLocker
(
mContext
))
{
return
;
}
if
(
WifiDataManager
.
INSTANCE
.
getBatteryOn
())
{
OutAppRouter
.
INSTANCE
.
showScreenActivity
();
}
//
if (IntentUtils.isRunningForeground(MintsApplication.getContext())) {
//
return;
//
}
//
if (ScreenLockerUtils.INSTANCE.canShowScreenLocker(mContext)) {
//
return;
//
}
//
if (WifiDataManager.INSTANCE.getBatteryOn()) {
//
OutAppRouter.INSTANCE.showScreenActivity();
//
}
}
@Override
...
...
app/src/main/java/com/mints/flowbox/ad/AppOutScreenGroMoreCarrierExpressManager.kt
0 → 100644
View file @
56c62360
This diff is collapsed.
Click to expand it.
app/src/main/java/com/mints/flowbox/ad/AppOutSimpleGroMoreCarrierExpressManager.kt
0 → 100644
View file @
56c62360
This diff is collapsed.
Click to expand it.
app/src/main/java/com/mints/flowbox/ad/ExpressAdCallback.kt
0 → 100644
View file @
56c62360
package
com.mints.flowbox.ad
import
android.widget.FrameLayout
/**
*
* @author jyx
* @date 2021/7/29
* @des
*/
interface
ExpressAdCallback
{
fun
loadSuccess
(
adView
:
FrameLayout
?)
// fun loadingFail()
}
\ No newline at end of file
app/src/main/java/com/mints/flowbox/ad/video/PreCsjGroMoreVideoAdManager.java
View file @
56c62360
...
...
@@ -314,9 +314,8 @@ public class PreCsjGroMoreVideoAdManager extends BaseVideoAd {
LogUtil
.
d
(
TAG
,
"广告关闭:onRewardedAdShow adcode="
+
adcode
+
" ecpm="
+
ecpm
+
" adSource="
+
adSource
);
// 数据重置
adcode
=
""
;
adcode
=
""
;
ecpm
=
""
;
adSource
=
0
;
...
...
app/src/main/java/com/mints/flowbox/keepalive/OutAppRouter.kt
View file @
56c62360
...
...
@@ -5,7 +5,8 @@ import android.content.Context
import
android.content.Intent
import
android.net.Uri
import
com.mints.flowbox.MintsApplication
import
com.mints.flowbox.ad.express.ExpressManager
import
com.mints.flowbox.ad.AppOutScreenGroMoreCarrierExpressManager
import
com.mints.flowbox.ad.AppOutSimpleGroMoreCarrierExpressManager
import
com.mints.flowbox.ui.activitys.keepalive.ApkActivity
import
com.mints.flowbox.ui.activitys.keepalive.ScreenActivity
import
com.mints.flowbox.ui.activitys.keepalive.TransPlaceActivity
...
...
@@ -35,7 +36,7 @@ object OutAppRouter {
}
// 预加载信息流
ExpressManager
.
loadAppOutExpress
()
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
loadADFrameLayout
()
// 应用在前台,则不展示
if
(
ForegroundOrBackground
.
isForeground2
())
{
...
...
@@ -52,7 +53,8 @@ object OutAppRouter {
* 展示锁屏页面
*/
fun
showScreenActivity
()
{
ExpressManager
.
loadAppOutExpress
(
true
)
// 预加载信息流
AppOutScreenGroMoreCarrierExpressManager
.
instance
.
loadADFrameLayout
()
val
intent
=
Intent
(
MintsApplication
.
getContext
(),
ScreenActivity
::
class
.
java
)
if
(!
PhoneBrandUtils
.
isOppo
())
{
...
...
@@ -100,7 +102,7 @@ object OutAppRouter {
}
// 预加载信息流
ExpressManager
.
loadAppOutExpress
()
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
loadADFrameLayout
()
val
intent
=
Intent
(
MintsApplication
.
getContext
(),
TriggerActivity
::
class
.
java
)
intent
.
putExtra
(
TriggerActivity
.
TRIGGER_TYPE
,
currentType
)
...
...
@@ -120,7 +122,7 @@ object OutAppRouter {
}
// 预加载信息流
ExpressManager
.
loadAppOutExpress
()
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
loadADFrameLayout
()
var
realType
=
currentType
...
...
app/src/main/java/com/mints/flowbox/keepalive/screen/ScreenObserver.kt
View file @
56c62360
...
...
@@ -18,10 +18,10 @@ import com.activityutil.ContextLike
import
com.external.OutAppActivity
import
com.main.ScreenMonitor
import
com.mints.flowbox.BuildConfig
import
com.mints.flowbox.ad.AppOutScreenGroMoreCarrierExpressManager
import
com.mints.flowbox.manager.wifi.WifiDataManager
import
com.mints.flowbox.ui.activitys.keepalive.ScreenActivity
import
com.mints.flowbox.utils.ForegroundOrBackground
import
com.mints.flowbox.utils.LogUtil
import
com.mints.flowbox.utils.keepalive.IntentUtils
import
com.mints.flowbox.utils.keepalive.ScreenLockerUtils
import
com.module.account.daemon.ScreenStatusMonitor
...
...
@@ -170,6 +170,8 @@ class ScreenLockerObserver(private val context: Context) {
// )
if
(!
WifiDataManager
.
getLockOn
())
return
AppOutScreenGroMoreCarrierExpressManager
.
instance
.
loadADFrameLayout
()
when
(
intent
?.
action
)
{
ScreenMonitor
.
MY_SCREEN_OFF
,
Intent
.
ACTION_SCREEN_OFF
,
ACTION_SCREENCHECKER_OFF
,
...
...
@@ -261,7 +263,7 @@ class ScreenLockerObserver(private val context: Context) {
}
private
fun
onHandleScreenOff
(
context
:
Context
,
isPowerDisconnected
:
Boolean
=
false
)
{
if
(
IntentUtils
.
isRunningForeground
(
context
)
&&
ForegroundOrBackground
.
getApp_activity
()
!=
null
)
{
if
(
IntentUtils
.
isRunningForeground
(
context
)
&&
ForegroundOrBackground
.
getApp_activity
()
!=
null
&&
ForegroundOrBackground
.
getApp_activity
()
!
is
ScreenActivity
)
{
ForegroundOrBackground
.
getApp_activity
().
moveTaskToBack
(
true
)
}
...
...
@@ -373,7 +375,6 @@ class ScreenLockerObserver(private val context: Context) {
filter
.
addAction
(
Intent
.
ACTION_POWER_CONNECTED
)
filter
.
addAction
(
Intent
.
ACTION_POWER_DISCONNECTED
)
BrandEventLogger
.
logEventWithBrand
(
BaseApp
.
instance
.
eventLogger
,
ScreenConstant
.
EVENT_SCREEN_LOCKER_INIT
,
...
...
app/src/main/java/com/mints/flowbox/ui/activitys/keepalive/ApkActivity.kt
View file @
56c62360
...
...
@@ -3,10 +3,14 @@ package com.mints.flowbox.ui.activitys.keepalive
import
android.os.Bundle
import
android.text.TextUtils
import
android.view.View
import
android.widget.FrameLayout
import
androidx.core.content.ContextCompat
import
com.daimajia.androidanimations.library.Techniques
import
com.daimajia.androidanimations.library.YoYo
import
com.mints.flowbox.R
import
com.mints.flowbox.ad.AppOutScreenGroMoreCarrierExpressManager
import
com.mints.flowbox.ad.AppOutSimpleGroMoreCarrierExpressManager
import
com.mints.flowbox.ad.ExpressAdCallback
import
com.mints.flowbox.ad.express.ExpressManager
import
com.mints.flowbox.common.Constant
import
com.mints.flowbox.ui.activitys.CleanActivity
...
...
@@ -19,6 +23,7 @@ import kotlinx.android.synthetic.main.activity_apk.btnClean
import
kotlinx.android.synthetic.main.activity_apk.fl_ad
import
kotlinx.android.synthetic.main.activity_apk.iv_close
import
kotlinx.android.synthetic.main.activity_apk.tvInfo
import
kotlinx.android.synthetic.main.activity_screen.*
import
kotlin.random.Random
/**
...
...
@@ -116,12 +121,22 @@ class ApkActivity : BaseActivity() {
*/
private
fun
initExpress
()
{
try
{
if
(
fl_ad
!=
null
&&
ExpressManager
.
getAppOutExpressFrameLayout
()
!=
null
)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
ExpressManager
.
getAppOutExpressFrameLayout
())
}
else
{
ExpressManager
.
loadAppOutExpress
(
false
,
fl_ad
)
}
AppOutScreenGroMoreCarrierExpressManager
.
instance
.
getAdView
(
object
:
ExpressAdCallback
{
override
fun
loadSuccess
(
adView
:
FrameLayout
?)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
adView
,
ExpressManager
.
lp
)
}
override
fun
loadingFail
()
{
}
})
// if (fl_ad != null && ExpressManager.getAppOutExpressFrameLayout() != null) {
// fl_ad.removeAllViews()
// fl_ad.addView(ExpressManager.getAppOutExpressFrameLayout())
// } else {
// ExpressManager.loadAppOutExpress(false, fl_ad)
// }
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
...
...
@@ -130,6 +145,8 @@ class ApkActivity : BaseActivity() {
override
fun
onDestroy
()
{
rope
?.
stop
()
rope
=
null
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
resetLoadStatus
()
super
.
onDestroy
()
}
...
...
app/src/main/java/com/mints/flowbox/ui/activitys/keepalive/BoostFastActivity.kt
View file @
56c62360
...
...
@@ -6,7 +6,10 @@ import android.os.Bundle
import
android.os.Handler
import
android.os.Looper
import
android.view.View
import
android.widget.FrameLayout
import
com.mints.flowbox.R
import
com.mints.flowbox.ad.AppOutSimpleGroMoreCarrierExpressManager
import
com.mints.flowbox.ad.ExpressAdCallback
import
com.mints.flowbox.ad.express.ExpressManager
import
com.mints.flowbox.ad.wifi.AppOutWifiAdManager
import
com.mints.flowbox.utils.StatusBarUtil
...
...
@@ -130,18 +133,33 @@ class BoostFastActivity : Activity() {
/**初始化信息iyc*/
private
fun
initExpress
()
{
try
{
if
(
fl_ad
!=
null
&&
ExpressManager
.
getAppOutExpressFrameLayout
()
!=
null
)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
ExpressManager
.
getAppOutExpressFrameLayout
(),
ExpressManager
.
lp
)
}
else
{
fl_ad
.
removeAllViews
()
ExpressManager
.
loadAppOutExpress
(
false
,
fl_ad
)
}
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
getAdView
(
object
:
ExpressAdCallback
{
override
fun
loadSuccess
(
adView
:
FrameLayout
?)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
adView
,
ExpressManager
.
lp
)
}
override
fun
loadingFail
()
{
}
})
// if (fl_ad != null && ExpressManager.getAppOutExpressFrameLayout() != null) {
// fl_ad.removeAllViews()
// fl_ad.addView(ExpressManager.getAppOutExpressFrameLayout(), ExpressManager.lp)
// } else {
// fl_ad.removeAllViews()
// ExpressManager.loadAppOutExpress(false, fl_ad)
// }
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
}
override
fun
onDestroy
()
{
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
resetLoadStatus
()
super
.
onDestroy
()
}
override
fun
onBackPressed
()
{
// super.onBackPressed()
}
...
...
app/src/main/java/com/mints/flowbox/ui/activitys/keepalive/ScreenActivity.kt
View file @
56c62360
...
...
@@ -4,12 +4,14 @@ import android.os.Bundle
import
android.os.Handler
import
android.os.Looper
import
android.view.View
import
android.widget.FrameLayout
import
com.mints.flowbox.R
import
com.mints.flowbox.ad.AppOutScreenGroMoreCarrierExpressManager
import
com.mints.flowbox.ad.ExpressAdCallback
import
com.mints.flowbox.ad.express.ExpressManager
import
com.mints.flowbox.ui.activitys.IncreasespeedActivity
import
com.mints.flowbox.ui.activitys.base.OutAppActivity
import
com.mints.flowbox.utils.ForegroundOrBackground
import
com.mints.flowbox.utils.LogUtil
import
com.mints.flowbox.utils.TimeRender
import
com.mints.flowbox.utils.ToolUtil
import
com.mints.library.utils.nodoubleclick.AntiShake
...
...
@@ -30,10 +32,6 @@ class ScreenActivity : OutAppActivity(), View.OnClickListener {
)
},
500
)
ExpressManager
.
loadAppOutExpress
(
true
)
LogUtil
.
d
(
TAG_LOG
,
"ScreenActivity -> onCreate "
)
// val thread = TimeThread(tvDate, tvTime)
// thread.start()
...
...
@@ -49,13 +47,6 @@ class ScreenActivity : OutAppActivity(), View.OnClickListener {
override
fun
onResume
()
{
super
.
onResume
()
resetTime
()
LogUtil
.
d
(
TAG_LOG
,
"ScreenActivity -> onResume "
)
}
override
fun
onStop
()
{
super
.
onStop
()
LogUtil
.
d
(
TAG_LOG
,
"ScreenActivity -> onStop "
)
}
private
fun
resetTime
()
{
...
...
@@ -107,17 +98,24 @@ class ScreenActivity : OutAppActivity(), View.OnClickListener {
/**初始化信息iyc*/
private
fun
initExpress
()
{
try
{
if
(
fl_ad
!=
null
&&
ExpressManager
.
getAppOutExpressFrameLayout
()
!=
null
)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
ExpressManager
.
getAppOutExpressFrameLayout
(),
ExpressManager
.
lp
)
}
else
{
ExpressManager
.
loadAppOutExpress
(
true
,
fl_ad
)
}
AppOutScreenGroMoreCarrierExpressManager
.
instance
.
getAdView
(
object
:
ExpressAdCallback
{
override
fun
loadSuccess
(
adView
:
FrameLayout
?)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
adView
,
ExpressManager
.
lp
)
}
override
fun
loadingFail
()
{}
})
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
}
override
fun
onDestroy
()
{
super
.
onDestroy
()
AppOutScreenGroMoreCarrierExpressManager
.
instance
.
resetLoadStatus
()
}
override
fun
getContentViewLayoutID
()
=
R
.
layout
.
activity_screen
}
\ No newline at end of file
app/src/main/java/com/mints/flowbox/ui/activitys/keepalive/TransparentActivity.kt
View file @
56c62360
...
...
@@ -3,7 +3,7 @@ package com.mints.flowbox.ui.activitys.keepalive
import
android.app.Activity
import
android.os.Bundle
import
com.mints.flowbox.R
import
com.mints.flowbox.ad.
express.
ExpressManager
import
com.mints.flowbox.ad.
AppOutSimpleGroMoreCarrier
ExpressManager
import
com.mints.flowbox.ad.wifi.AppOutWifiAdManager
import
com.mints.flowbox.utils.StatusBarUtil
...
...
@@ -47,8 +47,10 @@ class TransparentActivity : Activity() {
*/
private
fun
loadAd
()
{
AppOutWifiAdManager
.
instance
.
loadWifiAd
(
this
,
mType
)
// 预加载信息流
ExpressManager
.
loadAppOutExpress
()
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
loadADFrameLayout
()
finish
()
}
...
...
app/src/main/java/com/mints/flowbox/ui/activitys/keepalive/TriggerActivity.kt
View file @
56c62360
...
...
@@ -2,12 +2,14 @@ package com.mints.flowbox.ui.activitys.keepalive
import
android.os.Bundle
import
android.view.View
import
android.widget.FrameLayout
import
androidx.core.content.ContextCompat
import
com.daimajia.androidanimations.library.Techniques
import
com.daimajia.androidanimations.library.YoYo
import
com.mints.flowbox.R
import
com.mints.flowbox.ad.AppOutSimpleGroMoreCarrierExpressManager
import
com.mints.flowbox.ad.ExpressAdCallback
import
com.mints.flowbox.ad.express.ExpressManager
import
com.mints.flowbox.ad.wifi.WifiAdManager
import
com.mints.flowbox.common.AppConfig
import
com.mints.flowbox.keepalive.AlarmManager
import
com.mints.flowbox.keepalive.OutAppRouter
...
...
@@ -19,6 +21,7 @@ import com.mints.flowbox.ui.activitys.base.BaseActivity
import
com.mints.flowbox.utils.SpanUtils
import
com.mints.flowbox.utils.SystemUtils
import
com.mints.library.utils.GlideUtils
import
kotlinx.android.synthetic.main.activity_boost_fast.*
import
kotlinx.android.synthetic.main.activity_screen.*
import
kotlinx.android.synthetic.main.activity_timing.*
import
kotlinx.android.synthetic.main.activity_timing.fl_ad
...
...
@@ -231,13 +234,23 @@ class TriggerActivity : BaseActivity() {
/**初始化信息iyc*/
private
fun
initExpress
()
{
try
{
if
(
ExpressManager
.
getAppOutExpressFrameLayout
()
!=
null
)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
ExpressManager
.
getAppOutExpressFrameLayout
(),
ExpressManager
.
lp
)
}
else
{
fl_ad
.
removeAllViews
()
ExpressManager
.
loadAppOutExpress
(
false
,
fl_ad
)
}
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
getAdView
(
object
:
ExpressAdCallback
{
override
fun
loadSuccess
(
adView
:
FrameLayout
?)
{
fl_ad
.
removeAllViews
()
fl_ad
.
addView
(
adView
,
ExpressManager
.
lp
)
}
override
fun
loadingFail
()
{
}
})
// if (ExpressManager.getAppOutExpressFrameLayout() != null) {
// fl_ad.removeAllViews()
// fl_ad.addView(ExpressManager.getAppOutExpressFrameLayout(), ExpressManager.lp)
// } else {
// fl_ad.removeAllViews()
// ExpressManager.loadAppOutExpress(false, fl_ad)
// }
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
...
...
@@ -261,6 +274,7 @@ class TriggerActivity : BaseActivity() {
override
fun
onDestroy
()
{
rope
?.
stop
()
rope
=
null
AppOutSimpleGroMoreCarrierExpressManager
.
instance
.
resetLoadStatus
()
super
.
onDestroy
()
}
...
...
app/src/main/java/com/mints/flowbox/ui/widgets/WifiView.java
View file @
56c62360
...
...
@@ -13,7 +13,6 @@ import android.widget.TextView;
import
androidx.annotation.Nullable
;
import
com.mints.flowbox.R
;
import
com.mints.flowbox.utils.LogUtil
;
import
com.mints.library.utils.nodoubleclick.AntiShake
;
public
class
WifiView
extends
FrameLayout
implements
View
.
OnClickListener
{
...
...
@@ -137,7 +136,7 @@ public class WifiView extends FrameLayout implements View.OnClickListener {
}
public
void
wifiOn
()
{
if
(
m
Count
==
0
||
m
AllIsComplete
)
{
if
(
mAllIsComplete
)
{
wifiOnAndNoBonus
();
return
;
}
...
...
app/src/main/java/com/mints/flowbox/utils/keepalive/IntentUtils.java
View file @
56c62360
...
...
@@ -8,11 +8,6 @@ import android.provider.Settings;
import
com.activityutil.ActivityManagerProxy
;
import
com.activityutil.BringToFrontListener
;
import
com.activityutil.ContextLike
;
import
com.mints.flowbox.MintsApplication
;
import
com.mints.flowbox.ui.activitys.keepalive.ScreenActivity
;
import
com.mints.flowbox.utils.LogUtil
;
import
net.phone.PhoneBrandUtils
;
import
org.jetbrains.annotations.NotNull
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment