diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java new file mode 100644 index 0000000..9e4cb48 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java @@ -0,0 +1,43 @@ +package com.casic.birmm.hxrq.utils; + +import android.app.Activity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.LinearLayout; + +public class StatusBarColorUtil { + public static void setColor(Activity activity, int color) { + //限制android系统的版本 + // 设置状态栏透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // 生成一个状态栏大小的矩形 + View statusView = createStatusView(activity, color); + // 添加 statusView 到布局中 + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.addView(statusView); + // 设置根布局的参数 + ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); + rootView.setFitsSystemWindows(true); + rootView.setClipToPadding(true); + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private static View createStatusView(Activity activity, int color) { + // 获得状态栏高度 + int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); + int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); + // 绘制一个和状态栏一样高的矩形 + View statusView = new View(activity); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + statusView.setLayoutParams(params); + statusView.setBackgroundColor(color); + return statusView; + } +} diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java new file mode 100644 index 0000000..9e4cb48 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java @@ -0,0 +1,43 @@ +package com.casic.birmm.hxrq.utils; + +import android.app.Activity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.LinearLayout; + +public class StatusBarColorUtil { + public static void setColor(Activity activity, int color) { + //限制android系统的版本 + // 设置状态栏透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // 生成一个状态栏大小的矩形 + View statusView = createStatusView(activity, color); + // 添加 statusView 到布局中 + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.addView(statusView); + // 设置根布局的参数 + ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); + rootView.setFitsSystemWindows(true); + rootView.setClipToPadding(true); + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private static View createStatusView(Activity activity, int color) { + // 获得状态栏高度 + int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); + int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); + // 绘制一个和状态栏一样高的矩形 + View statusView = new View(activity); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + statusView.setLayoutParams(params); + statusView.setBackgroundColor(color); + return statusView; + } +} diff --git a/app/src/main/res/drawable/ic_left_white.xml b/app/src/main/res/drawable/ic_left_white.xml new file mode 100644 index 0000000..5487d77 --- /dev/null +++ b/app/src/main/res/drawable/ic_left_white.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java new file mode 100644 index 0000000..9e4cb48 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java @@ -0,0 +1,43 @@ +package com.casic.birmm.hxrq.utils; + +import android.app.Activity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.LinearLayout; + +public class StatusBarColorUtil { + public static void setColor(Activity activity, int color) { + //限制android系统的版本 + // 设置状态栏透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // 生成一个状态栏大小的矩形 + View statusView = createStatusView(activity, color); + // 添加 statusView 到布局中 + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.addView(statusView); + // 设置根布局的参数 + ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); + rootView.setFitsSystemWindows(true); + rootView.setClipToPadding(true); + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private static View createStatusView(Activity activity, int color) { + // 获得状态栏高度 + int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); + int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); + // 绘制一个和状态栏一样高的矩形 + View statusView = new View(activity); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + statusView.setLayoutParams(params); + statusView.setBackgroundColor(color); + return statusView; + } +} diff --git a/app/src/main/res/drawable/ic_left_white.xml b/app/src/main/res/drawable/ic_left_white.xml new file mode 100644 index 0000000..5487d77 --- /dev/null +++ b/app/src/main/res/drawable/ic_left_white.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_scanning.xml b/app/src/main/res/drawable/ic_scanning.xml index d01e93d..6b43572 100644 --- a/app/src/main/res/drawable/ic_scanning.xml +++ b/app/src/main/res/drawable/ic_scanning.xml @@ -1,6 +1,6 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java new file mode 100644 index 0000000..9e4cb48 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java @@ -0,0 +1,43 @@ +package com.casic.birmm.hxrq.utils; + +import android.app.Activity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.LinearLayout; + +public class StatusBarColorUtil { + public static void setColor(Activity activity, int color) { + //限制android系统的版本 + // 设置状态栏透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // 生成一个状态栏大小的矩形 + View statusView = createStatusView(activity, color); + // 添加 statusView 到布局中 + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.addView(statusView); + // 设置根布局的参数 + ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); + rootView.setFitsSystemWindows(true); + rootView.setClipToPadding(true); + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private static View createStatusView(Activity activity, int color) { + // 获得状态栏高度 + int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); + int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); + // 绘制一个和状态栏一样高的矩形 + View statusView = new View(activity); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + statusView.setLayoutParams(params); + statusView.setBackgroundColor(color); + return statusView; + } +} diff --git a/app/src/main/res/drawable/ic_left_white.xml b/app/src/main/res/drawable/ic_left_white.xml new file mode 100644 index 0000000..5487d77 --- /dev/null +++ b/app/src/main/res/drawable/ic_left_white.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_scanning.xml b/app/src/main/res/drawable/ic_scanning.xml index d01e93d..6b43572 100644 --- a/app/src/main/res/drawable/ic_scanning.xml +++ b/app/src/main/res/drawable/ic_scanning.xml @@ -1,6 +1,6 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java new file mode 100644 index 0000000..9e4cb48 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java @@ -0,0 +1,43 @@ +package com.casic.birmm.hxrq.utils; + +import android.app.Activity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.LinearLayout; + +public class StatusBarColorUtil { + public static void setColor(Activity activity, int color) { + //限制android系统的版本 + // 设置状态栏透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // 生成一个状态栏大小的矩形 + View statusView = createStatusView(activity, color); + // 添加 statusView 到布局中 + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.addView(statusView); + // 设置根布局的参数 + ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); + rootView.setFitsSystemWindows(true); + rootView.setClipToPadding(true); + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private static View createStatusView(Activity activity, int color) { + // 获得状态栏高度 + int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); + int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); + // 绘制一个和状态栏一样高的矩形 + View statusView = new View(activity); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + statusView.setLayoutParams(params); + statusView.setBackgroundColor(color); + return statusView; + } +} diff --git a/app/src/main/res/drawable/ic_left_white.xml b/app/src/main/res/drawable/ic_left_white.xml new file mode 100644 index 0000000..5487d77 --- /dev/null +++ b/app/src/main/res/drawable/ic_left_white.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_scanning.xml b/app/src/main/res/drawable/ic_scanning.xml index d01e93d..6b43572 100644 --- a/app/src/main/res/drawable/ic_scanning.xml +++ b/app/src/main/res/drawable/ic_scanning.xml @@ -1,6 +1,6 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java new file mode 100644 index 0000000..9e4cb48 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java @@ -0,0 +1,43 @@ +package com.casic.birmm.hxrq.utils; + +import android.app.Activity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.LinearLayout; + +public class StatusBarColorUtil { + public static void setColor(Activity activity, int color) { + //限制android系统的版本 + // 设置状态栏透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // 生成一个状态栏大小的矩形 + View statusView = createStatusView(activity, color); + // 添加 statusView 到布局中 + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.addView(statusView); + // 设置根布局的参数 + ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); + rootView.setFitsSystemWindows(true); + rootView.setClipToPadding(true); + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private static View createStatusView(Activity activity, int color) { + // 获得状态栏高度 + int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); + int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); + // 绘制一个和状态栏一样高的矩形 + View statusView = new View(activity); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + statusView.setLayoutParams(params); + statusView.setBackgroundColor(color); + return statusView; + } +} diff --git a/app/src/main/res/drawable/ic_left_white.xml b/app/src/main/res/drawable/ic_left_white.xml new file mode 100644 index 0000000..5487d77 --- /dev/null +++ b/app/src/main/res/drawable/ic_left_white.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_scanning.xml b/app/src/main/res/drawable/ic_scanning.xml index d01e93d..6b43572 100644 --- a/app/src/main/res/drawable/ic_scanning.xml +++ b/app/src/main/res/drawable/ic_scanning.xml @@ -1,6 +1,6 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 19f4000..4b61d17 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -5,11 +5,28 @@ android:layout_height="match_parent" android:orientation="vertical"> - + android:background="@color/homeBackColor"> + + + + + @@ -49,8 +66,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="15dp" - android:layout_marginTop="150dp" - android:layout_marginBottom="12dp" + android:layout_marginTop="170dp" + android:layout_marginBottom="15dp" android:elevation="10dp" app:cardCornerRadius="5dp"> @@ -68,4 +85,4 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index df78bb9..25a325f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,4 +60,10 @@ //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.5.0' implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' + //沉浸式状态栏。基础依赖包,必须要依赖 + implementation 'com.gyf.immersionbar:immersionbar:3.0.0' + //fragment快速实现 + implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3641d30..9c88595 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ + @@ -33,6 +34,7 @@ + = 3) {//当栈里有3张bitmap之后才开始识别 + if (bitmapStack.size() >= 1) {//当栈里有1张bitmap之后才开始识别 Bitmap bitmap = bitmapStack.pop(); Intent intent = new Intent(); intent.putExtra("imageToBase64", ImageHelper.imageToBase64(bitmap)); diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java index f8ef517..d0eefe5 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/MainActivity.java @@ -3,6 +3,7 @@ import android.view.MenuItem; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; @@ -11,8 +12,9 @@ import com.casic.birmm.hxrq.base.DoubleClickExitActivity; import com.casic.birmm.hxrq.ui.fragment.HomePageFragment; import com.casic.birmm.hxrq.ui.fragment.MinePageFragment; +import com.casic.birmm.hxrq.utils.StatusBarColorUtil; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; import java.util.List; @@ -35,8 +37,8 @@ @Override protected void setupTopBarLayout() { - //设置状态栏黑色字体图标 - QMUIStatusBarHelper.setStatusBarLightMode(this); + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.homeBackColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); } @Override diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java new file mode 100644 index 0000000..46db0a2 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/WebViewActivity.java @@ -0,0 +1,78 @@ +package com.casic.birmm.hxrq.ui; + +import android.view.View; +import android.widget.LinearLayout; + +import androidx.core.content.ContextCompat; + +import com.casic.birmm.hxrq.R; +import com.casic.birmm.hxrq.base.BaseActivity; +import com.casic.birmm.hxrq.utils.HttpConfig; +import com.casic.birmm.hxrq.utils.TokenHelper; +import com.just.agentweb.AgentWeb; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import butterknife.BindView; + +public class WebViewActivity extends BaseActivity { + + private static final String TAG = "WebViewActivity"; + @BindView(R.id.parentView) + LinearLayout parentView; + @BindView(R.id.webTopLayout) + QMUITopBarLayout webTopLayout; + private AgentWeb mAgentWeb; + + @Override + public int initLayoutView() { + return R.layout.activity_web; + } + + @Override + protected void setupTopBarLayout() { + String webTitle = getIntent().getStringExtra("webTitle"); + webTopLayout.setTitle(webTitle).setTextColor(ContextCompat.getColor(this, R.color.white)); + webTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + webTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String params = "?token=" + TokenHelper.getToken() + "&url=" + getIntent().getStringExtra("url"); + mAgentWeb = AgentWeb.with(this) + .setAgentWebParent(parentView, new LinearLayout.LayoutParams(-1, -1)) + .useDefaultIndicator() + .createAgentWeb() + .ready() + .go(HttpConfig.STATIC_IP + params); + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + mAgentWeb.getWebLifeCycle().onPause(); + super.onPause(); + + } + + @Override + protected void onResume() { + mAgentWeb.getWebLifeCycle().onResume(); + super.onResume(); + } + + @Override + protected void onDestroy() { + mAgentWeb.getWebLifeCycle().onDestroy(); + super.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java index 6323a62..0095c96 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/birmm/hxrq/ui/fragment/HomePageFragment.java @@ -1,13 +1,12 @@ package com.casic.birmm.hxrq.ui.fragment; import android.content.Context; +import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.ImageView; -import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -21,8 +20,8 @@ import com.casic.birmm.hxrq.mvp.presenter.QrCodePresenterImpl; import com.casic.birmm.hxrq.mvp.view.IHomePageView; import com.casic.birmm.hxrq.mvp.view.IQrCodeDataView; +import com.casic.birmm.hxrq.ui.WebViewActivity; import com.casic.birmm.hxrq.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.ArrayList; import java.util.List; @@ -39,9 +38,9 @@ public class HomePageFragment extends BaseFragment implements IHomePageView, IQrCodeDataView { private static final String TAG = "HomePageFragment"; - @BindView(R.id.homeTopLayout) - QMUITopBarLayout homeTopLayout; + @BindView(R.id.scannerView) + ImageView scannerView; @BindView(R.id.userIconView) ImageView userIconView; @BindView(R.id.homeRecyclerView) @@ -62,9 +61,7 @@ protected void setupTopBarLayout() { context = getContext(); activity = getActivity(); - homeTopLayout.setTitle("华新燃气").setTextColor(ContextCompat.getColor(context, R.color.white)); - homeTopLayout.setBackgroundColor(ContextCompat.getColor(context, R.color.homeBackColor)); - homeTopLayout.addRightImageButton(R.drawable.ic_scanning, 1).setOnClickListener(new View.OnClickListener() { + scannerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startScannerLogin(); @@ -82,7 +79,8 @@ @Override protected void initEvent() { - homePagePresenter.onReadyRetrofitRequest("02"); +// homePagePresenter.onReadyRetrofitRequest("02");//Test + homePagePresenter.onReadyRetrofitRequest("05"); } private void startScannerLogin() { @@ -133,12 +131,16 @@ adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { @Override public void onClick(int position) { - String url = menusBeans.get(position).getUrl(); + HomePageBean.DataBean.MenusBean menusBean = menusBeans.get(position); + String url = menusBean.getUrl(); if (!TextUtils.isEmpty(url)) { - //TODO 跳转WebView加载H5 - Log.d(TAG, "onClick: " + url); + //打开内网WebView,需要单点登录,加载H5 + Intent intent = new Intent(context, WebViewActivity.class); + intent.putExtra("webTitle", menusBean.getName()); + intent.putExtra("url", url); + startActivity(intent); } else { - ToastHelper.showToast("", ToastHelper.WARING); + ToastHelper.showToast("地址有误,无法查看!", ToastHelper.WARING); } } }); @@ -164,5 +166,8 @@ if (qrCodePresenter != null) { qrCodePresenter.disposeRetrofitRequest(); } + if (homePagePresenter != null) { + homePagePresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java index 6ef5fe5..dd73d70 100644 --- a/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/HttpConfig.java @@ -2,4 +2,5 @@ public class HttpConfig { public static final long HTTP_TIMEOUT = 30L; + public static final String STATIC_IP = "http://172.26.2.128:9001/sso/integrationConfig/login"; } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java new file mode 100644 index 0000000..9e4cb48 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/hxrq/utils/StatusBarColorUtil.java @@ -0,0 +1,43 @@ +package com.casic.birmm.hxrq.utils; + +import android.app.Activity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.LinearLayout; + +public class StatusBarColorUtil { + public static void setColor(Activity activity, int color) { + //限制android系统的版本 + // 设置状态栏透明 + activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // 生成一个状态栏大小的矩形 + View statusView = createStatusView(activity, color); + // 添加 statusView 到布局中 + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + decorView.addView(statusView); + // 设置根布局的参数 + ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0); + rootView.setFitsSystemWindows(true); + rootView.setClipToPadding(true); + } + + /** + * 生成一个和状态栏大小相同的矩形条 + * + * @param activity 需要设置的activity + * @param color 状态栏颜色值 + * @return 状态栏矩形条 + */ + private static View createStatusView(Activity activity, int color) { + // 获得状态栏高度 + int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android"); + int statusBarHeight = activity.getResources().getDimensionPixelSize(resourceId); + // 绘制一个和状态栏一样高的矩形 + View statusView = new View(activity); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + statusView.setLayoutParams(params); + statusView.setBackgroundColor(color); + return statusView; + } +} diff --git a/app/src/main/res/drawable/ic_left_white.xml b/app/src/main/res/drawable/ic_left_white.xml new file mode 100644 index 0000000..5487d77 --- /dev/null +++ b/app/src/main/res/drawable/ic_left_white.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_scanning.xml b/app/src/main/res/drawable/ic_scanning.xml index d01e93d..6b43572 100644 --- a/app/src/main/res/drawable/ic_scanning.xml +++ b/app/src/main/res/drawable/ic_scanning.xml @@ -1,6 +1,6 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 19f4000..4b61d17 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -5,11 +5,28 @@ android:layout_height="match_parent" android:orientation="vertical"> - + android:background="@color/homeBackColor"> + + + + + @@ -49,8 +66,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="15dp" - android:layout_marginTop="150dp" - android:layout_marginBottom="12dp" + android:layout_marginTop="170dp" + android:layout_marginBottom="15dp" android:elevation="10dp" app:cardCornerRadius="5dp"> @@ -68,4 +85,4 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 608b04e..235afad 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -2,6 +2,6 @@ + android:background="@color/homeBackColor"> \ No newline at end of file