diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 1fc4aeb..643a377 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 1fc4aeb..643a377 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_trend_analysis.xml b/app/src/main/res/layout/activity_trend_analysis.xml index d5a1a4b..d31493c 100644 --- a/app/src/main/res/layout/activity_trend_analysis.xml +++ b/app/src/main/res/layout/activity_trend_analysis.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 1fc4aeb..643a377 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_trend_analysis.xml b/app/src/main/res/layout/activity_trend_analysis.xml index d5a1a4b..d31493c 100644 --- a/app/src/main/res/layout/activity_trend_analysis.xml +++ b/app/src/main/res/layout/activity_trend_analysis.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 1fc4aeb..643a377 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_trend_analysis.xml b/app/src/main/res/layout/activity_trend_analysis.xml index d5a1a4b..d31493c 100644 --- a/app/src/main/res/layout/activity_trend_analysis.xml +++ b/app/src/main/res/layout/activity_trend_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 1fc4aeb..643a377 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_trend_analysis.xml b/app/src/main/res/layout/activity_trend_analysis.xml index d5a1a4b..d31493c 100644 --- a/app/src/main/res/layout/activity_trend_analysis.xml +++ b/app/src/main/res/layout/activity_trend_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_verify_detail.xml b/app/src/main/res/layout/activity_verify_detail.xml index b65dc2a..ef2935e 100644 --- a/app/src/main/res/layout/activity_verify_detail.xml +++ b/app/src/main/res/layout/activity_verify_detail.xml @@ -1,6 +1,7 @@ @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 1fc4aeb..643a377 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_trend_analysis.xml b/app/src/main/res/layout/activity_trend_analysis.xml index d5a1a4b..d31493c 100644 --- a/app/src/main/res/layout/activity_trend_analysis.xml +++ b/app/src/main/res/layout/activity_trend_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_verify_detail.xml b/app/src/main/res/layout/activity_verify_detail.xml index b65dc2a..ef2935e 100644 --- a/app/src/main/res/layout/activity_verify_detail.xml +++ b/app/src/main/res/layout/activity_verify_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 9bc6cd0..6ada5dc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,15 @@ apply plugin: 'org.greenrobot.greendao' android { + signingConfigs { + release { + storeFile file('dcms_key.jks') + storePassword '123456789' + keyAlias 'key0' + keyPassword '123456789' + } + } + compileSdkVersion 33 defaultConfig { @@ -43,7 +52,7 @@ } viewBinding { - enabled = true + enabled true } applicationVariants.configureEach { variant -> @@ -60,12 +69,11 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' //基础依赖库 - implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.5' + implementation 'com.github.AndroidCoderPeng:Androidx-lite-lib:1.0.7.6' //Google官方授权框架 implementation 'pub.devrel:easypermissions:3.0.0' //腾讯Android UI框架 diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java deleted file mode 100644 index 1ab4578..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHub.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHub { - - private DialogHub() { - } - - private static final class DialogHubHolder { - private static final DialogHub hub = new DialogHub(); - } - - /** - * 双重锁单例 - */ - public static DialogHub get() { - return DialogHubHolder.hub; - } - - private QMUITipDialog loadingDialog; - - public void showLoading(Activity activity, String message) { - loadingDialog = new QMUITipDialog.Builder(activity) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!activity.isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public void dismissLoading() { - loadingDialog.dismiss(); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java deleted file mode 100644 index fb0c033..0000000 --- a/app/src/main/java/com/casic/dcms/utils/HttpRequestHelper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.casic.dcms.utils; - -import com.casic.dcms.utils.callback.IHttpRequestListener; -import com.pengxh.androidx.lite.callback.OnHttpRequestListener; -import com.pengxh.androidx.lite.hub.RequestHub; -import com.pengxh.androidx.lite.utils.SaveKeyValues; - -import okhttp3.Request; -import okhttp3.Response; - -public class HttpRequestHelper { - private static final String TAG = "HttpRequestHelper"; - - public static void doRequest(String function, String requestValue, IHttpRequestListener listener) { - String ip = (String) SaveKeyValues.getValue(LocaleConstant.IP_KEY, "http://111.198.10.15:11409"); -// String ip = (String) SaveKeyValues.getValue(Constant.IP_KEY, "http://223.82.47.232:11401"); - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(ip + function + requestValue) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } - - public static void doRequest(String url, IHttpRequestListener listener) { - Request request = new Request.Builder() - .addHeader("token", AuthenticationHelper.getToken()) - .url(url) - .get() - .build();//创建Request 对象 - RequestHub.doRequest(request, new OnHttpRequestListener() { - @Override - public void onSuccess(Response response) { - listener.onSuccess(response.body()); - } - - @Override - public void onFailure(Throwable throwable) { - listener.onFailure(throwable); - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java new file mode 100644 index 0000000..ce85f2f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/HttpRequestManager.java @@ -0,0 +1,145 @@ +package com.casic.dcms.utils; + +import android.text.TextUtils; +import android.util.Log; + +import com.pengxh.androidx.lite.utils.Constant; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.logging.HttpLoggingInterceptor; +import rx.Observable; +import rx.Observer; +import rx.Subscriber; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class HttpRequestManager { + private static final String TAG = "HttpRequestHub"; + private final String key; + private final String value; + private final String url; + private final OnHttpRequestListener listener; + + public static class Builder { + private String key = "token"; + private String value = ""; + private String url; + private OnHttpRequestListener listener; + + /** + * 设置网络请求鉴权 + */ + public Builder setAuthentication(String key, String value) { + this.key = key; + this.value = value; + return this; + } + + /** + * 设置网络请求接口地址 + */ + public Builder setRequestTarget(String url) { + this.url = url; + return this; + } + + /** + * 设置网络请求回调监听 + */ + public Builder setOnHttpRequestListener(OnHttpRequestListener httpRequestListener) { + this.listener = httpRequestListener; + return this; + } + + public HttpRequestManager build() { + return new HttpRequestManager(this); + } + } + + private HttpRequestManager(Builder builder) { + this.key = builder.key; + this.value = builder.value; + this.url = builder.url; + this.listener = builder.listener; + } + + /** + * 发起网络请求 + */ + public void start() { + if (TextUtils.isEmpty(url)) { + listener.onFailure(new IllegalArgumentException("url is empty")); + return; + } + + //构建Request + Request request = new Request.Builder().addHeader(key, value).url(url).get().build(); + Observable.create(new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { + @Override + public void log(@NotNull String message) { + Log.d(TAG, ">>>>> " + message); + } + }); + interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(interceptor) + .readTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(Constant.HTTP_TIMEOUT, TimeUnit.SECONDS) + .build(); + try { + Response response = client.newCall(request).execute(); + subscriber.onNext(response); + } catch (IOException e) { + subscriber.onError(e); + } + } + }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + listener.onFailure(e); + } + + @Override + public void onNext(@Nullable Response response) { + if (response == null) { + listener.onFailure(new NullPointerException()); + } else { + try { + ResponseBody responseBody = response.body(); + if (responseBody != null) { + listener.onSuccess(responseBody.string()); + } else { + listener.onFailure(new NullPointerException()); + } + } catch (IOException e) { + listener.onFailure(e); + } + } + } + }); + } + + public interface OnHttpRequestListener { + void onSuccess(String result); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java new file mode 100644 index 0000000..b949cea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ViewGroupHub.java @@ -0,0 +1,35 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.ViewGroup; + +import androidx.annotation.ColorRes; +import androidx.fragment.app.Fragment; + +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.IntHub; + +public class ViewGroupHub { + public static void initImmersionBar(ViewGroup viewGroup, Activity activity, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(activity) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(activity, color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(activity); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } + + public static void initImmersionBar(ViewGroup viewGroup, Fragment fragment, boolean isDarkFont, @ColorRes int color) { + ImmersionBar.with(fragment) + .statusBarDarkFont(isDarkFont) + .statusBarColorInt(IntHub.convertColor(fragment.requireContext(), color)) + .init(); + //根据不同设备状态栏高度设置statusBarView高度 + int statusBarHeight = ContextHub.getStatusBarHeight(fragment.requireContext()); + viewGroup.setPadding(0, statusBarHeight, 0, 0); + viewGroup.requestLayout(); + } +} diff --git a/app/src/main/res/layout/activity_big_image.xml b/app/src/main/res/layout/activity_big_image.xml index 17ec57b..4ccef4f 100644 --- a/app/src/main/res/layout/activity_big_image.xml +++ b/app/src/main/res/layout/activity_big_image.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml index 9e0e53c..3362982 100644 --- a/app/src/main/res/layout/activity_case_handle_detail.xml +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_process.xml b/app/src/main/res/layout/activity_case_process.xml index a6cac34..5d275c2 100644 --- a/app/src/main/res/layout/activity_case_process.xml +++ b/app/src/main/res/layout/activity_case_process.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml index 729330c..7278962 100644 --- a/app/src/main/res/layout/activity_case_search.xml +++ b/app/src/main/res/layout/activity_case_search.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_change_shop.xml b/app/src/main/res/layout/activity_change_shop.xml index 0ab2f63..e13b905 100644 --- a/app/src/main/res/layout/activity_change_shop.xml +++ b/app/src/main/res/layout/activity_change_shop.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_check_detail.xml b/app/src/main/res/layout/activity_check_detail.xml index a615f16..19dad08 100644 --- a/app/src/main/res/layout/activity_check_detail.xml +++ b/app/src/main/res/layout/activity_check_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_clean_records.xml b/app/src/main/res/layout/activity_clean_records.xml index 4966642..5857e8e 100644 --- a/app/src/main/res/layout/activity_clean_records.xml +++ b/app/src/main/res/layout/activity_clean_records.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml index 9d2f9bf..2c0e310 100644 --- a/app/src/main/res/layout/activity_dept_handle_condition.xml +++ b/app/src/main/res/layout/activity_dept_handle_condition.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml index 5b30e4d..3064d38 100644 --- a/app/src/main/res/layout/activity_dept_todo.xml +++ b/app/src/main/res/layout/activity_dept_todo.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_grid_analysis.xml b/app/src/main/res/layout/activity_grid_analysis.xml index 5726d52..1cf095f 100644 --- a/app/src/main/res/layout/activity_grid_analysis.xml +++ b/app/src/main/res/layout/activity_grid_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index 3db4857..a66a1b6 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 819867c..935a301 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5a8203f..821cd98 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a71f46..0cfc240 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_maintain_record.xml b/app/src/main/res/layout/activity_maintain_record.xml index 84872f6..30995e3 100644 --- a/app/src/main/res/layout/activity_maintain_record.xml +++ b/app/src/main/res/layout/activity_maintain_record.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_map_warning.xml b/app/src/main/res/layout/activity_map_warning.xml index 3b6ef95..00420f5 100644 --- a/app/src/main/res/layout/activity_map_warning.xml +++ b/app/src/main/res/layout/activity_map_warning.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_package_handled.xml b/app/src/main/res/layout/activity_package_handled.xml index ce1dba7..e670b98 100644 --- a/app/src/main/res/layout/activity_package_handled.xml +++ b/app/src/main/res/layout/activity_package_handled.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_permssion.xml b/app/src/main/res/layout/activity_permssion.xml index 8258fac..5d9a24a 100644 --- a/app/src/main/res/layout/activity_permssion.xml +++ b/app/src/main/res/layout/activity_permssion.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 6191cd0..3abfc61 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_punish_analysis.xml b/app/src/main/res/layout/activity_punish_analysis.xml index b304650..04e61dc 100644 --- a/app/src/main/res/layout/activity_punish_analysis.xml +++ b/app/src/main/res/layout/activity_punish_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8054659..74a61ba 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,5 +1,6 @@ diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml index 41b1a38..1d13b1c 100644 --- a/app/src/main/res/layout/activity_street_light.xml +++ b/app/src/main/res/layout/activity_street_light.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_three_package.xml b/app/src/main/res/layout/activity_three_package.xml index 96d8598..3dfbe8e 100644 --- a/app/src/main/res/layout/activity_three_package.xml +++ b/app/src/main/res/layout/activity_three_package.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 1fc4aeb..643a377 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_trend_analysis.xml b/app/src/main/res/layout/activity_trend_analysis.xml index d5a1a4b..d31493c 100644 --- a/app/src/main/res/layout/activity_trend_analysis.xml +++ b/app/src/main/res/layout/activity_trend_analysis.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_verify_detail.xml b/app/src/main/res/layout/activity_verify_detail.xml index b65dc2a..ef2935e 100644 --- a/app/src/main/res/layout/activity_verify_detail.xml +++ b/app/src/main/res/layout/activity_verify_detail.xml @@ -1,6 +1,7 @@ diff --git a/app/src/main/res/layout/activity_worker_map.xml b/app/src/main/res/layout/activity_worker_map.xml index cfade43..c929c2c 100644 --- a/app/src/main/res/layout/activity_worker_map.xml +++ b/app/src/main/res/layout/activity_worker_map.xml @@ -1,5 +1,6 @@