Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
2b7d651e
Commit
2b7d651e
authored
Jun 16, 2021
by
张建升
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/supply-chain' into supply-chain
parents
70879fcf
aa4148a0
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
261 additions
and
4 deletions
+261
-4
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/view/StartEndTimePickerView.java
+0
-1
config.gradle
+1
-1
library-common/build.gradle
+1
-1
library-qm-qmui/build.gradle
+1
-1
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/view/StartEndTimePickerView.java
+197
-0
library-ui/src/main/res/layout/layout_start_end_time_picker.xml
+51
-0
library-ui/src/main/res/values/attrs.xml
+10
-0
No files found.
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/view/StartEndTimePickerView.java
View file @
2b7d651e
...
@@ -124,7 +124,6 @@ public class StartEndTimePickerView extends FrameLayout implements View.OnClickL
...
@@ -124,7 +124,6 @@ public class StartEndTimePickerView extends FrameLayout implements View.OnClickL
if
(
viewId
==
R
.
id
.
tv_start_time
||
viewId
==
R
.
id
.
iv_start_time_triangle
)
{
if
(
viewId
==
R
.
id
.
tv_start_time
||
viewId
==
R
.
id
.
iv_start_time_triangle
)
{
startTriangleView
.
toggle
();
startTriangleView
.
toggle
();
time
=
tvStartTime
.
getText
().
toString
();
time
=
tvStartTime
.
getText
().
toString
();
endTime
.
setTime
(
TimeUtils
.
DATE_FORMAT_DATE
.
parse
(
tvEndTime
.
getText
().
toString
()));
endTime
.
setTime
(
TimeUtils
.
DATE_FORMAT_DATE
.
parse
(
tvEndTime
.
getText
().
toString
()));
}
else
{
}
else
{
endTriangleView
.
toggle
();
endTriangleView
.
toggle
();
...
...
config.gradle
View file @
2b7d651e
...
@@ -66,7 +66,7 @@ ext {
...
@@ -66,7 +66,7 @@ ext {
"loadsir"
:
"com.kingja.loadsir:loadsir:1.3.8"
,
"loadsir"
:
"com.kingja.loadsir:loadsir:1.3.8"
,
"lottie"
:
"com.airbnb.android:lottie:3.6.1"
,
"lottie"
:
"com.airbnb.android:lottie:3.6.1"
,
"loadingIndicatorView"
:
"com.wang.avi:library:2.1.3"
,
"loadingIndicatorView"
:
"com.wang.avi:library:2.1.3"
,
"viewpager2"
:
"androidx.viewpager2:viewpager2:1.0.0
-alpha03
"
,
"viewpager2"
:
"androidx.viewpager2:viewpager2:1.0.0"
,
//rx1
//rx1
"rxandroid"
:
"io.reactivex:rxandroid:1.2.1"
,
"rxandroid"
:
"io.reactivex:rxandroid:1.2.1"
,
...
...
library-common/build.gradle
View file @
2b7d651e
...
@@ -75,7 +75,7 @@ dependencies {
...
@@ -75,7 +75,7 @@ dependencies {
compileOnly
rootProject
.
ext
.
dependencies
[
"canary-release"
]
compileOnly
rootProject
.
ext
.
dependencies
[
"canary-release"
]
compileOnly
rootProject
.
ext
.
dependencies
[
"canary-release"
]
compileOnly
rootProject
.
ext
.
dependencies
[
"canary-release"
]
}
}
api
'androidx.viewpager2:viewpager2:1.0.0-alpha03'
api
rootProject
.
ext
.
dependencies
[
"viewpager2"
]
implementation
files
(
'libs\\ecracalib.jar'
)
implementation
files
(
'libs\\ecracalib.jar'
)
testImplementation
rootProject
.
ext
.
dependencies
[
"junit"
]
testImplementation
rootProject
.
ext
.
dependencies
[
"junit"
]
debugImplementation
rootProject
.
ext
.
dependencies
[
"canary-debug"
]
debugImplementation
rootProject
.
ext
.
dependencies
[
"canary-debug"
]
...
...
library-qm-qmui/build.gradle
View file @
2b7d651e
...
@@ -68,7 +68,7 @@ dependencies {
...
@@ -68,7 +68,7 @@ dependencies {
//test
//test
testImplementation
'junit:junit:4.12'
testImplementation
'junit:junit:4.12'
api
'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'
api
'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'
//
compileOnly "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compileOnly
"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
}
// deploy
// deploy
...
...
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/view/StartEndTimePickerView.java
0 → 100644
View file @
2b7d651e
package
com
.
gingersoft
.
gsa
.
cloud
.
ui
.
view
;
import
android.content.Context
;
import
android.content.res.TypedArray
;
import
android.graphics.drawable.Drawable
;
import
android.util.AttributeSet
;
import
android.util.TypedValue
;
import
android.view.View
;
import
android.widget.FrameLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.ui.R
;
import
com.gingersoft.gsa.cloud.ui.utils.TimePickerUtils
;
import
java.text.ParseException
;
import
java.util.Calendar
;
public
class
StartEndTimePickerView
extends
FrameLayout
implements
View
.
OnClickListener
{
private
TextView
tvStartTime
;
private
TriangleView
startTriangleView
;
private
TextView
tvEndTime
;
private
TriangleView
endTriangleView
;
private
onUpdateTimePicker
onUpdateTimePicker
;
private
int
mTextColor
;
private
float
mTextSize
;
private
float
mImgWidth
;
private
float
mImgHeight
;
private
Drawable
mArrowRes
;
private
boolean
showStartTime
;
private
boolean
showEndTime
;
public
StartEndTimePickerView
(
@NonNull
Context
context
)
{
this
(
context
,
null
,
-
1
);
}
public
StartEndTimePickerView
(
@NonNull
Context
context
,
onUpdateTimePicker
onUpdateTimePicker
)
{
this
(
context
);
this
.
onUpdateTimePicker
=
onUpdateTimePicker
;
}
public
StartEndTimePickerView
(
@NonNull
Context
context
,
@Nullable
AttributeSet
attrs
)
{
this
(
context
,
attrs
,
-
1
);
}
public
StartEndTimePickerView
(
@NonNull
Context
context
,
@Nullable
AttributeSet
attrs
,
int
defStyleAttr
)
{
super
(
context
,
attrs
,
defStyleAttr
);
init
(
context
,
attrs
);
}
public
void
setOnUpdateTimePicker
(
StartEndTimePickerView
.
onUpdateTimePicker
onUpdateTimePicker
)
{
this
.
onUpdateTimePicker
=
onUpdateTimePicker
;
}
private
void
init
(
Context
context
,
AttributeSet
attrs
)
{
initTypedArray
(
context
,
attrs
);
View
view
=
View
.
inflate
(
context
,
R
.
layout
.
layout_start_end_time_picker
,
null
);
tvStartTime
=
view
.
findViewById
(
R
.
id
.
tv_start_time
);
startTriangleView
=
view
.
findViewById
(
R
.
id
.
iv_start_time_triangle
);
tvEndTime
=
view
.
findViewById
(
R
.
id
.
tv_end_time
);
endTriangleView
=
view
.
findViewById
(
R
.
id
.
iv_end_time_triangle
);
tvStartTime
.
setTextColor
(
mTextColor
);
tvEndTime
.
setTextColor
(
mTextColor
);
tvStartTime
.
setTextSize
(
TypedValue
.
COMPLEX_UNIT_PX
,
mTextSize
);
tvEndTime
.
setTextSize
(
TypedValue
.
COMPLEX_UNIT_PX
,
mTextSize
);
TextView
tvInterval
=
view
.
findViewById
(
R
.
id
.
tv_time_interval
);
tvInterval
.
setTextSize
(
TypedValue
.
COMPLEX_UNIT_PX
,
mTextSize
);
tvStartTime
.
setVisibility
(
showStartTime
?
VISIBLE
:
GONE
);
tvEndTime
.
setVisibility
(
showEndTime
?
VISIBLE
:
GONE
);
if
(
mArrowRes
!=
null
)
{
startTriangleView
.
setImageDrawable
(
mArrowRes
);
endTriangleView
.
setImageDrawable
(
mArrowRes
);
}
LinearLayout
.
LayoutParams
layoutParams
=
(
LinearLayout
.
LayoutParams
)
startTriangleView
.
getLayoutParams
();
layoutParams
.
width
=
(
int
)
mImgWidth
;
layoutParams
.
height
=
(
int
)
mImgHeight
;
startTriangleView
.
setLayoutParams
(
layoutParams
);
endTriangleView
.
setLayoutParams
(
layoutParams
);
tvStartTime
.
setText
(
TimeUtils
.
getOldDate
(-
7
));
tvEndTime
.
setText
(
TimeUtils
.
getOldDate
(
0
));
tvStartTime
.
setOnClickListener
(
this
);
startTriangleView
.
setOnClickListener
(
this
);
tvEndTime
.
setOnClickListener
(
this
);
endTriangleView
.
setOnClickListener
(
this
);
updateTime
();
this
.
addView
(
view
);
}
private
void
initTypedArray
(
Context
context
,
AttributeSet
attrs
)
{
TypedArray
typedArray
=
context
.
obtainStyledAttributes
(
attrs
,
R
.
styleable
.
StartEndTimePickerView
);
mTextColor
=
typedArray
.
getColor
(
R
.
styleable
.
StartEndTimePickerView_textColor
,
ContextCompat
.
getColor
(
context
,
R
.
color
.
color_18
));
mTextSize
=
typedArray
.
getDimension
(
R
.
styleable
.
StartEndTimePickerView_textSize
,
getResources
().
getDimension
(
R
.
dimen
.
dp_10
));
mImgWidth
=
typedArray
.
getDimension
(
R
.
styleable
.
StartEndTimePickerView_imgWidth
,
getResources
().
getDimension
(
R
.
dimen
.
dp_8
));
mImgHeight
=
typedArray
.
getDimension
(
R
.
styleable
.
StartEndTimePickerView_imgHeight
,
getResources
().
getDimension
(
R
.
dimen
.
dp_5
));
mArrowRes
=
typedArray
.
getDrawable
(
R
.
styleable
.
StartEndTimePickerView_arrowRes
);
showStartTime
=
typedArray
.
getBoolean
(
R
.
styleable
.
StartEndTimePickerView_showStartTime
,
true
);
showEndTime
=
typedArray
.
getBoolean
(
R
.
styleable
.
StartEndTimePickerView_showEndTime
,
true
);
typedArray
.
recycle
();
}
@Override
public
void
onClick
(
View
v
)
{
int
viewId
=
v
.
getId
();
try
{
String
time
;
Calendar
startTime
=
Calendar
.
getInstance
();
startTime
.
set
(
Calendar
.
DAY_OF_YEAR
,
startTime
.
getActualMinimum
(
Calendar
.
DAY_OF_YEAR
));
//今年第一天
Calendar
endTime
=
Calendar
.
getInstance
();
if
(
viewId
==
R
.
id
.
tv_start_time
||
viewId
==
R
.
id
.
iv_start_time_triangle
)
{
startTriangleView
.
toggle
();
time
=
tvStartTime
.
getText
().
toString
();
endTime
.
setTime
(
TimeUtils
.
DATE_FORMAT_DATE
.
parse
(
tvEndTime
.
getText
().
toString
()));
}
else
{
endTriangleView
.
toggle
();
time
=
tvEndTime
.
getText
().
toString
();
startTime
.
setTime
(
TimeUtils
.
DATE_FORMAT_DATE
.
parse
(
tvStartTime
.
getText
().
toString
()));
}
Calendar
cal
=
Calendar
.
getInstance
();
try
{
//設置默認時間為當前的起止時間
cal
.
setTime
(
TimeUtils
.
DATE_FORMAT_DATE
.
parse
(
time
));
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
//打開時間選擇器
TimePickerUtils
.
showReportTimePicker
(
v
.
getContext
(),
startTime
,
endTime
,
cal
,
(
date
,
v1
)
->
{
if
(
viewId
==
R
.
id
.
tv_start_time
||
viewId
==
R
.
id
.
iv_start_time_triangle
)
{
tvStartTime
.
setText
(
TimeUtils
.
DATE_FORMAT_DATE
.
format
(
date
));
}
else
{
tvEndTime
.
setText
(
TimeUtils
.
DATE_FORMAT_DATE
.
format
(
date
));
}
updateTime
();
}).
setOnDismissListener
(
o
->
{
if
(
startTriangleView
.
isOpen
())
{
startTriangleView
.
toggle
();
}
else
if
(
endTriangleView
.
isOpen
())
{
endTriangleView
.
toggle
();
}
});
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
private
void
updateTime
()
{
if
(
onUpdateTimePicker
!=
null
)
{
onUpdateTimePicker
.
onUpdateTime
(
tvStartTime
.
getText
().
toString
(),
tvEndTime
.
getText
().
toString
());
}
}
public
interface
onUpdateTimePicker
{
void
onUpdateTime
(
String
startTime
,
String
endTime
);
}
public
StartEndTimePickerView
setStartTime
(
String
startTime
)
{
tvStartTime
.
setText
(
startTime
);
return
this
;
}
public
StartEndTimePickerView
setEndTime
(
String
endTime
)
{
tvEndTime
.
setText
(
endTime
);
return
this
;
}
public
String
getStartTime
()
{
if
(
tvStartTime
!=
null
)
{
return
tvStartTime
.
getText
().
toString
();
}
return
TimeUtils
.
getOldDate
(-
7
);
}
public
String
getEndTime
()
{
if
(
tvEndTime
!=
null
)
{
return
tvEndTime
.
getText
().
toString
();
}
return
TimeUtils
.
getOldDate
(
0
);
}
}
library-ui/src/main/res/layout/layout_start_end_time_picker.xml
0 → 100644
View file @
2b7d651e
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
xmlns:tools=
"http://schemas.android.com/tools"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_start_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textColor=
"#181818"
tools:text=
"2020-02-14"
android:textSize=
"@dimen/sp_10"
/>
<com.gingersoft.gsa.cloud.ui.view.TriangleView
android:id=
"@+id/iv_start_time_triangle"
android:layout_width=
"@dimen/dp_10"
android:layout_height=
"@dimen/dp_5"
android:paddingLeft=
"@dimen/dp_2"
app:trv_direction=
"bottom"
/>
<TextView
android:id=
"@+id/tv_time_interval"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_7"
android:text=
"到"
android:textColor=
"#999"
android:textSize=
"@dimen/sp_10"
/>
<TextView
android:id=
"@+id/tv_end_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_7"
tools:text=
"2020-02-14"
android:textColor=
"#181818"
android:textSize=
"@dimen/sp_10"
/>
<com.gingersoft.gsa.cloud.ui.view.TriangleView
android:id=
"@+id/iv_end_time_triangle"
android:layout_width=
"@dimen/dp_8"
android:layout_height=
"@dimen/dp_5"
android:layout_marginLeft=
"@dimen/dp_2"
app:trv_direction=
"bottom"
/>
</LinearLayout>
\ No newline at end of file
library-ui/src/main/res/values/attrs.xml
View file @
2b7d651e
...
@@ -812,4 +812,13 @@
...
@@ -812,4 +812,13 @@
<attr
name=
"sEditTextSize"
format=
"dimension"
/>
<attr
name=
"sEditTextSize"
format=
"dimension"
/>
<attr
name=
"sEditActiveLineColor"
format=
"color"
/>
<attr
name=
"sEditActiveLineColor"
format=
"color"
/>
</declare-styleable>
</declare-styleable>
<declare-styleable
name=
"StartEndTimePickerView"
>
<attr
name=
"textColor"
format=
"color"
/>
<attr
name=
"textSize"
format=
"dimension"
/>
<attr
name=
"imgWidth"
format=
"dimension"
/>
<attr
name=
"imgHeight"
format=
"dimension"
/>
<attr
name=
"arrowRes"
format=
"reference"
/>
<attr
name=
"showStartTime"
format=
"boolean"
/>
<attr
name=
"showEndTime"
format=
"boolean"
/>
</declare-styleable>
</resources>
</resources>
\ 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