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