Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
Widget
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 Widget
Widget
Commits
b9ea641f
Commit
b9ea641f
authored
Nov 15, 2021
by
储小杉
🃏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完善浮框。
parent
8a94c972
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
169 additions
and
4 deletions
+169
-4
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+1
-0
App.kt
app/src/main/java/com/qimai/android/widget/App.kt
+0
-2
MainActivity.kt
app/src/main/java/com/qimai/android/widget/MainActivity.kt
+2
-1
build.gradle
log/build.gradle
+2
-1
AndroidManifest.xml
log/src/main/AndroidManifest.xml
+1
-0
LogUp.kt
log/src/main/java/com/qimai/log/LogUp.kt
+9
-0
Utils.kt
log/src/main/java/com/qimai/log/Utils.kt
+34
-0
LogUpFloatView.kt
log/src/main/java/com/qimai/log/ui/LogUpFloatView.kt
+89
-0
circle_log.xml
log/src/main/res/drawable/circle_log.xml
+5
-0
float_logup.xml
log/src/main/res/layout/float_logup.xml
+26
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
b9ea641f
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.SYSTEM_ALERT_WINDOW"
/>
<uses-permission
android:name=
"android.permission.READ_PRIVILEGED_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.READ_PRIVILEGED_PHONE_STATE"
/>
<application
<application
...
...
app/src/main/java/com/qimai/android/widget/App.kt
View file @
b9ea641f
package
com.qimai.android.widget
package
com.qimai.android.widget
import
android.app.Application
import
android.app.Application
import
com.qimai.log.LogUp
import
zs.qimai.com.printer2.utils.PrintManagerUtils
import
zs.qimai.com.printer2.utils.PrintManagerUtils
class
App
:
Application
()
{
class
App
:
Application
()
{
override
fun
onCreate
()
{
override
fun
onCreate
()
{
super
.
onCreate
()
super
.
onCreate
()
PrintManagerUtils
.
getInstance
().
init
(
this
)
PrintManagerUtils
.
getInstance
().
init
(
this
)
LogUp
.
init
(
this
,
true
)
}
}
}
}
\ No newline at end of file
app/src/main/java/com/qimai/android/widget/MainActivity.kt
View file @
b9ea641f
...
@@ -9,6 +9,7 @@ import android.widget.TextView
...
@@ -9,6 +9,7 @@ import android.widget.TextView
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
com.qimai.android.widgetlib.popup.QmTipOverlayDrawable
import
com.qimai.android.widgetlib.popup.QmTipOverlayDrawable
import
com.qimai.android.widgetlib.toast.HolderContext
import
com.qimai.android.widgetlib.toast.HolderContext
import
com.qimai.log.LogUp
import
com.qimai.log.ui.LogUpActivity
import
com.qimai.log.ui.LogUpActivity
import
kotlinx.android.synthetic.main.activity_main.*
import
kotlinx.android.synthetic.main.activity_main.*
...
@@ -18,6 +19,7 @@ class MainActivity : AppCompatActivity() {
...
@@ -18,6 +19,7 @@ class MainActivity : AppCompatActivity() {
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
activity_main
)
setContentView
(
R
.
layout
.
activity_main
)
HolderContext
.
getInstance
().
register
{
this
}
HolderContext
.
getInstance
().
register
{
this
}
LogUp
.
init
(
this
,
true
)
findViewById
<
Button
>(
R
.
id
.
commonPop
).
setOnClickListener
{
findViewById
<
Button
>(
R
.
id
.
commonPop
).
setOnClickListener
{
// ToastUtils.getInstance().showCenter("测试测试")
// ToastUtils.getInstance().showCenter("测试测试")
...
@@ -60,6 +62,5 @@ class MainActivity : AppCompatActivity() {
...
@@ -60,6 +62,5 @@ class MainActivity : AppCompatActivity() {
}
}
keyboard
.
btnText
=
"结账"
keyboard
.
btnText
=
"结账"
keyboard
.
invalidate
()
keyboard
.
invalidate
()
}
}
}
}
log/build.gradle
View file @
b9ea641f
...
@@ -68,10 +68,11 @@ dependencies {
...
@@ -68,10 +68,11 @@ dependencies {
implementation
"androidx.lifecycle:lifecycle-runtime-ktx:2.3.1"
implementation
"androidx.lifecycle:lifecycle-runtime-ktx:2.3.1"
implementation
'com.dianping.android.sdk:logan:1.2.4'
implementation
'com.dianping.android.sdk:logan:1.2.4'
implementation
project
(
path:
':widgetlib'
)
implementation
project
(
path:
':widgetlib'
)
implementation
"com.github.princekin-f:EasyFloat:2.0.3"
}
}
group
'com.qmai.android.log'
group
'com.qmai.android.log'
version
'1.
0.1.2
1-SNAPSHOT'
version
'1.1-SNAPSHOT'
gradlePublish
{
gradlePublish
{
...
...
log/src/main/AndroidManifest.xml
View file @
b9ea641f
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore=
"ScopedStorage"
/>
tools:ignore=
"ScopedStorage"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.SYSTEM_ALERT_WINDOW"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<application>
<application>
...
...
log/src/main/java/com/qimai/log/LogUp.kt
View file @
b9ea641f
...
@@ -8,6 +8,8 @@ import com.blankj.utilcode.util.TimeUtils
...
@@ -8,6 +8,8 @@ import com.blankj.utilcode.util.TimeUtils
import
com.dianping.logan.Logan
import
com.dianping.logan.Logan
import
com.dianping.logan.LoganConfig
import
com.dianping.logan.LoganConfig
import
com.qimai.log.bean.LogUpBean
import
com.qimai.log.bean.LogUpBean
import
com.qimai.log.ui.LogUpFloatView
import
kotlinx.coroutines.*
import
java.io.ByteArrayOutputStream
import
java.io.ByteArrayOutputStream
import
java.io.File
import
java.io.File
import
java.io.FileInputStream
import
java.io.FileInputStream
...
@@ -65,6 +67,13 @@ object LogUp {
...
@@ -65,6 +67,13 @@ object LogUp {
Logan
.
setOnLoganProtocolStatus
{
cmd
,
code
->
Logan
.
setOnLoganProtocolStatus
{
cmd
,
code
->
LogUtils
.
d
(
"clogan > cmd : $cmd | code : $code"
)
LogUtils
.
d
(
"clogan > cmd : $cmd | code : $code"
)
}
}
GlobalScope
.
launch
(
Dispatchers
.
IO
)
{
delay
(
1
_000
)
withContext
(
Dispatchers
.
Main
)
{
LogUpFloatView
.
show
()
}
}
}
}
/**
/**
...
...
log/src/main/java/com/qimai/log/Utils.kt
0 → 100644
View file @
b9ea641f
package
com.qimai.log
import
android.view.View
/**
* Created by chuxiaoshan on 2021/11/15 20:25
*
* Description:
*/
/**
* 扩展属性参数:用于标记是否可点击
*/
private
var
<
T
:
View
>
T
.
viewClickable
:
Boolean
get
()
=
if
(
getTag
(
1
+
2
shl
24
)
!=
null
)
getTag
(
1
+
2
shl
24
)
as
Boolean
else
true
set
(
value
)
{
setTag
(
1
+
2
shl
24
,
value
)
}
/**
* 设置点击监听, 并自定义防抖时间
*
* @receiver T View
* @param time Long 防抖间隔时长 默认300
* @param action Function1<[@kotlin.ParameterName] View, Unit> 点击事件
*/
fun
<
T
:
View
>
T
.
click
(
time
:
Long
=
300
,
action
:
(
T
:
View
)
->
Unit
)
{
setOnClickListener
{
if
(
viewClickable
)
{
viewClickable
=
false
action
(
it
)
postDelayed
({
viewClickable
=
true
},
time
)
}
}
}
\ No newline at end of file
log/src/main/java/com/qimai/log/ui/LogUpFloatView.kt
0 → 100644
View file @
b9ea641f
package
com.qimai.log.ui
import
android.content.Intent
import
android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import
android.os.Build
import
androidx.constraintlayout.widget.ConstraintLayout
import
com.blankj.utilcode.util.*
import
com.lzf.easyfloat.EasyFloat
import
com.lzf.easyfloat.enums.ShowPattern
import
com.lzf.easyfloat.enums.SidePattern
import
com.qimai.log.R
import
com.qimai.log.click
/**
* Created by chuxiaoshan on 2021/5/27 14:10
*
* Description: 浮框
*/
object
LogUpFloatView
{
//标识浮框的tag
private
const
val
FLOAT_VIEW_TAG
=
"tag_float_view"
/**
* 浮框权限判断与申请
*/
private
fun
requestPermission
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
M
)
{
if
(!
PermissionUtils
.
isGrantedDrawOverlays
())
{
PermissionUtils
.
requestDrawOverlays
(
object
:
PermissionUtils
.
SimpleCallback
{
override
fun
onGranted
()
{
LogUtils
.
d
(
"---1111--->onGranted"
)
initFloat
()
}
override
fun
onDenied
()
{
LogUtils
.
d
(
"---1111--->onDenied"
)
ToastUtils
.
showShort
(
"浮框权限未打开"
)
}
})
}
else
{
initFloat
()
LogUtils
.
d
(
"---1111--->浮框权限本来就是打开的"
)
}
}
else
{
LogUtils
.
d
(
"---1111--->低版本"
)
initFloat
()
}
}
private
fun
initFloat
()
{
try
{
if
(
Build
.
VERSION
.
SDK_INT
<=
Build
.
VERSION_CODES
.
LOLLIPOP_MR1
)
{
EasyFloat
.
dismiss
(
FLOAT_VIEW_TAG
)
}
EasyFloat
.
with
(
Utils
.
getApp
())
.
setTag
(
FLOAT_VIEW_TAG
)
.
setShowPattern
(
ShowPattern
.
FOREGROUND
)
.
setLocation
(
ScreenUtils
.
getScreenWidth
()
-
ConvertUtils
.
dp2px
(
58f
),
ScreenUtils
.
getScreenHeight
()
-
ConvertUtils
.
dp2px
(
200f
)
)
.
setSidePattern
(
SidePattern
.
RESULT_HORIZONTAL
)
.
setImmersionStatusBar
(
true
)
.
setFilter
(
LogUpActivity
::
class
.
java
)
.
setLayout
(
R
.
layout
.
float_logup
)
{
it
.
findViewById
<
ConstraintLayout
>(
R
.
id
.
cl_float_view
).
click
{
Utils
.
getApp
().
startActivity
(
Intent
(
Utils
.
getApp
(),
LogUpActivity
::
class
.
java
).
apply
{
flags
=
FLAG_ACTIVITY_NEW_TASK
})
}
}.
show
()
}
catch
(
e
:
Exception
)
{
LogUtils
.
e
(
"---e--->${e.printStackTrace()}"
)
}
}
/**
* 初始化并显示全局浮框
*/
fun
show
()
{
requestPermission
()
}
}
\ No newline at end of file
log/src/main/res/drawable/circle_log.xml
0 → 100644
View file @
b9ea641f
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"#ffee58"
/>
<corners
android:radius=
"100dp"
/>
</shape>
\ No newline at end of file
log/src/main/res/layout/float_logup.xml
0 → 100644
View file @
b9ea641f
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/cl_float_view"
android:layout_width=
"50dp"
android:layout_height=
"50dp"
android:layout_margin=
"4dp"
android:background=
"@drawable/circle_log"
android:clickable=
"true"
android:clipToPadding=
"false"
android:elevation=
"2dp"
android:focusable=
"true"
>
<TextView
android:id=
"@+id/tv_clear_back"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"LogUp"
android:textColor=
"#666666"
android:textSize=
"14sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
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