Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
polysoft-nafmii
/
polysoft-android
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 0e112132
authored
Jun 10, 2021
by
amateur
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1
1 parent
12411422
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
374 additions
and
87 deletions
app/build.gradle
app/src/androidTest/java/com/polysoft/nafmii/ExampleInstrumentedTest.java
app/src/main/AndroidManifest.xml
app/src/main/java/com/polysoft/nafmii/constants/Constants.java
app/src/main/java/com/polysoft/nafmii/constants/ServerApi.java
app/src/main/java/com/polysoft/nafmii/fragment/AdvertisementFragment.java
app/src/main/java/com/polysoft/nafmii/fragment/FingerprintDialogFragment.java
app/src/main/java/com/polysoft/nafmii/fragment/WebViewFragment.java
app/src/main/java/com/polysoft/nafmii/utils/BitmapUtils.java
app/src/main/java/com/polysoft/nafmii/utils/LogUtil.java
app/src/main/java/com/polysoft/nafmii/utils/StatusBarUtils.java
app/src/main/java/com/polysoft/nafmii/webview/MyWebChromeClient.java
app/src/main/java/com/polysoft/nafmii/webview/WebviewHandler.java
app/src/main/java/com/polysoft/nafmii/webview/X5WebviewUtils.java
app/src/main/java/com/polysoft/nafmii/wechat/WechatApi.java
app/src/main/java/com/polysoft/nafmii/MyApplication.java → app/src/main/java/com/whaty/nafmii/MyApplication.java
app/src/main/java/com/polysoft/nafmii/activity/BaseActivity.java → app/src/main/java/com/whaty/nafmii/activity/BaseActivity.java
app/src/main/java/com/polysoft/nafmii/activity/GuideActivity.java → app/src/main/java/com/whaty/nafmii/activity/GuideActivity.java
app/src/main/java/com/polysoft/nafmii/activity/HomeActivity.java → app/src/main/java/com/whaty/nafmii/activity/HomeActivity.java
app/src/main/java/com/polysoft/nafmii/activity/InputUrlActivity.java → app/src/main/java/com/whaty/nafmii/activity/InputUrlActivity.java
app/src/main/java/com/polysoft/nafmii/activity/MainActivity.java → app/src/main/java/com/whaty/nafmii/activity/MainActivity.java
app/src/main/java/com/polysoft/nafmii/activity/WebviewActivity.java → app/src/main/java/com/whaty/nafmii/activity/WebviewActivity.java
app/src/main/java/com/polysoft/nafmii/activity/home/ModuleUrlHandle.java → app/src/main/java/com/whaty/nafmii/activity/home/ModuleUrlHandle.java
app/src/main/java/com/polysoft/nafmii/activity/home/ModulesFragmentMgr.java → app/src/main/java/com/whaty/nafmii/activity/home/ModulesFragmentMgr.java
app/src/main/java/com/whaty/nafmii/wxapi/WXEntryActivity.java
app/src/main/java/com/whaty/nafmii/wxapi/WXPayEntryActivity.java
app/src/main/res/values/strings.xml
app/src/main/res/xml/provider_paths.xml
app/src/test/java/com/polysoft/nafmii/ExampleUnitTest.java
app/build.gradle
View file @
0e11213
...
@@ -7,7 +7,7 @@ android {
...
@@ -7,7 +7,7 @@ android {
buildToolsVersion
"30.0.3"
buildToolsVersion
"30.0.3"
defaultConfig
{
defaultConfig
{
applicationId
"com.
polysoft
.nafmii"
applicationId
"com.
whaty
.nafmii"
minSdkVersion
24
minSdkVersion
24
targetSdkVersion
29
targetSdkVersion
29
versionCode
1
versionCode
1
...
@@ -17,7 +17,6 @@ android {
...
@@ -17,7 +17,6 @@ android {
buildConfigField
"String"
,
"API_HOST"
,
"\"http://new.ynyc6666.com/shop/server/\""
buildConfigField
"String"
,
"API_HOST"
,
"\"http://new.ynyc6666.com/shop/server/\""
buildConfigField
"String"
,
"WX_APPID"
,
"\"1234567890\""
buildConfigField
"String"
,
"WX_APPID"
,
"\"1234567890\""
buildConfigField
"boolean"
,
"SHOW_INPUT"
,
"true"
buildConfigField
"boolean"
,
"SHOW_INPUT"
,
"true"
ndk
{
ndk
{
abiFilters
"armeabi"
,
"armeabi-v7a"
,
"x86"
,
"mips"
abiFilters
"armeabi"
,
"armeabi-v7a"
,
"x86"
,
"mips"
}
}
...
@@ -39,7 +38,7 @@ android {
...
@@ -39,7 +38,7 @@ android {
resValue
"string"
,
"app_name"
,
"Nafmii-beta"
resValue
"string"
,
"app_name"
,
"Nafmii-beta"
applicationIdSuffix
"beta"
applicationIdSuffix
"beta"
}
}
de
v
{
de
bug
{
minifyEnabled
false
minifyEnabled
false
resValue
"string"
,
"app_name"
,
"Nafmii-dev"
resValue
"string"
,
"app_name"
,
"Nafmii-dev"
applicationIdSuffix
"dev"
applicationIdSuffix
"dev"
...
@@ -49,6 +48,14 @@ android {
...
@@ -49,6 +48,14 @@ android {
sourceCompatibility
JavaVersion
.
VERSION_1_8
sourceCompatibility
JavaVersion
.
VERSION_1_8
targetCompatibility
JavaVersion
.
VERSION_1_8
targetCompatibility
JavaVersion
.
VERSION_1_8
}
}
signingConfigs
{
debug
{
storeFile
file
(
'D:\\studio-workspace\\nafmii\\nafmii.keystore'
)
storePassword
'whaty123'
keyPassword
'whaty123'
keyAlias
'whaty'
}
}
ndkVersion
'20.0.5594570'
ndkVersion
'20.0.5594570'
}
}
...
...
app/src/androidTest/java/com/polysoft/nafmii/ExampleInstrumentedTest.java
deleted
100644 → 0
View file @
1241142
package
com
.
polysoft
.
nafmii
;
import
android.content.Context
;
import
androidx.test.platform.app.InstrumentationRegistry
;
import
androidx.test.ext.junit.runners.AndroidJUnit4
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
static
org
.
junit
.
Assert
.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith
(
AndroidJUnit4
.
class
)
public
class
ExampleInstrumentedTest
{
@Test
public
void
useAppContext
()
{
// Context of the app under test.
Context
appContext
=
InstrumentationRegistry
.
getInstrumentation
().
getTargetContext
();
assertEquals
(
"com.polysoft.nafmill"
,
appContext
.
getPackageName
());
}
}
\ No newline at end of file
\ No newline at end of file
app/src/main/AndroidManifest.xml
View file @
0e11213
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"com.
polysoft
.nafmii"
>
package=
"com.
whaty
.nafmii"
>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<uses-permission
android:name=
"android.permission.USE_FINGERPRINT"
/>
<uses-permission
android:name=
"android.permission.USE_FINGERPRINT"
/>
...
@@ -54,6 +54,16 @@
...
@@ -54,6 +54,16 @@
android:name=
"com.tencent.smtt.export.external.DexClassLoaderProviderService"
android:name=
"com.tencent.smtt.export.external.DexClassLoaderProviderService"
android:label=
"dexopt"
android:label=
"dexopt"
android:process=
":dexopt"
/>
android:process=
":dexopt"
/>
<provider
android:name=
"androidx.core.content.FileProvider"
android:authorities=
"${applicationId}.fileprovider"
android:exported=
"false"
android:grantUriPermissions=
"true"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/provider_paths"
/>
</provider>
</application>
</application>
</manifest>
</manifest>
\ No newline at end of file
\ No newline at end of file
app/src/main/java/com/polysoft/nafmii/constants/Constants.java
View file @
0e11213
...
@@ -3,7 +3,7 @@ package com.polysoft.nafmii.constants;
...
@@ -3,7 +3,7 @@ package com.polysoft.nafmii.constants;
public
class
Constants
{
public
class
Constants
{
public
static
final
String
MODULE_URL_HOME
=
"file:///android_asset/dist/index.html#/"
;
public
static
final
String
MODULE_URL_HOME
=
"file:///android_asset/dist/index.html#/"
;
public
static
final
String
MODULE_URL_MY
=
""
;
public
static
final
String
MODULE_URL_MY
=
"
file:///android_asset/dist/index.html#/user/center
"
;
public
static
final
String
MODULE_URL_MEMBER
=
""
;
public
static
final
String
MODULE_URL_MEMBER
=
""
;
public
static
final
String
MODULE_URL_LEARN
=
"http://debugtbs.qq.com"
;
public
static
final
String
MODULE_URL_LEARN
=
"http://debugtbs.qq.com"
;
...
...
app/src/main/java/com/polysoft/nafmii/constants/ServerApi.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
constants
;
package
com
.
polysoft
.
nafmii
.
constants
;
import
com.polysoft.nafmii.BuildConfig
;
import
com.polysoft.nafmii.enums.StateEnum
;
import
com.polysoft.nafmii.net.OkhttpApi
;
import
com.polysoft.nafmii.net.OkhttpApi
;
import
com.polysoft.nafmii.net.RequestBack
;
import
com.polysoft.nafmii.net.RequestBack
;
import
com.whaty.nafmii.BuildConfig
;
import
java.util.Map
;
import
java.util.Map
;
...
...
app/src/main/java/com/polysoft/nafmii/fragment/AdvertisementFragment.java
View file @
0e11213
...
@@ -19,11 +19,11 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -19,11 +19,11 @@ import com.alibaba.fastjson.JSONObject;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.request.target.DrawableImageViewTarget
;
import
com.bumptech.glide.request.target.DrawableImageViewTarget
;
import
com.bumptech.glide.request.transition.Transition
;
import
com.bumptech.glide.request.transition.Transition
;
import
com.polysoft.nafmii.BuildConfig
;
import
com.polysoft.nafmii.R
;
import
com.polysoft.nafmii.activity.HomeActivity
;
import
com.polysoft.nafmii.activity.InputUrlActivity
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.whaty.nafmii.BuildConfig
;
import
com.whaty.nafmii.R
;
import
com.whaty.nafmii.activity.HomeActivity
;
import
com.whaty.nafmii.activity.InputUrlActivity
;
public
class
AdvertisementFragment
extends
Fragment
implements
View
.
OnClickListener
{
public
class
AdvertisementFragment
extends
Fragment
implements
View
.
OnClickListener
{
...
...
app/src/main/java/com/polysoft/nafmii/fragment/FingerprintDialogFragment.java
View file @
0e11213
...
@@ -15,7 +15,7 @@ import android.widget.Toast;
...
@@ -15,7 +15,7 @@ import android.widget.Toast;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.DialogFragment
;
import
androidx.fragment.app.DialogFragment
;
import
com.
polysoft
.nafmii.R
;
import
com.
whaty
.nafmii.R
;
import
javax.crypto.Cipher
;
import
javax.crypto.Cipher
;
...
...
app/src/main/java/com/polysoft/nafmii/fragment/WebViewFragment.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
fragment
;
package
com
.
polysoft
.
nafmii
.
fragment
;
import
android.Manifest
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
...
@@ -11,13 +14,22 @@ import androidx.annotation.NonNull;
...
@@ -11,13 +14,22 @@ import androidx.annotation.NonNull;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
import
com.polysoft.nafmii.R
;
import
com.polysoft.nafmii.broadcast.PhotosReceiver
;
import
com.polysoft.nafmii.utils.BitmapUtils
;
import
com.polysoft.nafmii.utils.FileProviderUtils
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.PermissionUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
import
com.polysoft.nafmii.webview.IWebview
;
import
com.polysoft.nafmii.webview.IWebview
;
import
com.polysoft.nafmii.webview.MyWebChromeClient
;
import
com.polysoft.nafmii.webview.MyWebViewClient
;
import
com.polysoft.nafmii.webview.MyWebViewClient
;
import
com.polysoft.nafmii.webview.WebviewHandler
;
import
com.polysoft.nafmii.webview.WebviewHandler
;
import
com.polysoft.nafmii.webview.WebviewLoadListener
;
import
com.polysoft.nafmii.webview.WebviewLoadListener
;
import
com.polysoft.nafmii.webview.X5WebviewUtils
;
import
com.polysoft.nafmii.webview.X5WebviewUtils
;
import
com.tencent.smtt.sdk.WebView
;
import
com.tencent.smtt.sdk.WebView
;
import
com.whaty.nafmii.R
;
import
java.io.File
;
public
class
WebViewFragment
extends
Fragment
implements
WebviewLoadListener
{
public
class
WebViewFragment
extends
Fragment
implements
WebviewLoadListener
{
...
@@ -27,6 +39,7 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
...
@@ -27,6 +39,7 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
private
WebView
webView
;
private
WebView
webView
;
private
WebviewHandler
webviewHandler
;
private
WebviewHandler
webviewHandler
;
private
ValueCallback
<
Uri
[]>
filePathCallback
;
public
static
WebViewFragment
newInstances
(
String
url
)
{
public
static
WebViewFragment
newInstances
(
String
url
)
{
WebViewFragment
fragment
=
new
WebViewFragment
();
WebViewFragment
fragment
=
new
WebViewFragment
();
...
@@ -56,6 +69,7 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
...
@@ -56,6 +69,7 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
private
void
initWebview
()
{
private
void
initWebview
()
{
WebView
webView
=
X5WebviewUtils
.
create
(
getActivity
());
WebView
webView
=
X5WebviewUtils
.
create
(
getActivity
());
webView
.
setWebChromeClient
(
new
MyWebChromeClient
(
this
));
webView
.
setWebViewClient
(
new
MyWebViewClient
(
this
));
webView
.
setWebViewClient
(
new
MyWebViewClient
(
this
));
this
.
webviewHandler
=
new
WebviewHandler
(
this
,
webView
);
this
.
webviewHandler
=
new
WebviewHandler
(
this
,
webView
);
...
@@ -91,6 +105,64 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
...
@@ -91,6 +105,64 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
@Override
@Override
public
void
onShowFileChooser
(
ValueCallback
<
Uri
[]>
filePathCallback
,
String
[]
acceptTypes
,
boolean
isCapture
)
{
public
void
onShowFileChooser
(
ValueCallback
<
Uri
[]>
filePathCallback
,
String
[]
acceptTypes
,
boolean
isCapture
)
{
String
[]
permissions
=
new
String
[]{
Manifest
.
permission
.
CAMERA
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
};
if
(
PermissionUtils
.
checkAndRequestMorePermissions
(
getContext
(),
permissions
))
{
Intent
intent
=
IntentUtils
.
chooserIntent
(
super
.
getContext
());
if
(
null
!=
intent
)
{
this
.
filePathCallback
=
filePathCallback
;
super
.
startActivityForResult
(
intent
,
IntentUtils
.
ACTIVITY_CODE_CHOOSERFILE
);
}
else
{
filePathCallback
.
onReceiveValue
(
null
);
}
}
else
{
filePathCallback
.
onReceiveValue
(
null
);
}
}
@Override
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
@org
.
jetbrains
.
annotations
.
Nullable
Intent
data
)
{
if
(
IntentUtils
.
ACTIVITY_CODE_CHOOSERFILE
==
requestCode
)
{
if
(
Activity
.
RESULT_OK
!=
resultCode
)
{
ToastUtils
.
showLong
(
"操作失败!"
);
this
.
filePathCallback
.
onReceiveValue
(
null
);
}
else
if
(
null
!=
this
.
filePathCallback
)
{
if
(
null
!=
data
&&
null
!=
data
.
getData
())
{
Uri
imgUrl
=
data
.
getData
();
String
newFilepath
=
IntentUtils
.
getTakePhotoPath
(
super
.
getContext
());
String
filepath
=
FileProviderUtils
.
getUriPath
(
super
.
getContext
(),
imgUrl
);
File
file
=
BitmapUtils
.
compressBitmap
(
filepath
,
newFilepath
);
Uri
uri
=
FileProviderUtils
.
getUriForFile
(
super
.
getContext
(),
file
);
this
.
filePathCallback
.
onReceiveValue
(
new
Uri
[]{
uri
});
}
else
{
String
filepath
=
IntentUtils
.
getTakePhotoPath
(
super
.
getContext
());
File
file
=
BitmapUtils
.
compressBitmap
(
filepath
);
if
(
file
.
exists
())
{
Uri
uri
=
FileProviderUtils
.
getUriForFile
(
super
.
getContext
(),
file
);
this
.
filePathCallback
.
onReceiveValue
(
new
Uri
[]{
uri
});
}
else
{
this
.
filePathCallback
.
onReceiveValue
(
null
);
}
}
}
this
.
filePathCallback
=
null
;
}
else
if
(
IntentUtils
.
ACTIVITY_CODE_CAMERA
==
requestCode
||
IntentUtils
.
ACTIVITY_CODE_ALBUM
==
requestCode
)
{
if
(
Activity
.
RESULT_OK
==
resultCode
)
{
if
(
IntentUtils
.
ACTIVITY_CODE_CAMERA
==
requestCode
)
{
String
filepath
=
IntentUtils
.
getTakePhotoPath
(
super
.
getContext
());
File
file
=
BitmapUtils
.
compressBitmap
(
filepath
);
PhotosReceiver
.
sendBroadcastCamera
(
super
.
getContext
(),
file
.
getAbsolutePath
());
}
else
if
(
null
!=
data
&&
null
!=
data
.
getData
()){
Uri
imgUrl
=
data
.
getData
();
String
newFilepath
=
IntentUtils
.
getTakePhotoPath
(
super
.
getContext
());
String
filepath
=
FileProviderUtils
.
getUriPath
(
super
.
getContext
(),
imgUrl
);
File
file
=
BitmapUtils
.
compressBitmap
(
filepath
,
newFilepath
);
PhotosReceiver
.
sendBroadcastAlbum
(
super
.
getContext
(),
file
.
getAbsolutePath
());
}
}
else
{
ToastUtils
.
showLong
(
"操作失败!"
);
}
}
}
}
}
}
\ No newline at end of file
\ No newline at end of file
app/src/main/java/com/polysoft/nafmii/utils/BitmapUtils.java
0 → 100644
View file @
0e11213
This diff is collapsed.
Click to expand it.
app/src/main/java/com/polysoft/nafmii/utils/LogUtil.java
0 → 100644
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
utils
;
import
android.util.Log
;
/**
* create: 2020/6/9
* author: zw
* do:打印工具类F
*/
public
class
LogUtil
{
public
static
int
logGrade
=
6
;
public
static
void
e
(
String
TAG
,
String
Message
)
{
if
(
logGrade
<=
5
)
{
Log
.
e
(
TAG
,
Message
);
}
}
public
static
void
e
(
String
TAG
,
String
Message
,
Throwable
thr
)
{
if
(
logGrade
<=
5
)
{
Log
.
e
(
TAG
,
Message
,
thr
);
}
}
public
static
void
w
(
String
TAG
,
String
Message
)
{
if
(
logGrade
<=
4
)
{
Log
.
w
(
TAG
,
Message
);
}
}
public
static
void
w
(
String
TAG
,
String
Message
,
Throwable
thr
)
{
if
(
logGrade
<=
4
)
{
Log
.
w
(
TAG
,
Message
,
thr
);
}
}
public
static
void
i
(
String
TAG
,
String
Message
)
{
if
(
logGrade
<=
3
)
{
Log
.
i
(
TAG
,
Message
);
}
}
public
static
void
i
(
String
TAG
,
String
Message
,
Throwable
thr
)
{
if
(
logGrade
<=
3
)
{
Log
.
i
(
TAG
,
Message
,
thr
);
}
}
public
static
void
d
(
String
TAG
,
String
Message
)
{
if
(
logGrade
<=
2
)
{
Log
.
d
(
TAG
,
Message
);
}
}
public
static
void
d
(
String
TAG
,
String
Message
,
Throwable
thr
)
{
if
(
logGrade
<=
2
)
{
Log
.
d
(
TAG
,
Message
,
thr
);
}
}
}
app/src/main/java/com/polysoft/nafmii/utils/StatusBarUtils.java
View file @
0e11213
...
@@ -14,8 +14,6 @@ import android.widget.FrameLayout;
...
@@ -14,8 +14,6 @@ import android.widget.FrameLayout;
import
androidx.annotation.IntDef
;
import
androidx.annotation.IntDef
;
import
com.polysoft.nafmii.R
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Field
;
...
...
app/src/main/java/com/polysoft/nafmii/webview/MyWebChromeClient.java
0 → 100644
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
webview
;
import
android.net.Uri
;
import
android.text.TextUtils
;
import
com.tencent.smtt.export.external.interfaces.ConsoleMessage
;
import
com.tencent.smtt.export.external.interfaces.JsResult
;
import
com.tencent.smtt.sdk.ValueCallback
;
import
com.tencent.smtt.sdk.WebChromeClient
;
import
com.tencent.smtt.sdk.WebView
;
public
class
MyWebChromeClient
extends
WebChromeClient
{
private
final
WebviewLoadListener
listener
;
public
MyWebChromeClient
(
WebviewLoadListener
listener
)
{
this
.
listener
=
listener
;
}
@Override
public
boolean
onJsAlert
(
WebView
view
,
String
url
,
String
message
,
JsResult
result
)
{
return
super
.
onJsAlert
(
view
,
url
,
message
,
result
);
}
@Override
public
void
onProgressChanged
(
WebView
view
,
int
newProgress
)
{
if
(
null
!=
this
.
listener
)
{
this
.
listener
.
onWebviewLoad
(
WebviewLoadListener
.
TYPE_PROGRESS
,
newProgress
);
}
super
.
onProgressChanged
(
view
,
newProgress
);
}
/**
* 16(Android 4.1.2) <= API <= 20(Android 4.4W.2)回调此方法
*/
public
void
openFileChooser
(
final
ValueCallback
<
Uri
>
uploadMsg
,
String
acceptType
,
String
capture
)
{
if
(
null
==
this
.
listener
)
{
return
;
}
this
.
listener
.
onShowFileChooser
((
ValueCallback
<
Uri
[]>)
value
->
{
for
(
Uri
uri
:
value
)
{
uploadMsg
.
onReceiveValue
(
uri
);
}
},
new
String
[]{
acceptType
},
TextUtils
.
isEmpty
(
capture
));
}
@Override
public
boolean
onShowFileChooser
(
WebView
webView
,
ValueCallback
<
Uri
[]>
filePathCallback
,
FileChooserParams
fileChooserParams
)
{
if
(
null
==
this
.
listener
)
{
return
super
.
onShowFileChooser
(
webView
,
filePathCallback
,
fileChooserParams
);
}
String
[]
acceptTypes
=
fileChooserParams
.
getAcceptTypes
();
boolean
captureEnabled
=
fileChooserParams
.
isCaptureEnabled
();
this
.
listener
.
onShowFileChooser
(
filePathCallback
,
acceptTypes
,
captureEnabled
);
return
true
;
}
@Override
public
void
onCloseWindow
(
WebView
window
)
{
super
.
onCloseWindow
(
window
);
}
@Override
public
boolean
onConsoleMessage
(
ConsoleMessage
consoleMessage
)
{
return
super
.
onConsoleMessage
(
consoleMessage
);
}
}
app/src/main/java/com/polysoft/nafmii/webview/WebviewHandler.java
View file @
0e11213
...
@@ -4,9 +4,9 @@ import android.text.TextUtils;
...
@@ -4,9 +4,9 @@ import android.text.TextUtils;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
import
com.polysoft.nafmii.activity.HomeActivity
;
import
com.polysoft.nafmii.bean.MenuBean
;
import
com.polysoft.nafmii.bean.MenuBean
;
import
com.tencent.smtt.sdk.WebView
;
import
com.tencent.smtt.sdk.WebView
;
import
com.whaty.nafmii.activity.HomeActivity
;
public
class
WebviewHandler
implements
IWebview
{
public
class
WebviewHandler
implements
IWebview
{
...
...
app/src/main/java/com/polysoft/nafmii/webview/X5WebviewUtils.java
View file @
0e11213
...
@@ -6,11 +6,11 @@ import android.os.Build;
...
@@ -6,11 +6,11 @@ import android.os.Build;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
com.polysoft.nafmii.BuildConfig
;
import
com.tencent.smtt.export.external.extension.interfaces.IX5WebSettingsExtension
;
import
com.tencent.smtt.export.external.extension.interfaces.IX5WebSettingsExtension
;
import
com.tencent.smtt.export.external.extension.interfaces.IX5WebViewExtension
;
import
com.tencent.smtt.export.external.extension.interfaces.IX5WebViewExtension
;
import
com.tencent.smtt.sdk.WebSettings
;
import
com.tencent.smtt.sdk.WebSettings
;
import
com.tencent.smtt.sdk.WebView
;
import
com.tencent.smtt.sdk.WebView
;
import
com.whaty.nafmii.BuildConfig
;
public
class
X5WebviewUtils
{
public
class
X5WebviewUtils
{
...
...
app/src/main/java/com/polysoft/nafmii/wechat/WechatApi.java
View file @
0e11213
...
@@ -12,8 +12,6 @@ import com.alibaba.fastjson.JSON;
...
@@ -12,8 +12,6 @@ import com.alibaba.fastjson.JSON;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.request.target.SimpleTarget
;
import
com.bumptech.glide.request.target.SimpleTarget
;
import
com.bumptech.glide.request.transition.Transition
;
import
com.bumptech.glide.request.transition.Transition
;
import
com.polysoft.nafmii.BuildConfig
;
import
com.polysoft.nafmii.R
;
import
com.tencent.mm.opensdk.modelbase.BaseReq
;
import
com.tencent.mm.opensdk.modelbase.BaseReq
;
import
com.tencent.mm.opensdk.modelmsg.SendMessageToWX
;
import
com.tencent.mm.opensdk.modelmsg.SendMessageToWX
;
import
com.tencent.mm.opensdk.modelmsg.WXMediaMessage
;
import
com.tencent.mm.opensdk.modelmsg.WXMediaMessage
;
...
@@ -22,6 +20,8 @@ import com.tencent.mm.opensdk.modelpay.PayReq;
...
@@ -22,6 +20,8 @@ import com.tencent.mm.opensdk.modelpay.PayReq;
import
com.tencent.mm.opensdk.openapi.IWXAPI
;
import
com.tencent.mm.opensdk.openapi.IWXAPI
;
import
com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
;
import
com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
;
import
com.tencent.mm.opensdk.openapi.WXAPIFactory
;
import
com.tencent.mm.opensdk.openapi.WXAPIFactory
;
import
com.whaty.nafmii.BuildConfig
;
import
com.whaty.nafmii.R
;
public
class
WechatApi
{
public
class
WechatApi
{
...
...
app/src/main/java/com/
polysoft
/nafmii/MyApplication.java
→
app/src/main/java/com/
whaty
/nafmii/MyApplication.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
;
package
com
.
whaty
.
nafmii
;
import
android.app.Application
;
import
android.app.Application
;
import
com.polysoft.nafmii.utils.CtxUtils
;
import
com.polysoft.nafmii.utils.CtxUtils
;
import
com.polysoft.nafmii.webview.X5Core
;
import
me.jessyan.autosize.AutoSizeConfig
;
import
me.jessyan.autosize.AutoSizeConfig
;
import
ren.yale.android.cachewebviewlib.WebViewCacheInterceptor
;
import
ren.yale.android.cachewebviewlib.WebViewCacheInterceptor
;
...
@@ -20,7 +19,7 @@ public class MyApplication extends Application {
...
@@ -20,7 +19,7 @@ public class MyApplication extends Application {
.
setDesignHeightInDp
(
896
);
.
setDesignHeightInDp
(
896
);
WebViewCacheInterceptor
.
Builder
builder
=
new
WebViewCacheInterceptor
.
Builder
(
this
);
WebViewCacheInterceptor
.
Builder
builder
=
new
WebViewCacheInterceptor
.
Builder
(
this
);
builder
.
setDebug
(
BuildConfig
.
DEBUG
);
//
builder.setDebug(BuildConfig.DEBUG);
WebViewCacheInterceptorInst
.
getInstance
().
init
(
builder
);
WebViewCacheInterceptorInst
.
getInstance
().
init
(
builder
);
}
}
}
}
app/src/main/java/com/
polysoft
/nafmii/activity/BaseActivity.java
→
app/src/main/java/com/
whaty
/nafmii/activity/BaseActivity.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
;
package
com
.
whaty
.
nafmii
.
activity
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
...
...
app/src/main/java/com/
polysoft
/nafmii/activity/GuideActivity.java
→
app/src/main/java/com/
whaty
/nafmii/activity/GuideActivity.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
;
package
com
.
whaty
.
nafmii
.
activity
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
...
@@ -11,10 +11,10 @@ import androidx.annotation.NonNull;
...
@@ -11,10 +11,10 @@ import androidx.annotation.NonNull;
import
androidx.viewpager.widget.PagerAdapter
;
import
androidx.viewpager.widget.PagerAdapter
;
import
androidx.viewpager.widget.ViewPager
;
import
androidx.viewpager.widget.ViewPager
;
import
com.polysoft.nafmii.BuildConfig
;
import
com.polysoft.nafmii.R
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.SpUtils
;
import
com.polysoft.nafmii.utils.SpUtils
;
import
com.whaty.nafmii.BuildConfig
;
import
com.whaty.nafmii.R
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
...
app/src/main/java/com/
polysoft
/nafmii/activity/HomeActivity.java
→
app/src/main/java/com/
whaty
/nafmii/activity/HomeActivity.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
;
package
com
.
whaty
.
nafmii
.
activity
;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
...
@@ -7,10 +7,10 @@ import android.widget.RadioButton;
...
@@ -7,10 +7,10 @@ import android.widget.RadioButton;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
import
com.polysoft.nafmii.R
;
import
com.polysoft.nafmii.activity.home.ModulesFragmentMgr
;
import
com.polysoft.nafmii.bean.MenuBean
;
import
com.polysoft.nafmii.bean.MenuBean
;
import
com.polysoft.nafmii.enums.ModulesEnum
;
import
com.polysoft.nafmii.enums.ModulesEnum
;
import
com.whaty.nafmii.R
;
import
com.whaty.nafmii.activity.home.ModulesFragmentMgr
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
...
...
app/src/main/java/com/
polysoft
/nafmii/activity/InputUrlActivity.java
→
app/src/main/java/com/
whaty
/nafmii/activity/InputUrlActivity.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
;
package
com
.
whaty
.
nafmii
.
activity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.view.View
;
import
android.widget.EditText
;
import
android.widget.EditText
;
import
android.widget.RadioButton
;
import
android.widget.RadioButton
;
import
com.polysoft.nafmii.R
;
import
androidx.appcompat.app.AppCompatActivity
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.SpUtils
;
import
com.polysoft.nafmii.utils.SpUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
import
com.whaty.nafmii.R
;
public
class
InputUrlActivity
extends
AppCompatActivity
{
public
class
InputUrlActivity
extends
AppCompatActivity
{
...
...
app/src/main/java/com/
polysoft
/nafmii/activity/MainActivity.java
→
app/src/main/java/com/
whaty
/nafmii/activity/MainActivity.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
;
package
com
.
whaty
.
nafmii
.
activity
;
import
android.Manifest
;
import
android.Manifest
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.CountDownTimer
;
import
android.os.CountDownTimer
;
import
android.util.Log
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.fragment.app.FragmentTransaction
;
import
androidx.fragment.app.FragmentTransaction
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.polysoft.nafmii.R
;
import
com.polysoft.nafmii.constants.ServerApi
;
import
com.polysoft.nafmii.constants.ServerApi
;
import
com.polysoft.nafmii.enums.StateEnum
;
import
com.polysoft.nafmii.enums.StateEnum
;
import
com.polysoft.nafmii.fragment.AdvertisementFragment
;
import
com.polysoft.nafmii.fragment.AdvertisementFragment
;
import
com.polysoft.nafmii.fragment.FingerprintDialogFragment
;
import
com.polysoft.nafmii.net.RequestBack
;
import
com.polysoft.nafmii.net.RequestBack
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.IntentUtils
;
import
com.polysoft.nafmii.utils.PermissionUtils
;
import
com.polysoft.nafmii.utils.PermissionUtils
;
import
com.polysoft.nafmii.utils.SpUtils
;
import
com.polysoft.nafmii.utils.SpUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
import
com.polysoft.nafmii.webview.X5Core
;
import
com.polysoft.nafmii.webview.X5Core
;
import
com.whaty.nafmii.R
;
public
class
MainActivity
extends
BaseActivity
{
public
class
MainActivity
extends
BaseActivity
{
...
...
app/src/main/java/com/
polysoft
/nafmii/activity/WebviewActivity.java
→
app/src/main/java/com/
whaty
/nafmii/activity/WebviewActivity.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
;
package
com
.
whaty
.
nafmii
.
activity
;
import
android.os.Bundle
;
import
android.os.Bundle
;
...
...
app/src/main/java/com/
polysoft
/nafmii/activity/home/ModuleUrlHandle.java
→
app/src/main/java/com/
whaty
/nafmii/activity/home/ModuleUrlHandle.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
.
home
;
package
com
.
whaty
.
nafmii
.
activity
.
home
;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.content.Intent
;
...
...
app/src/main/java/com/
polysoft
/nafmii/activity/home/ModulesFragmentMgr.java
→
app/src/main/java/com/
whaty
/nafmii/activity/home/ModulesFragmentMgr.java
View file @
0e11213
package
com
.
polysoft
.
nafmii
.
activity
.
home
;
package
com
.
whaty
.
nafmii
.
activity
.
home
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentActivity
;
import
androidx.fragment.app.FragmentActivity
;
...
...
app/src/main/java/com/whaty/nafmii/wxapi/WXEntryActivity.java
0 → 100644
View file @
0e11213
package
com
.
whaty
.
nafmii
.
wxapi
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
com.polysoft.nafmii.broadcast.ShareReceiver
;
import
com.polysoft.nafmii.wechat.ShareResult
;
import
com.polysoft.nafmii.wechat.WechatApi
;
import
com.tencent.mm.opensdk.modelbase.BaseReq
;
import
com.tencent.mm.opensdk.modelbase.BaseResp
;
import
com.tencent.mm.opensdk.modelmsg.SendAuth
;
import
com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
;
public
class
WXEntryActivity
extends
Activity
implements
IWXAPIEventHandler
{
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
WechatApi
.
getInstance
(
this
).
handleIntent
(
getIntent
(),
this
);
}
@Override
protected
void
onNewIntent
(
Intent
intent
)
{
super
.
onNewIntent
(
intent
);
setIntent
(
intent
);
WechatApi
.
getInstance
(
this
).
handleIntent
(
intent
,
this
);
}
@Override
public
void
onReq
(
BaseReq
baseReq
)
{
}
@Override
public
void
onResp
(
BaseResp
resp
)
{
if
(
resp
instanceof
SendAuth
.
Resp
)
{
}
int
code
=
resp
.
errCode
;
if
(
code
==
BaseResp
.
ErrCode
.
ERR_OK
)
{
// 分享成功
ShareReceiver
.
sendBroadcast
(
this
,
ShareResult
.
shareSuccess
());
}
else
if
(
code
==
BaseResp
.
ErrCode
.
ERR_USER_CANCEL
)
{
// 用户取消
ShareReceiver
.
sendBroadcast
(
this
,
ShareResult
.
shareCancel
());
}
else
{
// 分享失败
String
errStr
=
resp
.
errStr
;
ShareReceiver
.
sendBroadcast
(
this
,
ShareResult
.
shareFail
(
errStr
));
}
super
.
finish
();
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
}
}
app/src/main/java/com/whaty/nafmii/wxapi/WXPayEntryActivity.java
0 → 100644
View file @
0e11213
package
com
.
whaty
.
nafmii
.
wxapi
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.util.Log
;
import
com.polysoft.nafmii.wechat.WechatApi
;
import
com.tencent.mm.opensdk.constants.ConstantsAPI
;
import
com.tencent.mm.opensdk.modelbase.BaseReq
;
import
com.tencent.mm.opensdk.modelbase.BaseResp
;
import
com.tencent.mm.opensdk.openapi.IWXAPI
;
import
com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
;
public
class
WXPayEntryActivity
extends
Activity
implements
IWXAPIEventHandler
{
private
static
final
String
TAG
=
WXPayEntryActivity
.
class
.
getName
();
private
IWXAPI
api
;
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
WechatApi
.
getInstance
(
this
).
handleIntent
(
getIntent
(),
this
);
}
@Override
protected
void
onNewIntent
(
Intent
intent
)
{
super
.
onNewIntent
(
intent
);
setIntent
(
intent
);
WechatApi
.
getInstance
(
this
).
handleIntent
(
intent
,
this
);
}
@Override
public
void
onReq
(
BaseReq
req
)
{
}
@Override
public
void
onResp
(
BaseResp
resp
)
{
Log
.
d
(
TAG
,
"onPayFinish, errCode = "
+
resp
.
errCode
);
if
(
resp
.
getType
()
!=
ConstantsAPI
.
COMMAND_PAY_BY_WX
)
{
return
;
}
int
code
=
resp
.
errCode
;
if
(
code
==
BaseResp
.
ErrCode
.
ERR_OK
)
{
// 支付成功
// PayReceiver.sendBroadcast(this, PayResult.success(PayMode.WECHATPAY, null));
}
else
if
(
code
==
BaseResp
.
ErrCode
.
ERR_USER_CANCEL
)
{
// 用户取消
// PayReceiver.sendBroadcast(this, PayResult.cancel(PayMode.WECHATPAY));
}
else
{
// 支付失败
String
errStr
=
resp
.
errStr
;
// PayReceiver.sendBroadcast(this, PayResult.fail(PayMode.WECHATPAY, errStr));
}
super
.
finish
();
}
}
\ No newline at end of file
\ No newline at end of file
app/src/main/res/values/strings.xml
View file @
0e11213
<resources>
<resources>
<string
name=
"app_name"
>
nafmii
</string>
<string
name=
"dummy_button"
>
Dummy Button
</string>
<string
name=
"dummy_button"
>
Dummy Button
</string>
<string
name=
"dummy_content"
>
DUMMY\nCONTENT
</string>
<string
name=
"dummy_content"
>
DUMMY\nCONTENT
</string>
<string
name=
"title_activity_base"
>
BaseActivity
</string>
<string
name=
"title_activity_base"
>
BaseActivity
</string>
...
...
app/src/main/res/xml/provider_paths.xml
0 → 100644
View file @
0e11213
<?xml version="1.0" encoding="utf-8"?>
<paths
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<external-path
name=
"external_files"
path=
"."
/>
<external-path
name=
"rc_external_path"
path=
"."
/>
<external-path
path=
"Android/data/com.example.fcmapp/"
name=
"files_root"
/>
<external-path
name=
"name"
path=
"."
/>
<external-path
name=
"external"
path=
"."
/>
<external-path
path=
"."
name=
"external_storage_root"
/>
</paths>
app/src/test/java/com/polysoft/nafmii/ExampleUnitTest.java
deleted
100644 → 0
View file @
1241142
package
com
.
polysoft
.
nafmii
;
import
org.junit.Test
;
import
static
org
.
junit
.
Assert
.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public
class
ExampleUnitTest
{
@Test
public
void
addition_isCorrect
()
{
assertEquals
(
4
,
2
+
2
);
}
}
\ No newline at end of file
\ No newline at end of file
Write
Preview
Markdown
is supported
Attach a file
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 post a comment