Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lib_base
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
sikang
lib_base
Commits
7e856eaf
Commit
7e856eaf
authored
Oct 12, 2018
by
sikang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
fcbdd49a
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
378 additions
and
108 deletions
+378
-108
src/main/AndroidManifest.xml
+2
-2
src/main/java/tech/starwin/base/BaseActivity.java
+1
-1
src/main/java/tech/starwin/base/BasePresenter.java
+1
-1
src/main/java/tech/starwin/impl/HttpObserver.java
+1
-1
src/main/java/tech/starwin/impl/OnEventClickListener.java
+1
-2
src/main/java/tech/starwin/impl/OnNoShakeClickListener.java
+7
-3
src/main/java/tech/starwin/impl/SimpleTabSelectedListener.java
+1
-1
src/main/java/tech/starwin/mvp/presenter/UploadPresenter.java
+1
-8
src/main/java/tech/starwin/mvp/presenter/UserPresenter.java
+1
-1
src/main/java/tech/starwin/service/MsgHandleService.java
+1
-1
src/main/java/tech/starwin/service/MsgInstanceIdService.java
+1
-1
src/main/java/tech/starwin/utils/FireBaseHelper.java
+5
-5
src/main/java/tech/starwin/utils/ui_utils/QMUIHelper.java
+129
-0
src/main/java/tech/starwin/utils/ui_utils/UIHelper.java
+1
-65
src/main/java/tech/starwin/widget/LoadingDialog.java
+25
-9
src/main/java/tech/starwin/widget/PageStateLayout.java
+192
-0
src/main/java/tech/starwin/widget/ProgressDialog.java
+1
-2
src/main/res/layout/base_progress_loading.xml
+7
-5
No files found.
src/main/AndroidManifest.xml
View file @
7e856eaf
...
@@ -71,12 +71,12 @@
...
@@ -71,12 +71,12 @@
android:name=
"firebase_messaging_auto_init_enabled"
android:name=
"firebase_messaging_auto_init_enabled"
android:value=
"false"
/>
android:value=
"false"
/>
<service
android:name=
".
common.
service.MsgHandleService"
>
<service
android:name=
".service.MsgHandleService"
>
<intent-filter>
<intent-filter>
<action
android:name=
"com.google.firebase.MESSAGING_EVENT"
/>
<action
android:name=
"com.google.firebase.MESSAGING_EVENT"
/>
</intent-filter>
</intent-filter>
</service>
</service>
<service
android:name=
".
common.
service.MsgInstanceIdService"
>
<service
android:name=
".service.MsgInstanceIdService"
>
<intent-filter>
<intent-filter>
<action
android:name=
"com.google.firebase.INSTANCE_ID_EVENT"
/>
<action
android:name=
"com.google.firebase.INSTANCE_ID_EVENT"
/>
</intent-filter>
</intent-filter>
...
...
src/main/java/tech/starwin/base/BaseActivity.java
View file @
7e856eaf
...
@@ -23,7 +23,7 @@ import io.reactivex.Observable;
...
@@ -23,7 +23,7 @@ import io.reactivex.Observable;
import
io.reactivex.subjects.BehaviorSubject
;
import
io.reactivex.subjects.BehaviorSubject
;
import
tech.starwin.LibConfig
;
import
tech.starwin.LibConfig
;
import
tech.starwin.R
;
import
tech.starwin.R
;
import
tech.starwin.
common.
service.MsgHandleService
;
import
tech.starwin.service.MsgHandleService
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.utils.PresenterHoler
;
import
tech.starwin.utils.PresenterHoler
;
import
tech.starwin.utils.context_utils.FragmentLauncher
;
import
tech.starwin.utils.context_utils.FragmentLauncher
;
...
...
src/main/java/tech/starwin/base/BasePresenter.java
View file @
7e856eaf
...
@@ -11,7 +11,7 @@ import io.reactivex.schedulers.Schedulers;
...
@@ -11,7 +11,7 @@ import io.reactivex.schedulers.Schedulers;
import
retrofit2.Call
;
import
retrofit2.Call
;
import
retrofit2.Callback
;
import
retrofit2.Callback
;
import
retrofit2.Response
;
import
retrofit2.Response
;
import
tech.starwin.
common.
impl.HttpObserver
;
import
tech.starwin.impl.HttpObserver
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.network.ServiceGenerator
;
import
tech.starwin.network.ServiceGenerator
;
...
...
src/main/java/tech/starwin/
common/
impl/HttpObserver.java
→
src/main/java/tech/starwin/impl/HttpObserver.java
View file @
7e856eaf
package
tech
.
starwin
.
common
.
impl
;
package
tech
.
starwin
.
impl
;
import
io.reactivex.Observer
;
import
io.reactivex.Observer
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.disposables.Disposable
;
...
...
src/main/java/tech/starwin/
common/
impl/OnEventClickListener.java
→
src/main/java/tech/starwin/impl/OnEventClickListener.java
View file @
7e856eaf
package
tech
.
starwin
.
common
.
impl
;
package
tech
.
starwin
.
impl
;
import
android.view.View
;
import
android.view.View
;
import
tech.starwin.utils.FireBaseHelper
;
import
tech.starwin.utils.FireBaseHelper
;
import
tech.starwin.utils.LogUtils
;
/**
/**
* Created by SiKang on 2018/10/11.
* Created by SiKang on 2018/10/11.
...
...
src/main/java/tech/starwin/
common/
impl/OnNoShakeClickListener.java
→
src/main/java/tech/starwin/impl/OnNoShakeClickListener.java
View file @
7e856eaf
package
tech
.
starwin
.
common
.
impl
;
package
tech
.
starwin
.
impl
;
import
android.view.View
;
import
android.view.View
;
...
@@ -6,7 +6,6 @@ import android.view.View;
...
@@ -6,7 +6,6 @@ import android.view.View;
* Created by SiKang on 2018/9/18.
* Created by SiKang on 2018/9/18.
*/
*/
public
abstract
class
OnNoShakeClickListener
extends
OnEventClickListener
{
public
abstract
class
OnNoShakeClickListener
extends
OnEventClickListener
{
public
abstract
void
onNoShakeClick
(
View
view
);
public
int
lockTime
=
1500
;
public
int
lockTime
=
1500
;
...
@@ -27,6 +26,11 @@ public abstract class OnNoShakeClickListener extends OnEventClickListener {
...
@@ -27,6 +26,11 @@ public abstract class OnNoShakeClickListener extends OnEventClickListener {
v
.
setClickable
(
true
);
v
.
setClickable
(
true
);
}
}
},
lockTime
);
},
lockTime
);
onNoShakeClick
(
v
);
onEventClick
(
v
);
}
@Override
public
void
onEventClick
(
View
v
)
{
}
}
}
}
src/main/java/tech/starwin/
common/
impl/SimpleTabSelectedListener.java
→
src/main/java/tech/starwin/impl/SimpleTabSelectedListener.java
View file @
7e856eaf
package
tech
.
starwin
.
common
.
impl
;
package
tech
.
starwin
.
impl
;
import
com.qmuiteam.qmui.widget.QMUITabSegment
;
import
com.qmuiteam.qmui.widget.QMUITabSegment
;
...
...
src/main/java/tech/starwin/mvp/presenter/UploadPresenter.java
View file @
7e856eaf
...
@@ -2,25 +2,18 @@ package tech.starwin.mvp.presenter;
...
@@ -2,25 +2,18 @@ package tech.starwin.mvp.presenter;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.Nullable
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
java.io.File
;
import
java.io.File
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
io.reactivex.functions.BiFunction
;
import
okhttp3.MultipartBody
;
import
okhttp3.ResponseBody
;
import
okhttp3.ResponseBody
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.
common.
impl.HttpObserver
;
import
tech.starwin.impl.HttpObserver
;
import
tech.starwin.mvp.api.UploadApi
;
import
tech.starwin.mvp.api.UploadApi
;
import
tech.starwin.mvp.api.UserApi
;
import
tech.starwin.mvp.beans.EmploymentBean
;
import
tech.starwin.mvp.beans.EmploymentBean
;
import
tech.starwin.mvp.beans.OcrResultBean
;
import
tech.starwin.mvp.beans.OcrResultBean
;
import
tech.starwin.network.ServiceGenerator
;
import
tech.starwin.utils.LoginManager
;
import
tech.starwin.utils.LoginManager
;
import
tech.starwin.utils.MultipartBodyMaker
;
import
tech.starwin.utils.MultipartBodyMaker
;
...
...
src/main/java/tech/starwin/mvp/presenter/UserPresenter.java
View file @
7e856eaf
...
@@ -10,7 +10,7 @@ import io.reactivex.functions.Function;
...
@@ -10,7 +10,7 @@ import io.reactivex.functions.Function;
import
io.reactivex.functions.Predicate
;
import
io.reactivex.functions.Predicate
;
import
okhttp3.ResponseBody
;
import
okhttp3.ResponseBody
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.
common.
impl.HttpObserver
;
import
tech.starwin.impl.HttpObserver
;
import
tech.starwin.mvp.api.UserApi
;
import
tech.starwin.mvp.api.UserApi
;
import
tech.starwin.mvp.beans.EmploymentBean
;
import
tech.starwin.mvp.beans.EmploymentBean
;
import
tech.starwin.mvp.beans.GatewayInfoBean
;
import
tech.starwin.mvp.beans.GatewayInfoBean
;
...
...
src/main/java/tech/starwin/
common/
service/MsgHandleService.java
→
src/main/java/tech/starwin/service/MsgHandleService.java
View file @
7e856eaf
package
tech
.
starwin
.
common
.
service
;
package
tech
.
starwin
.
service
;
import
android.content.Context
;
import
android.content.Context
;
...
...
src/main/java/tech/starwin/
common/
service/MsgInstanceIdService.java
→
src/main/java/tech/starwin/service/MsgInstanceIdService.java
View file @
7e856eaf
package
tech
.
starwin
.
common
.
service
;
package
tech
.
starwin
.
service
;
import
com.google.firebase.iid.FirebaseInstanceId
;
import
com.google.firebase.iid.FirebaseInstanceId
;
import
com.google.firebase.iid.FirebaseInstanceIdService
;
import
com.google.firebase.iid.FirebaseInstanceIdService
;
...
...
src/main/java/tech/starwin/utils/FireBaseHelper.java
View file @
7e856eaf
...
@@ -21,16 +21,16 @@ public class FireBaseHelper {
...
@@ -21,16 +21,16 @@ public class FireBaseHelper {
public
static
final
String
REST_URL
=
"rest_url"
;
public
static
final
String
REST_URL
=
"rest_url"
;
/**
/**
* click埋点,
ITEM_NAM
E = view.getTag()
* click埋点,
CONTENT_TYP
E = view.getTag()
*/
*/
public
static
void
LogClickEventByTag
(
View
view
)
{
public
static
void
LogClickEventByTag
(
View
view
)
{
if
(
view
.
getTag
()
!=
null
&&
view
.
getTag
()
instanceof
String
)
{
if
(
view
.
getTag
()
!=
null
&&
view
.
getTag
()
instanceof
String
)
{
logClickEvent
(
view
.
getContext
(),
(
String
)
view
.
getTag
());
logClickEvent
ByName
(
view
.
getContext
(),
(
String
)
view
.
getTag
());
}
}
}
}
/**
/**
* click埋点
ITEM_NAM
E = view.getText()
* click埋点
CONTENT_TYP
E = view.getText()
*/
*/
public
static
void
LogClickEventByText
(
View
view
)
{
public
static
void
LogClickEventByText
(
View
view
)
{
String
itemName
=
""
;
String
itemName
=
""
;
...
@@ -40,14 +40,14 @@ public class FireBaseHelper {
...
@@ -40,14 +40,14 @@ public class FireBaseHelper {
itemName
=
((
Button
)
view
).
getText
().
toString
();
itemName
=
((
Button
)
view
).
getText
().
toString
();
}
}
if
(!
TextUtils
.
isEmpty
(
itemName
))
{
if
(!
TextUtils
.
isEmpty
(
itemName
))
{
logClickEvent
(
view
.
getContext
(),
itemName
);
logClickEvent
ByName
(
view
.
getContext
(),
itemName
);
}
}
}
}
/**
/**
* click埋点
* click埋点
*/
*/
public
static
void
logClickEvent
(
Context
context
,
String
itemName
)
{
public
static
void
logClickEvent
ByName
(
Context
context
,
String
itemName
)
{
Bundle
bundle
=
new
Bundle
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
FirebaseAnalytics
.
Param
.
CONTENT_TYPE
,
"click_"
+
itemName
);
bundle
.
putString
(
FirebaseAnalytics
.
Param
.
CONTENT_TYPE
,
"click_"
+
itemName
);
FirebaseAnalytics
.
getInstance
(
context
).
logEvent
(
FirebaseAnalytics
.
Event
.
SELECT_CONTENT
,
bundle
);
FirebaseAnalytics
.
getInstance
(
context
).
logEvent
(
FirebaseAnalytics
.
Event
.
SELECT_CONTENT
,
bundle
);
...
...
src/main/java/tech/starwin/utils/ui_utils/QMUIHelper.java
0 → 100644
View file @
7e856eaf
package
tech
.
starwin
.
utils
.
ui_utils
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
android.graphics.Color
;
import
android.graphics.drawable.BitmapDrawable
;
import
android.graphics.drawable.Drawable
;
import
android.support.annotation.DrawableRes
;
import
android.support.annotation.StringRes
;
import
android.support.v4.content.ContextCompat
;
import
android.view.View
;
import
com.qmuiteam.qmui.widget.QMUIEmptyView
;
import
com.qmuiteam.qmui.widget.QMUITabSegment
;
import
com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView
;
import
com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
;
import
tech.starwin.utils.BitmapUtils
;
import
tech.starwin.widget.PageStateLayout
;
/**
* Created by SiKang on 2018/10/12.
*/
public
class
QMUIHelper
{
/**
* 为一个View 套一个 EmptyView外壳,用于展示无数据和重试的情况
*
* @param targetView 需要套壳,加入状态显示的View
* @param emptyText 没有数据时的提示文字
* @param retryText 重试按钮的文字
* @param listener 当pageStateLayout.retry() 被执行时的刷新处理
*/
public
static
PageStateLayout
bindEmptyView
(
View
targetView
,
final
String
emptyText
,
final
String
retryText
,
PageStateLayout
.
OnRetryListener
listener
)
{
//创建一个默认的EmptyView
final
QMUIEmptyView
emptyView
=
new
QMUIEmptyView
(
targetView
.
getContext
());
emptyView
.
setBackgroundColor
(
Color
.
WHITE
);
//给targetView 套壳
final
PageStateLayout
pageStateLayout
=
new
PageStateLayout
.
Builder
(
targetView
)
.
setCustomView
(
emptyView
)
.
setOnRetryListener
(
listener
)
.
create
();
//不同状态的UI处理
pageStateLayout
.
setOnStateChangedListener
(
new
PageStateLayout
.
OnStateChangedListener
()
{
@Override
public
void
onLoading
(
PageStateLayout
.
ViewHolder
holder
)
{
emptyView
.
show
(
true
);
}
@Override
public
void
onError
(
PageStateLayout
.
ViewHolder
holder
)
{
}
@Override
public
void
onEmpty
(
PageStateLayout
.
ViewHolder
holder
)
{
emptyView
.
show
(
false
,
emptyText
,
null
,
retryText
,
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
pageStateLayout
.
retry
();
}
});
}
});
return
pageStateLayout
;
}
/**
* 创建一个(icon + text)类型的Tab按钮
*/
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
return
new
QMUITabSegment
.
Tab
(
ContextCompat
.
getDrawable
(
context
,
normalIcon
),
ContextCompat
.
getDrawable
(
context
,
selectIcon
),
text
,
false
);
}
/**
* 创建一个(icon + text)类型的Tab按钮,并按指定尺寸显示icon
*/
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
int
iconWidtn
,
int
iconHeight
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
Bitmap
normalBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
normalIcon
);
Bitmap
selectBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
selectIcon
);
Drawable
normalDrawble
=
new
BitmapDrawable
(
BitmapUtils
.
scaleBitmap
(
normalBitmap
,
iconWidtn
,
iconHeight
));
Drawable
selectDrawble
=
new
BitmapDrawable
(
BitmapUtils
.
scaleBitmap
(
selectBitmap
,
iconWidtn
,
iconHeight
));
return
new
QMUITabSegment
.
Tab
(
normalDrawble
,
selectDrawble
,
text
,
false
);
}
/**
* 创建一个(text)类型的Tab按钮
*/
public
static
QMUITabSegment
.
Tab
createTab
(
String
text
)
{
return
new
QMUITabSegment
.
Tab
(
text
);
}
/**
* 创建一个只包含 Text 的item按钮
*/
public
static
QMUICommonListItemView
createItemView
(
int
id
,
QMUIGroupListView
groupListView
,
@StringRes
int
titleId
)
{
return
createChevronItemView
(
id
,
groupListView
,
groupListView
.
getContext
().
getString
(
titleId
));
}
public
static
QMUICommonListItemView
createItemCiew
(
int
id
,
QMUIGroupListView
groupListView
,
String
title
)
{
QMUICommonListItemView
itemWithChevron
=
groupListView
.
createItemView
(
title
);
itemWithChevron
.
setId
(
id
);
return
itemWithChevron
;
}
/**
* 创建一个 Text + 右箭头的 item按钮
*/
public
static
QMUICommonListItemView
createChevronItemView
(
int
id
,
QMUIGroupListView
groupListView
,
@StringRes
int
titleId
)
{
return
createChevronItemView
(
id
,
groupListView
,
groupListView
.
getContext
().
getString
(
titleId
));
}
public
static
QMUICommonListItemView
createChevronItemView
(
int
id
,
QMUIGroupListView
groupListView
,
String
title
)
{
QMUICommonListItemView
itemWithChevron
=
createItemCiew
(
id
,
groupListView
,
title
);
itemWithChevron
.
setAccessoryType
(
QMUICommonListItemView
.
ACCESSORY_TYPE_CHEVRON
);
return
itemWithChevron
;
}
}
src/main/java/tech/starwin/utils/ui_utils/UIHelper.java
View file @
7e856eaf
...
@@ -25,15 +25,12 @@ import android.view.inputmethod.InputMethodManager;
...
@@ -25,15 +25,12 @@ import android.view.inputmethod.InputMethodManager;
import
android.widget.EditText
;
import
android.widget.EditText
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
com.qmuiteam.qmui.widget.QMUITabSegment
;
import
com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView
;
import
com.qmuiteam.qmui.widget.grouplist.QMUIGroupListView
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableEmitter
;
import
io.reactivex.ObservableEmitter
;
import
io.reactivex.ObservableOnSubscribe
;
import
io.reactivex.ObservableOnSubscribe
;
import
io.reactivex.schedulers.Schedulers
;
import
io.reactivex.schedulers.Schedulers
;
import
tech.starwin.utils.BitmapUtils
;
import
tech.starwin.utils.BitmapUtils
;
import
tech.starwin.widget.PageStateLayout
;
/**
/**
...
@@ -179,67 +176,6 @@ public class UIHelper {
...
@@ -179,67 +176,6 @@ public class UIHelper {
return
outMetrics
.
heightPixels
;
return
outMetrics
.
heightPixels
;
}
}
/**
* 创建一个(icon + text)类型的Tab按钮
*/
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
return
new
QMUITabSegment
.
Tab
(
ContextCompat
.
getDrawable
(
context
,
normalIcon
),
ContextCompat
.
getDrawable
(
context
,
selectIcon
),
text
,
false
);
}
/**
* 创建一个(icon + text)类型的Tab按钮,并按指定尺寸显示icon
*/
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
int
iconWidtn
,
int
iconHeight
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
Bitmap
normalBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
normalIcon
);
Bitmap
selectBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
selectIcon
);
Drawable
normalDrawble
=
new
BitmapDrawable
(
BitmapUtils
.
scaleBitmap
(
normalBitmap
,
iconWidtn
,
iconHeight
));
Drawable
selectDrawble
=
new
BitmapDrawable
(
BitmapUtils
.
scaleBitmap
(
selectBitmap
,
iconWidtn
,
iconHeight
));
return
new
QMUITabSegment
.
Tab
(
normalDrawble
,
selectDrawble
,
text
,
false
);
}
/**
* 创建一个(text)类型的Tab按钮
*/
public
static
QMUITabSegment
.
Tab
createTab
(
String
text
)
{
return
new
QMUITabSegment
.
Tab
(
text
);
}
/**
* 创建一个只包含 Text 的item按钮
*/
public
static
QMUICommonListItemView
createItemView
(
int
id
,
QMUIGroupListView
groupListView
,
@StringRes
int
titleId
)
{
return
createChevronItemView
(
id
,
groupListView
,
groupListView
.
getContext
().
getString
(
titleId
));
}
public
static
QMUICommonListItemView
createItemCiew
(
int
id
,
QMUIGroupListView
groupListView
,
String
title
)
{
QMUICommonListItemView
itemWithChevron
=
groupListView
.
createItemView
(
title
);
itemWithChevron
.
setId
(
id
);
return
itemWithChevron
;
}
/**
* 创建一个 Text + 右箭头的 item按钮
*/
public
static
QMUICommonListItemView
createChevronItemView
(
int
id
,
QMUIGroupListView
groupListView
,
@StringRes
int
titleId
)
{
return
createChevronItemView
(
id
,
groupListView
,
groupListView
.
getContext
().
getString
(
titleId
));
}
public
static
QMUICommonListItemView
createChevronItemView
(
int
id
,
QMUIGroupListView
groupListView
,
String
title
)
{
QMUICommonListItemView
itemWithChevron
=
createItemCiew
(
id
,
groupListView
,
title
);
itemWithChevron
.
setAccessoryType
(
QMUICommonListItemView
.
ACCESSORY_TYPE_CHEVRON
);
return
itemWithChevron
;
}
/**
/**
* 模拟返回键
* 模拟返回键
...
...
src/main/java/tech/starwin/widget/LoadDialog.java
→
src/main/java/tech/starwin/widget/Load
ing
Dialog.java
View file @
7e856eaf
...
@@ -15,34 +15,50 @@ import tech.starwin.R;
...
@@ -15,34 +15,50 @@ import tech.starwin.R;
/**
/**
* Created by SiKang on 2018/9/19.
* Created by SiKang on 2018/9/19.
*/
*/
public
class
LoadDialog
extends
Dialog
{
public
class
LoadingDialog
extends
Dialog
{
private
ObjectAnimator
mLoadAnimation
;
private
ObjectAnimator
mRotationAnimation
;
private
ObjectAnimator
mScaleXAnimation
;
private
ObjectAnimator
mScaleYAnimation
;
public
LoadDialog
(
@NonNull
Context
context
)
{
public
Load
ing
Dialog
(
@NonNull
Context
context
)
{
super
(
context
,
R
.
style
.
style_bg_transparent_dialog
);
super
(
context
,
R
.
style
.
style_bg_transparent_dialog
);
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
base_progress_loading
,
null
,
false
);
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
base_progress_loading
,
null
,
false
);
setContentView
(
view
);
setContentView
(
view
);
setCanceledOnTouchOutside
(
false
);
setCanceledOnTouchOutside
(
false
);
ImageView
rotationView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_loadingImv
);
ImageView
rotationView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_loadingImv
);
ImageView
iconView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_iconImv
);
ImageView
iconView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_iconImv
);
rotationView
.
setImageResource
(
LibConfig
.
LOADING_BACKGROUND
);
rotationView
.
setImageResource
(
LibConfig
.
LOADING_BACKGROUND
);
iconView
.
setImageResource
(
LibConfig
.
LOADING_ICON
);
iconView
.
setImageResource
(
LibConfig
.
LOADING_ICON
);
//初始化动画
mLoadAnimation
=
ObjectAnimator
.
ofFloat
(
rotationView
,
"rotation"
,
0
,
360
);
mRotationAnimation
=
ObjectAnimator
.
ofFloat
(
rotationView
,
"rotation"
,
0
,
360
);
mLoadAnimation
.
setDuration
(
1000
);
mRotationAnimation
.
setDuration
(
1000
);
mLoadAnimation
.
setRepeatCount
(
Animation
.
INFINITE
);
mRotationAnimation
.
setRepeatCount
(
Animation
.
INFINITE
);
mScaleXAnimation
=
ObjectAnimator
.
ofFloat
(
rotationView
,
"scaleX"
,
1
f
,
1.5f
,
1
f
);
mScaleXAnimation
.
setDuration
(
1000
);
mScaleXAnimation
.
setRepeatCount
(
Animation
.
INFINITE
);
mScaleYAnimation
=
ObjectAnimator
.
ofFloat
(
rotationView
,
"scaleY"
,
1
f
,
1.5f
,
1
f
);
mScaleYAnimation
.
setDuration
(
1000
);
mScaleYAnimation
.
setRepeatCount
(
Animation
.
INFINITE
);
}
}
@Override
@Override
public
void
show
()
{
public
void
show
()
{
super
.
show
();
super
.
show
();
mLoadAnimation
.
start
();
mRotationAnimation
.
start
();
mScaleXAnimation
.
start
();
mScaleYAnimation
.
start
();
}
}
@Override
@Override
public
void
dismiss
()
{
public
void
dismiss
()
{
super
.
dismiss
();
super
.
dismiss
();
mLoadAnimation
.
cancel
();
mRotationAnimation
.
cancel
();
mScaleXAnimation
.
cancel
();
mScaleYAnimation
.
cancel
();
}
}
}
}
src/main/java/tech/starwin/widget/PageStateLayout.java
0 → 100644
View file @
7e856eaf
package
tech
.
starwin
.
widget
;
import
android.content.Context
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.Nullable
;
import
android.util.AttributeSet
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.Button
;
import
android.widget.EditText
;
import
android.widget.FrameLayout
;
import
android.widget.ImageButton
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* Created by SiKang on 2018/10/12.
*/
public
class
PageStateLayout
extends
FrameLayout
{
private
View
mStateView
;
private
OnStateChangedListener
onStateChangedListener
;
private
OnRetryListener
onRetryListener
;
private
ViewHolder
viewHolder
;
private
PageStateLayout
(
@NonNull
Context
context
)
{
super
(
context
);
}
private
PageStateLayout
(
@NonNull
Context
context
,
@Nullable
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
private
PageStateLayout
(
@NonNull
Context
context
,
@Nullable
AttributeSet
attrs
,
int
defStyleAttr
)
{
super
(
context
,
attrs
,
defStyleAttr
);
}
private
void
setCustomView
(
@NonNull
View
view
)
{
mStateView
=
view
;
viewHolder
=
new
ViewHolder
(
view
);
addView
(
mStateView
);
}
public
void
setOnStateChangedListener
(
OnStateChangedListener
onStateChangedListener
)
{
this
.
onStateChangedListener
=
onStateChangedListener
;
}
public
void
setOnRetryListener
(
OnRetryListener
onRetryListener
)
{
this
.
onRetryListener
=
onRetryListener
;
}
public
void
showError
()
{
showStateView
();
if
(
onStateChangedListener
!=
null
)
{
onStateChangedListener
.
onError
(
viewHolder
);
}
}
public
void
showLoading
()
{
showStateView
();
if
(
onStateChangedListener
!=
null
)
{
onStateChangedListener
.
onLoading
(
viewHolder
);
}
}
public
void
showEmpty
()
{
showStateView
();
if
(
onStateChangedListener
!=
null
)
{
onStateChangedListener
.
onEmpty
(
viewHolder
);
}
}
public
void
retry
()
{
hide
();
if
(
onRetryListener
!=
null
)
{
onRetryListener
.
onRetry
();
}
}
public
void
hide
()
{
if
(
mStateView
!=
null
)
{
mStateView
.
setVisibility
(
GONE
);
}
}
private
void
showStateView
()
{
if
(
mStateView
!=
null
)
{
mStateView
.
setVisibility
(
VISIBLE
);
}
}
public
static
class
Builder
{
private
PageStateLayout
pageStateLayout
;
public
Builder
(
View
view
)
{
//得到目标父布局,将view记录索引后,从布局中移除
ViewGroup
parent
=
(
ViewGroup
)
view
.
getParent
();
int
index
=
parent
.
indexOfChild
(
view
);
parent
.
removeView
(
view
);
//创建PageStateLayout,并添加到之前view所在的位置
pageStateLayout
=
new
PageStateLayout
(
view
.
getContext
());
parent
.
addView
(
pageStateLayout
,
index
,
view
.
getLayoutParams
());
pageStateLayout
.
addView
(
view
);
}
public
Builder
setCustomView
(
@NonNull
View
view
)
{
pageStateLayout
.
setCustomView
(
view
);
return
this
;
}
public
Builder
setOnStateChangedListener
(
OnStateChangedListener
listener
)
{
pageStateLayout
.
setOnStateChangedListener
(
listener
);
return
this
;
}
public
Builder
setOnRetryListener
(
OnRetryListener
listener
)
{
pageStateLayout
.
setOnRetryListener
(
listener
);
return
this
;
}
public
PageStateLayout
create
()
{
return
pageStateLayout
;
}
}
public
static
class
ViewHolder
{
private
View
view
;
Map
<
Integer
,
View
>
childViews
;
public
ViewHolder
(
View
view
)
{
childViews
=
new
HashMap
<>();
this
.
view
=
view
;
}
public
View
getContentView
()
{
return
view
;
}
public
View
getView
(
int
id
)
{
if
(
childViews
.
containsKey
(
id
))
{
return
childViews
.
get
(
id
);
}
else
{
return
view
.
findViewById
(
id
);
}
}
public
TextView
getTextView
(
int
viewId
)
{
return
(
TextView
)
getView
(
viewId
);
}
public
Button
getButton
(
int
viewId
)
{
return
(
Button
)
getView
(
viewId
);
}
public
ImageView
getImageView
(
int
viewId
)
{
return
(
ImageView
)
getView
(
viewId
);
}
public
ImageButton
getImageButton
(
int
viewId
)
{
return
(
ImageButton
)
getView
(
viewId
);
}
public
EditText
getEditText
(
int
viewId
)
{
return
(
EditText
)
getView
(
viewId
);
}
}
public
interface
OnStateChangedListener
{
void
onLoading
(
ViewHolder
holder
);
void
onError
(
ViewHolder
holder
);
void
onEmpty
(
ViewHolder
holder
);
}
public
interface
OnRetryListener
{
void
onRetry
();
}
}
src/main/java/tech/starwin/widget/ProgressDialog.java
View file @
7e856eaf
...
@@ -8,7 +8,6 @@ import android.support.annotation.NonNull;
...
@@ -8,7 +8,6 @@ import android.support.annotation.NonNull;
import
com.qmuiteam.qmui.widget.dialog.QMUITipDialog
;
import
com.qmuiteam.qmui.widget.dialog.QMUITipDialog
;
import
tech.starwin.utils.ui_utils.DialogFactory
;
import
tech.starwin.utils.ui_utils.DialogFactory
;
import
tech.starwin.widget.LoadDialog
;
/**
/**
...
@@ -21,7 +20,7 @@ public class ProgressDialog {
...
@@ -21,7 +20,7 @@ public class ProgressDialog {
public
ProgressDialog
(
@NonNull
Context
context
)
{
public
ProgressDialog
(
@NonNull
Context
context
)
{
this
.
context
=
context
;
this
.
context
=
context
;
this
.
loadingDialog
=
new
LoadDialog
(
context
);
this
.
loadingDialog
=
new
Load
ing
Dialog
(
context
);
}
}
public
ProgressDialog
(
@NonNull
Dialog
loadingDialog
)
{
public
ProgressDialog
(
@NonNull
Dialog
loadingDialog
)
{
...
...
src/main/res/layout/base_progress_loading.xml
View file @
7e856eaf
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"
wrap_cont
ent"
android:layout_width=
"
match_par
ent"
android:layout_height=
"
wrap_cont
ent"
android:layout_height=
"
match_par
ent"
android:background=
"@android:color/transparent"
>
android:background=
"@android:color/transparent"
>
<TextView
android:layout_width=
"@dimen/x_500"
android:layout_height=
"@dimen/x_500"
/>
<ImageView
<ImageView
android:id=
"@+id/progress_dialog_loadingImv"
android:id=
"@+id/progress_dialog_loadingImv"
android:layout_width=
"@dimen/x_
3
00"
android:layout_width=
"@dimen/x_
2
00"
android:layout_height=
"@dimen/x_
3
00"
android:layout_height=
"@dimen/x_
2
00"
android:layout_centerInParent=
"true"
/>
android:layout_centerInParent=
"true"
/>
<ImageView
<ImageView
...
...
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