From a3d26981fb0ff2049a55d08c447c73e114a45384 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 29 十二月 2023 15:09:20 +0800
Subject: [PATCH] 加入极光推送SDK
---
app/src/main/res/layout/net_loding.xml | 17 +
app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java | 155 +++++++++++
app/src/main/res/values/styles.xml | 19 +
app/src/main/java/com/dayu/pipirrapp/service/PushService.java | 19 +
app/src/main/AndroidManifest.xml | 27 +
app/src/main/java/com/dayu/pipirrapp/net/subscribers/ProgressSubscriber.java | 131 ++++++++++
app/src/main/java/com/dayu/pipirrapp/MyApplication.java | 4
app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressCancelListener.java | 9
app/src/main/res/values/colors.xml | 1
app/src/main/java/com/dayu/pipirrapp/net/progress/NetLoadingDialog.java | 68 +++++
app/src/main/java/com/dayu/pipirrapp/net/BaseResponse.java | 11
app/src/main/java/com/dayu/pipirrapp/net/subscribers/SubscriberListener.java | 24 +
build.gradle | 3
app/src/main/res/layout/activity_main.xml | 24
app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java | 18 +
app/src/main/java/com/dayu/pipirrapp/adapter/TabAdapter.java | 23 +
app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressDialogHandler.java | 84 ++++++
app/src/main/java/com/dayu/pipirrapp/net/subscribers/BaseProgressSubscriber.java | 65 +++++
app/build.gradle | 33 ++
19 files changed, 710 insertions(+), 25 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 450820a..f970e16 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -80,4 +80,37 @@
implementation 'com.pnikosis:materialish-progress:1.7'
+
+
+
+ //鎺ㄩ�佺浉鍏�
+ // 姝ゅ浠Push 5.0.0 鐗堟湰涓轰緥锛�5.0.0 鐗堟湰寮�濮嬪彲浠ヨ嚜鍔ㄦ媺鍙� JCore 鍖咃紝鏃犻渶鍙﹀閰嶇疆
+ implementation 'cn.jiguang.sdk:jpush:5.2.2'
+ //鑻ヤ笉闆嗘垚鍘傚晢閫氶亾锛屽彲鐩存帴璺宠繃浠ヤ笅渚濊禆
+ // 鏋佸厜鍘傚晢鎻掍欢鐗堟湰涓庢帴鍏� JPush 鐗堟湰淇濇寔涓�鑷达紝涓嬪悓
+ // 鎺ュ叆鍗庝负鍘傚晢
+ implementation 'com.huawei.hms:push:6.5.0.300'
+ implementation 'cn.jiguang.sdk.plugin:huawei:5.2.2'
+ // 鎺ュ叆 FCM 鍘傚晢
+ implementation 'com.google.firebase:firebase-messaging:23.0.5'
+ implementation 'cn.jiguang.sdk.plugin:fcm:5.2.2'
+ // 鎺ュ叆榄呮棌鍘傚晢
+ implementation 'cn.jiguang.sdk.plugin:meizu:5.2.2'
+ // 鎺ュ叆 VIVO 鍘傚晢
+ implementation 'cn.jiguang.sdk.plugin:vivo:5.2.2'
+ // 鎺ュ叆灏忕背鍘傚晢
+ implementation 'cn.jiguang.sdk.plugin:xiaomi:5.2.2'
+ // 鎺ュ叆 OPPO 鍘傚晢
+ implementation 'cn.jiguang.sdk.plugin:oppo:5.2.2'
+ // JPush Android SDK v4.6.0 寮�濮嬶紝闇�瑕佸崟鐙紩鍏� oppo 鍘傚晢 aar 锛岃涓嬭浇瀹樼綉 SDK 鍖呭苟鎶� jpush-android-xxx-release/third-push/oppo/libs 涓嬬殑 aar 鏂囦欢鍗曠嫭鎷疯礉涓�浠藉埌搴旂敤 module/libs 涓�
+ implementation(name: 'com.heytap.msp-push-3.1.0', ext: 'aar')
+ //浠ヤ笅涓� OPPO 3.1.0 aar闇�瑕佷緷璧�
+ implementation 'com.google.code.gson:gson:2.6.2'
+ implementation 'commons-codec:commons-codec:1.6'
+ implementation 'androidx.annotation:annotation:1.1.0'
+ // 鎺ュ叆鑽h��鍘傚晢
+ implementation 'cn.jiguang.sdk.plugin:honor:5.2.2'
+
+// apply plugin: 'com.google.gms.google-services'
+ apply plugin: 'com.huawei.agconnect'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 713fc0e..417fc70 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,8 +26,31 @@
</intent-filter>
</activity>
<!-- <activity android:name=".activity.MainActivity" />-->
-
-
+ <!-- Required since 5.2.0 -->
+ <!-- 鏂扮殑 tag/alias 鎺ュ彛缁撴灉杩斿洖闇�瑕佸紑鍙戣�呴厤缃竴涓嚜瀹氫箟鐨凷ervice -->
+ <!-- 3.3.0寮�濮嬫墍鏈変簨浠跺皢閫氳繃璇ョ被鍥炶皟 -->
+ <!-- 5.2.0寮�濮嬫墍鏈変簨浠跺皢閫氳繃璇ョ被鍥炶皟 -->
+ <!-- 璇ュ箍鎾渶瑕佺户鎵� JPush 鎻愪緵鐨� JPushMessageService 绫�, 骞跺涓嬫柊澧炰竴涓� Intent-Filter -->
+ <service
+ android:name=".service.PushService"
+ android:enabled="true"
+ android:exported="false">
+ <intent-filter>
+ <action android:name="cn.jpush.android.intent.SERVICE_MESSAGE" />
+ <category android:name="com.dayu.pipirrapp" />
+ </intent-filter>
+ </service>
+ <!-- Since JCore2.0.0 Required SDK鏍稿績鍔熻兘-->
+ <!-- 鍙厤缃產ndroid:process鍙傛暟灏哠ervice鏀惧湪鍏朵粬杩涚▼涓紱android:enabled灞炴�т笉鑳芥槸false -->
+ <!-- 杩欎釜鏄嚜瀹氫箟Service锛岃缁ф壙鏋佸厜JCommonService锛屽彲浠ュ湪鏇村鎵嬫満骞冲彴涓婁娇寰楁帹閫侀�氶亾淇濇寔鐨勬洿绋冲畾 -->
+ <service android:name="xx.xx.XService"
+ android:enabled="true"
+ android:exported="false"
+ android:process=":pushcore">
+ <intent-filter>
+ <action android:name="cn.jiguang.user.service.action" />
+ </intent-filter>
+ </service>
</application>
</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/MyApplication.java b/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
index fe96f6a..9966b8d 100644
--- a/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
+++ b/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
@@ -2,6 +2,8 @@
import android.app.Application;
+import cn.jpush.android.api.JPushInterface;
+
/**
* author: zuo
* Date: 2023/12/21
@@ -15,5 +17,7 @@
public void onCreate() {
super.onCreate();
myApplication = this;
+ JPushInterface.setDebugMode(true);
+ JPushInterface.init(this);
}
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
index 15b6c0e..5a8268d 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
@@ -1,9 +1,11 @@
package com.dayu.pipirrapp.activity;
import android.os.Bundle;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
+import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
@@ -49,5 +51,21 @@
binding.tabLayout.setupWithViewPager(binding.viewPager);
}
+ long mExitTime;
+
+ //鐐瑰嚮涓ゆ閫�鍑虹▼搴� 鏈夋椂闂撮棿闅� 闂撮殧鍐呯偣鍑诲垯閫�鍑虹▼搴� 鍚﹀垯 鍒欐彁绀�
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ if ((System.currentTimeMillis() - mExitTime) > 2000) {
+ Toast.makeText(MainActivity.this, "鍐嶆寜涓�娆¢��鍑虹▼搴�", Toast.LENGTH_SHORT).show();
+ mExitTime = System.currentTimeMillis();
+ } else {
+ MainActivity.this.finish();
+ }
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/TabAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/TabAdapter.java
index 347c4b8..6d5bd0e 100644
--- a/app/src/main/java/com/dayu/pipirrapp/adapter/TabAdapter.java
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/TabAdapter.java
@@ -35,9 +35,22 @@
return 3; // 鍋囪鏈変笁涓爣绛�
}
-// @Override
-// public CharSequence getPageTitle(int position) {
-// // 杩斿洖鏍囩鐨勬爣棰�
-// return "Tab " + (position + 1);
-// }
+ @Override
+ public CharSequence getPageTitle(int position) {
+ String text = "";
+ switch (position) {
+ case 0:
+ text = "棣栭〉";
+ break;
+ case 1:
+ text = "鍦板浘";
+ break;
+ case 2:
+ text = "鎴戠殑";
+ break;
+ }
+
+ // 杩斿洖鏍囩鐨勬爣棰�
+ return text;
+ }
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
new file mode 100644
index 0000000..e1e46c2
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
@@ -0,0 +1,155 @@
+package com.dayu.pipirrapp.net;
+
+import android.content.Context;
+
+
+import com.dayu.pipirrapp.net.subscribers.BaseProgressSubscriber;
+import com.dayu.pipirrapp.net.subscribers.ProgressSubscriber;
+import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.utils.MyJsonParser;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
+import io.reactivex.rxjava3.annotations.NonNull;
+import io.reactivex.rxjava3.core.Observable;
+import io.reactivex.rxjava3.core.Observer;
+import io.reactivex.rxjava3.disposables.Disposable;
+import io.reactivex.rxjava3.functions.Function;
+import io.reactivex.rxjava3.schedulers.Schedulers;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuot
+ * Date: 2023-04-12 9:11
+ * Description:
+ */
+public class ApiManager {
+
+ static ApiManager apiManager;
+ //鏂囦欢涓婁紶澶辫触閲嶅娆℃暟
+ int uplodFilerepeatSize = 3;
+
+ ApiService apiService;
+
+ public static void init() {
+ if (apiManager == null) {
+ apiManager = new ApiManager();
+ }
+ }
+
+ public ApiManager() {
+ apiService = RetrofitClient.getInstance().getApiService();
+ }
+
+ public static ApiManager getInstance() {
+ return apiManager;
+ }
+
+
+ public <T> void requestPostLoading(final Context context, final String path, final Class<T> tClass, final Map<String, Object> params, final SubscriberListener listener) {
+ request(context, false, path, false, tClass, params, listener);
+ }
+
+ public <T> void requestPostHideLoading(final Context context, final String path, final Class<T> tClass, final Map<String, Object> params, final SubscriberListener listener) {
+ request(context, true, path, false, tClass, params, listener);
+ }
+
+ public <T> void requestPost(final Context context, final String path, final Class<T> tClass, final Map<String, Object> params, final SubscriberListener listener) {
+ request(context, false, path, false, tClass, params, listener);
+ }
+
+ /**
+ * 鍙戦�佽姹�
+ *
+ * @param context
+ * @param hideLoading 鏄惁鏄剧ず鍔犺浇妗� false锛氭樉绀� true锛氶殣钘�
+ * @param path 璇锋眰璺緞锛屽湪UrlConfig涓畾涔�
+ * @param isGet 鏄惁鏄疓et璇锋眰 true锛歡et 璇锋眰
+ * @param tClass 瀵瑰簲鐨勬暟鎹被鍨�
+ * @param params Post璇锋眰鏃讹紝瀵瑰簲鐨勫弬鏁�
+ * @param listener 鍥炶皟璇锋眰
+ * @param <T>
+ */
+ public <T> void request(final Context context, final boolean hideLoading, final String path, final boolean isGet, final Class<T> tClass, final Map<String, Object> params, final SubscriberListener listener) {
+ Observable observable;
+ BaseProgressSubscriber<?> mySubscriber;
+
+
+ if (isGet) {
+ if (params == null) {
+ observable = apiService.requestGet(path);
+ } else {
+
+ observable = apiService.requestGet(path, params);
+ }
+ } else {
+ observable = apiService.requestPost(path, params);
+ }
+
+ mySubscriber = new ProgressSubscriber(context, hideLoading, listener);
+ observable.subscribeOn(Schedulers.io()).
+ map(new Function<Object, BaseResponse<T>>() {
+ @Override
+ public BaseResponse<T> apply(Object o) {
+ if (o instanceof BaseResponse) {
+ BaseResponse tem = (BaseResponse) o;
+ BaseResponse<T> response = new BaseResponse<>();
+ response.setCode(tem.getCode());
+ response.setMsg(tem.getMsg());
+
+ if (tClass != null && tem.getContent() instanceof Map) {
+ try {
+// response.setData(MyJsonParser.getBeanFromMap((Map<String, Object>) tem.getData(), tClass));
+ String jsonData = MyJsonParser.getJsontoMap((Map) tem.getContent());
+ response.setContent(MyJsonParser.getBeanFromJson(jsonData, tClass));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (tClass != null && tem.getContent() instanceof List) {
+ try {
+ response.setContent((T) MyJsonParser.getListByJson(MyJsonParser.getJsonbyList((List) tem.getContent()), tClass));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (tClass != null && tem.getContent() instanceof Integer) {
+ response.setContent((T) tem.getContent());
+ }
+ if (tClass != null && tClass.getName() instanceof String && tem.getContent() instanceof String) {
+ try {
+ response.setContent((T) tem.getContent());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return response;
+
+
+ }
+
+ return null;
+ }
+ })
+ .unsubscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(mySubscriber);
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/BaseResponse.java b/app/src/main/java/com/dayu/pipirrapp/net/BaseResponse.java
index 1e2552c..607843a 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/BaseResponse.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/BaseResponse.java
@@ -9,7 +9,7 @@
public class BaseResponse<T> {
private int code;
private String msg;
- private T data;
+ private T content;
private String stackErrorInfo;//鍫嗘爤閿欒鎻忚堪
@@ -51,12 +51,11 @@
this.stackErrorInfo = stackErrorInfo;
}
- public T getData() {
- return data;
+ public T getContent() {
+ return content;
}
- public void setData(T data) {
- this.data = data;
+ public void setContent(T content) {
+ this.content = content;
}
-
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/progress/NetLoadingDialog.java b/app/src/main/java/com/dayu/pipirrapp/net/progress/NetLoadingDialog.java
new file mode 100644
index 0000000..5fe0cc2
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/progress/NetLoadingDialog.java
@@ -0,0 +1,68 @@
+package com.dayu.pipirrapp.net.progress;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.drawable.AnimationDrawable;
+import android.view.Gravity;
+
+
+import com.dayu.pipirrapp.R;
+import com.pnikosis.materialishprogress.ProgressWheel;
+
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-04-12 9:32
+ * Description:
+ */
+public class NetLoadingDialog extends Dialog {
+
+ //private TextView mMessage;
+ private AnimationDrawable mAnimationDrawable;
+
+
+ public NetLoadingDialog(Context context) {
+ super(context, R.style.Theme_PipIrrApp);
+ init();
+ }
+
+ private void init() {
+ try {
+ int ws_pay_net_loading, iv_net_loading_anim;
+
+ getWindow().setGravity(Gravity.CENTER);
+ setContentView(R.layout.net_loding);
+ setCanceledOnTouchOutside(false);
+ ProgressWheel wheel = findViewById(R.id.progress_wheel);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public void startAnim() {
+ try {
+ this.show();
+// mHandler.postDelayed(new Runnable() {
+// @Override
+// public void run() {
+// mAnimationDrawable.start();
+// }
+// }, 100);
+ } catch (Exception e) {
+
+ }
+ }
+
+ public void stopAnim() {
+ try {
+// mAnimationDrawable.stop();
+ this.dismiss();
+ } catch (Exception e) {
+
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressCancelListener.java b/app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressCancelListener.java
new file mode 100644
index 0000000..19adb9a
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressCancelListener.java
@@ -0,0 +1,9 @@
+package com.dayu.pipirrapp.net.progress;
+
+/**
+ * Created by qwy on 16/3/10.
+ * 鍙栨秷杩涘害妗嗙洃鍚�
+ */
+public interface ProgressCancelListener {
+ void onCancelProgress();
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressDialogHandler.java b/app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressDialogHandler.java
new file mode 100644
index 0000000..932d2d8
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/progress/ProgressDialogHandler.java
@@ -0,0 +1,84 @@
+package com.dayu.pipirrapp.net.progress;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Handler;
+import android.os.Message;
+
+
+/**
+ * Created by qwy on 16/3/10.
+ * 灞曠ず杩涘害瀵硅瘽妗�
+ */
+public class ProgressDialogHandler extends Handler {
+
+ public static final int SHOW_PROGRESS_DIALOG = 1;
+ public static final int DISMISS_PROGRESS_DIALOG = 2;
+
+ private NetLoadingDialog pd;
+
+ private Context context;
+ private boolean cancelable;
+ private ProgressCancelListener mProgressCancelListener;
+
+
+ public ProgressDialogHandler(Context context, ProgressCancelListener mProgressCancelListener,
+ boolean cancelable) {
+ super();
+ this.context = context;
+ this.mProgressCancelListener = mProgressCancelListener;
+ this.cancelable = cancelable;
+ }
+
+ private void initProgressDialog() {
+ try {
+ if (pd == null) {
+ pd = new NetLoadingDialog(context);
+ pd.setCancelable(cancelable);
+
+ if (cancelable) {
+ pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
+ @Override
+ public void onCancel(DialogInterface dialogInterface) {
+ if (mProgressCancelListener != null)
+ mProgressCancelListener.onCancelProgress();
+ }
+ });
+ }
+
+ if (!pd.isShowing()) {
+ pd.startAnim();
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void dismissProgressDialog() {
+ if (pd != null) {
+ try {
+ if (pd.isShowing()) {
+ pd.dismiss();
+ }
+ pd.stopAnim();
+ pd = null;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case SHOW_PROGRESS_DIALOG:
+ initProgressDialog();
+ break;
+ case DISMISS_PROGRESS_DIALOG:
+ dismissProgressDialog();
+ break;
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/subscribers/BaseProgressSubscriber.java b/app/src/main/java/com/dayu/pipirrapp/net/subscribers/BaseProgressSubscriber.java
new file mode 100644
index 0000000..58df211
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/subscribers/BaseProgressSubscriber.java
@@ -0,0 +1,65 @@
+package com.dayu.pipirrapp.net.subscribers;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+
+import io.reactivex.rxjava3.core.Observer;
+import io.reactivex.rxjava3.disposables.Disposable;
+
+
+/**
+ * Created by zuoxiao on 2017/8/11.
+ */
+
+public abstract class BaseProgressSubscriber<T> implements Observer<T> {
+
+
+ public BaseProgressSubscriber() {
+
+ }
+
+
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ onMyStart(d);
+ }
+
+// @Override
+// public void onSubscribe() {
+//
+// }
+
+ @Override
+ public void onComplete() {
+ onMyCompleted();
+ onCloose();
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ onMyError(e);
+ onCloose();
+ }
+
+ @Override
+ public void onNext(T t) {
+ onMyNext(t);
+ }
+
+ public abstract void onMyCompleted();
+
+ public abstract void onMyError(Throwable e);
+
+ public abstract void onMyNext(T t);
+
+ public abstract void onMyStart(Disposable d);
+
+ public abstract void onCloose();
+
+ public abstract BaseProgressSubscriber iniData(Context context, boolean hideLoading, SubscriberListener<T> mSubscriberListener);
+
+ public BaseProgressSubscriber initProgressSubscriber(Context context, boolean hideLoading, SubscriberListener<T> mSubscriberListener) {
+ return iniData(context, hideLoading, mSubscriberListener);
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/subscribers/ProgressSubscriber.java b/app/src/main/java/com/dayu/pipirrapp/net/subscribers/ProgressSubscriber.java
new file mode 100644
index 0000000..b092e96
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/subscribers/ProgressSubscriber.java
@@ -0,0 +1,131 @@
+package com.dayu.pipirrapp.net.subscribers;
+
+import android.content.Context;
+
+
+import com.dayu.pipirrapp.net.progress.ProgressCancelListener;
+import com.dayu.pipirrapp.net.progress.ProgressDialogHandler;
+
+import io.reactivex.rxjava3.disposables.Disposable;
+
+
+/**
+ * Created by qwy on 16/3/10.
+ * 鐢ㄤ簬鍦℉ttp璇锋眰寮�濮嬫椂锛岃嚜鍔ㄦ樉绀轰竴涓狿rogressDialog
+ * 鍦℉ttp璇锋眰缁撴潫鏄紝鍏抽棴ProgressDialog
+ * 璋冪敤鑰呰嚜宸卞璇锋眰鏁版嵁杩涜澶勭悊
+ */
+public class ProgressSubscriber<T> extends BaseProgressSubscriber<T> implements ProgressCancelListener {
+
+ private SubscriberListener mSubscriberListener;
+ private ProgressDialogHandler mProgressDialogHandler;
+ private boolean hideLoading = false;// 鏄惁闅愯棌鍔犺浇妗嗭紝榛樿灞曠ず
+ Disposable disposable;
+ private Context context;
+
+ public ProgressSubscriber() {
+ }
+
+ public ProgressSubscriber(Context context, SubscriberListener<T> mSubscriberListener) {
+ this.mSubscriberListener = mSubscriberListener;
+ this.context = context;
+ try {
+ mProgressDialogHandler = new ProgressDialogHandler(context, this, true);
+ } catch (Exception e) {
+ }
+ }
+
+ public ProgressSubscriber(Context context, boolean hideLoading, SubscriberListener<T> mSubscriberListener) {
+ this(context, mSubscriberListener);
+ this.hideLoading = hideLoading;
+ }
+
+ @Override
+ public ProgressSubscriber iniData(Context context, boolean hideLoading, SubscriberListener<T> mSubscriberListener) {
+ return new ProgressSubscriber(context, hideLoading, mSubscriberListener);
+ }
+
+ private void showProgressDialog() {
+ if (mProgressDialogHandler != null && !hideLoading) {
+ mProgressDialogHandler.obtainMessage(ProgressDialogHandler.SHOW_PROGRESS_DIALOG).sendToTarget();
+ }
+ }
+
+ public void dismissProgressDialog() {
+ try {
+ if (mProgressDialogHandler != null) {
+ mProgressDialogHandler.obtainMessage(ProgressDialogHandler.DISMISS_PROGRESS_DIALOG).sendToTarget();
+ mProgressDialogHandler = null;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 璁㈤槄寮�濮嬫椂璋冪敤
+ * 鏄剧ずProgressDialog
+ */
+ @Override
+ public void onMyStart(Disposable d) {
+ if (mSubscriberListener != null) {
+ mSubscriberListener.onStart();
+ }
+ disposable=d;
+ showProgressDialog();
+ }
+
+
+ @Override
+ public void onCloose() {
+ mSubscriberListener.onCloose();
+ }
+
+ /**
+ * 瀹屾垚锛岄殣钘廝rogressDialog
+ */
+ @Override
+ public void onMyCompleted() {
+ if (mSubscriberListener != null) {
+ mSubscriberListener.onCompleted();
+ }
+ dismissProgressDialog();
+ }
+
+ /**
+ * 瀵归敊璇繘琛岀粺涓�澶勭悊
+ * 闅愯棌ProgressDialog
+ *
+ * @param e
+ */
+ @Override
+ public void onMyError(Throwable e) {
+ if (mSubscriberListener != null) {
+ mSubscriberListener.onError(e);
+ }
+ dismissProgressDialog();
+
+ }
+
+ /**
+ * 灏唎nNext鏂规硶涓殑杩斿洖缁撴灉浜ょ粰Activity鎴朏ragment鑷繁澶勭悊
+ *
+ * @param t 鍒涘缓Subscriber鏃剁殑娉涘瀷绫诲瀷
+ */
+ @Override
+ public void onMyNext(T t) {
+ if (mSubscriberListener != null) {
+ mSubscriberListener.onNext(t);
+ }
+ }
+
+ /**
+ * 鍙栨秷ProgressDialog鐨勬椂鍊欙紝鍙栨秷瀵筼bservable鐨勮闃咃紝鍚屾椂涔熷彇娑堜簡http璇锋眰
+ */
+ @Override
+ public void onCancelProgress() {
+ if (!disposable.isDisposed()) {
+ disposable.dispose();
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/subscribers/SubscriberListener.java b/app/src/main/java/com/dayu/pipirrapp/net/subscribers/SubscriberListener.java
new file mode 100644
index 0000000..33fc879
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/subscribers/SubscriberListener.java
@@ -0,0 +1,24 @@
+package com.dayu.pipirrapp.net.subscribers;
+
+/**
+ * Created by qwy on 16/3/10.
+ * 鐩戝惉鍣�
+ */
+public abstract class SubscriberListener<BaseResponse> {
+ public abstract void onNext(BaseResponse t);
+
+ public void onCompleted() {
+ }
+
+
+ public void onStart() {
+ }
+
+
+ public void onError(Throwable e) {
+ }
+
+ public void onCloose(){
+
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/service/PushService.java b/app/src/main/java/com/dayu/pipirrapp/service/PushService.java
new file mode 100644
index 0000000..0163877
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/service/PushService.java
@@ -0,0 +1,19 @@
+package com.dayu.pipirrapp.service;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+import androidx.annotation.Nullable;
+
+import cn.jpush.android.service.JPushMessageService;
+
+/**
+ * author: zuo
+ * Date: 2023-12-28
+ * Time: 10:29
+ * 澶囨敞锛氭帹閫佺殑鏈嶅姟
+ */
+public class PushService extends JPushMessageService {
+
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 6dd2f9f..4f2f815 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -27,20 +27,20 @@
app:tabSelectedTextColor="#FFC107"
app:tabTextColor="#000000">
- <com.google.android.material.tabs.TabItem
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:text="棣栭〉" />
+<!-- <com.google.android.material.tabs.TabItem-->
+<!-- android:layout_width="match_parent"-->
+<!-- android:layout_height="match_parent"-->
+<!-- android:text="棣栭〉" />-->
- <com.google.android.material.tabs.TabItem
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:text="鍦板浘" />
+<!-- <com.google.android.material.tabs.TabItem-->
+<!-- android:layout_width="match_parent"-->
+<!-- android:layout_height="match_parent"-->
+<!-- android:text="鍦板浘" />-->
- <com.google.android.material.tabs.TabItem
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:text="鎴戠殑" />
+<!-- <com.google.android.material.tabs.TabItem-->
+<!-- android:layout_width="match_parent"-->
+<!-- android:layout_height="match_parent"-->
+<!-- android:text="鎴戠殑" />-->
</com.google.android.material.tabs.TabLayout>
</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/net_loding.xml b/app/src/main/res/layout/net_loding.xml
new file mode 100644
index 0000000..9799a0b
--- /dev/null
+++ b/app/src/main/res/layout/net_loding.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:orientation="vertical">
+
+ <com.pnikosis.materialishprogress.ProgressWheel
+ android:id="@+id/progress_wheel"
+ android:layout_width="80dp"
+ android:layout_height="80dp"
+ android:layout_centerHorizontal="true"
+ android:layout_centerVertical="true"
+ app:matProg_barColor="@color/title_color"
+ app:matProg_progressIndeterminate="true" />
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index a7b6385..0f6a9ed 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -4,4 +4,5 @@
<color name="white">#FFFFFFFF</color>
<color name="base_blue">#3C9CFF</color>
<color name="down_blue">#0C2DEA</color>
+ <color name="ws_pay_alpha">#00000000</color>
</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..8e7946e
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+
+
+
+ <style name="ws_pay_showSelfDialog" parent="@android:style/Theme.Dialog">
+ <item name="android:windowFrame">@null</item>
+ <item name="android:windowNoTitle">true</item>
+ <item name="android:windowIsFloating">true</item>
+ <item name="android:windowBackground">@color/ws_pay_alpha</item>
+ <item name="android:windowContentOverlay">@null</item>
+ <item name="android:windowSoftInputMode">adjustPan</item>
+ </style>
+
+
+
+
+</resources>
diff --git a/build.gradle b/build.gradle
index 9a844cb..7aad7f2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,10 +3,12 @@
repositories {
google()
mavenCentral()
+ maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath "com.android.tools.build:gradle:8.1.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20"
+ classpath 'com.huawei.agconnect:agcp:1.6.0.300'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -19,6 +21,7 @@
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
maven {url 'https://www.jitpack.io'}
+ maven { url 'https://developer.huawei.com/repo/' }
}
}
--
Gitblit v1.8.0