leon 1 年之前
父節點
當前提交
81fbff4c5c
共有 100 個文件被更改,包括 465 次插入116 次删除
  1. 26 4
      android/app/build.gradle
  2. 29 0
      android/app/google-services.json
  3. 二進制
      android/app/release/app-release.apk
  4. 20 0
      android/app/release/output-metadata.json
  5. 53 1
      android/app/src/main/AndroidManifest.xml
  6. 1 1
      android/app/src/main/assets/index.android.bundle
  7. 0 0
      android/app/src/main/assets/index.android.map
  8. 57 0
      android/app/src/main/java/com/hola/AlarmReceiver.java
  9. 36 0
      android/app/src/main/java/com/hola/AlarmService.java
  10. 83 0
      android/app/src/main/java/com/hola/HolaModule.java
  11. 28 0
      android/app/src/main/java/com/hola/HolaPackage.java
  12. 115 2
      android/app/src/main/java/com/hola/MainActivity.java
  13. 17 0
      android/app/src/main/java/com/hola/MainApplication.java
  14. 二進制
      android/app/src/main/res/drawable-hdpi/ic_stat_onesignal_default.png
  15. 二進制
      android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png
  16. 二進制
      android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_elements_src_assets_backicon.png
  17. 二進制
      android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png
  18. 二進制
      android/app/src/main/res/drawable-mdpi/ic_stat_onesignal_default.png
  19. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png
  20. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backiconmask.png
  21. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backicon.png
  22. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backiconmask.png
  23. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png
  24. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backiconmask.png
  25. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_back.png
  26. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_cancel.png
  27. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_circle.png
  28. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_clear.png
  29. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_delete.png
  30. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_download.png
  31. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_info.png
  32. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_info_circle.png
  33. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_safe_success.png
  34. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_safe_warn.png
  35. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_search.png
  36. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_success.png
  37. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_success_circle.png
  38. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_success_no_circle.png
  39. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_waiting.png
  40. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_waiting_circle.png
  41. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_warn.png
  42. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_loading.png
  43. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_loadingwarn.png
  44. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_scancode_icon_close.png
  45. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_scancode_icon_pic.png
  46. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_showmodal_error.png
  47. 二進制
      android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_showmodal_success.png
  48. 二進制
      android/app/src/main/res/drawable-mdpi/src_assets_images_add.png
  49. 二進制
      android/app/src/main/res/drawable-mdpi/src_assets_images_add2.png
  50. 二進制
      android/app/src/main/res/drawable-mdpi/src_assets_images_arrow3.png
  51. 二進制
      android/app/src/main/res/drawable-mdpi/src_assets_images_scale_center.png
  52. 二進制
      android/app/src/main/res/drawable-mdpi/src_assets_images_tooltip_add_to_mine.png
  53. 二進制
      android/app/src/main/res/drawable-mdpi/src_assets_images_user.png
  54. 二進制
      android/app/src/main/res/drawable-mdpi/src_assets_images_x.png
  55. 二進制
      android/app/src/main/res/drawable-xhdpi/ic_stat_onesignal_default.png
  56. 二進制
      android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png
  57. 二進制
      android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png
  58. 二進制
      android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png
  59. 二進制
      android/app/src/main/res/drawable-xxhdpi/ic_stat_onesignal_default.png
  60. 二進制
      android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png
  61. 二進制
      android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png
  62. 二進制
      android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png
  63. 二進制
      android/app/src/main/res/drawable-xxxhdpi/ic_onesignal_large_icon_default.png
  64. 二進制
      android/app/src/main/res/drawable-xxxhdpi/ic_stat_onesignal_default.png
  65. 二進制
      android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png
  66. 二進制
      android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png
  67. 二進制
      android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png
  68. 二進制
      android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  69. 二進制
      android/app/src/main/res/mipmap-hdpi/ic_stat_onesignal_default.png
  70. 二進制
      android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  71. 二進制
      android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  72. 二進制
      android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  73. 二進制
      android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  74. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_add.svg
  75. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_addcircle.svg
  76. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_alertcircle.svg
  77. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_aligncenter.svg
  78. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_alignleft.svg
  79. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_analytics.svg
  80. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowdown.svg
  81. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowleft.svg
  82. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowright.svg
  83. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowup.svg
  84. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_bell.svg
  85. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_blocked.svg
  86. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_bookmark.svg
  87. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_bulletlist.svg
  88. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_calendar.svg
  89. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_camera.svg
  90. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_check.svg
  91. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_checkcircle.svg
  92. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevrondown.svg
  93. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevronleft.svg
  94. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevronright.svg
  95. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevronup.svg
  96. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_clock.svg
  97. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_close.svg
  98. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_closecircle.svg
  99. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_creditcard.svg
  100. 0 4
      android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_download.svg

+ 26 - 4
android/app/build.gradle

@@ -84,6 +84,8 @@ project.ext.react = [
 
 apply from: "../../node_modules/react-native/react.gradle"
 
+
+
 /**
  * Set this to true to create two separate APKs instead of one:
  *   - An APK that only works on ARM devices
@@ -110,7 +112,8 @@ def enableProguardInReleaseBuilds = false
  * give correct results when using with locales other than en-US.  Note that
  * this variant is about 6MiB larger per architecture than default.
  */
-def jscFlavor = 'org.webkit:android-jsc:+'
+//def jscFlavor = 'org.webkit:android-jsc:+'
+def jscFlavor = 'org.webkit:android-jsc-intl:+'
 
 /**
  * Whether to enable the Hermes VM.
@@ -134,14 +137,20 @@ android {
 
     compileSdkVersion rootProject.ext.compileSdkVersion
 
+    aaptOptions.cruncherEnabled = false
+aaptOptions.useNewCruncher = false
+
     defaultConfig {
         applicationId app_id
         minSdkVersion rootProject.ext.minSdkVersion
         targetSdkVersion rootProject.ext.targetSdkVersion
-        versionCode 1
-        versionName "1.0"
+        versionCode 7
+        versionName "1.0.0"
         buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
-
+        manifestPlaceholders = [
+                JPUSH_APPKEY: "7cf918ada725a9e9aecc8a17",         //在此替换你的APPKey
+                JPUSH_CHANNEL: "online"        //在此替换你的channelÏ
+        ]
         if (isNewArchitectureEnabled()) {
             // We configure the CMake build only if you decide to opt-in for the New Architecture.
             externalNativeBuild {
@@ -250,6 +259,11 @@ android {
 
 dependencies {
     implementation fileTree(dir: "libs", include: ["*.jar"])
+    implementation project(':jpush-react-native')  // 添加 jpush 依赖
+    implementation project(':jcore-react-native')  // 添加 jcore 依赖
+    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
+    implementation platform('com.google.firebase:firebase-bom:33.0.0')
+
 
     //noinspection GradleDynamicVersion
     implementation "com.facebook.react:react-native:+"  // From node_modules
@@ -279,6 +293,11 @@ dependencies {
     } else {
         implementation jscFlavor
     }
+
+    //fcm
+    implementation 'cn.jiguang.sdk.plugin:fcm:5.0.3'
+    implementation 'com.google.firebase:firebase-messaging:23.1.2'
+
 }
 
 if (isNewArchitectureEnabled()) {
@@ -313,3 +332,6 @@ def isNewArchitectureEnabled() {
     // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
     return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
 }
+
+//fcm
+apply plugin: 'com.google.gms.google-services'

+ 29 - 0
android/app/google-services.json

@@ -0,0 +1,29 @@
+{
+  "project_info": {
+    "project_number": "476230921453",
+    "project_id": "hola-aaa2b",
+    "storage_bucket": "hola-aaa2b.appspot.com"
+  },
+  "client": [
+    {
+      "client_info": {
+        "mobilesdk_app_id": "1:476230921453:android:d72b7b88aaa6875623b0e4",
+        "android_client_info": {
+          "package_name": "com.hye.fast"
+        }
+      },
+      "oauth_client": [],
+      "api_key": [
+        {
+          "current_key": "AIzaSyCttNbQvZIN0oIdofLgKX6rBw2o2AHMIUo"
+        }
+      ],
+      "services": {
+        "appinvite_service": {
+          "other_platform_oauth_client": []
+        }
+      }
+    }
+  ],
+  "configuration_version": "1"
+}

二進制
android/app/release/app-release.apk


+ 20 - 0
android/app/release/output-metadata.json

@@ -0,0 +1,20 @@
+{
+  "version": 3,
+  "artifactType": {
+    "type": "APK",
+    "kind": "Directory"
+  },
+  "applicationId": "com.hye.fast",
+  "variantName": "release",
+  "elements": [
+    {
+      "type": "SINGLE",
+      "filters": [],
+      "attributes": [],
+      "versionCode": 6,
+      "versionName": "1.0.0",
+      "outputFile": "app-release.apk"
+    }
+  ],
+  "elementType": "File"
+}

+ 53 - 1
android/app/src/main/AndroidManifest.xml

@@ -7,6 +7,9 @@
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
+    <uses-permission android:name="android.permission.WAKE_LOCK"/>
 
     <queries>
       <intent>
@@ -21,7 +24,56 @@
       android:roundIcon="@mipmap/ic_launcher_round"
       android:allowBackup="false"
       android:theme="@style/AppTheme">
-      <activity
+        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_foreground"
+            android:value="false"/>
+        <!-- Change the resource name to your App's accent color - or any other color you want -->
+        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
+            android:resource="@color/white"/> <!-- or @android:color/{name} to use a standard color -->
+        <meta-data
+            android:name="com.dieam.reactnativepushnotification.default_notification_channel_id"
+            android:value="@string/default_notification_channel_id" />
+        <meta-data
+            android:name="JPUSH_CHANNEL"
+            android:value="online" />
+        <meta-data
+            android:name="JPUSH_APPKEY"
+            android:value="7cf918ada725a9e9aecc8a17" />
+        <meta-data android:name="com.google.firebase.messaging.default_notification_icon"
+            android:resource="@mipmap/ic_launcher" />
+
+
+        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" />
+        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
+        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
+                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
+            </intent-filter>
+        </receiver>
+
+        <service
+            android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
+            android:exported="false" >
+            <intent-filter>
+                <action android:name="com.google.firebase.MESSAGING_EVENT" />
+            </intent-filter>
+        </service>
+
+        <receiver android:name=".AlarmReceiver" android:enabled="true"/>
+        <service android:name=".AlarmService" />
+<!--        <service android:name=".AlarmService" />-->
+
+<!--        <meta-data-->
+<!--            android:name="com.google.firebase.messaging.default_notification_channel_id"-->
+<!--            android:value="my_channel_id" />-->
+<!--        <channel-->
+<!--            android:id="my_channel_id"-->
+<!--            android:name="My Channel"-->
+<!--            android:description="My Channel Description"-->
+<!--            android:importance="high" />-->
+        <activity
         android:name=".MainActivity"
         android:label="@string/app_name"
         android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"

文件差異過大導致無法顯示
+ 1 - 1
android/app/src/main/assets/index.android.bundle


文件差異過大導致無法顯示
+ 0 - 0
android/app/src/main/assets/index.android.map


+ 57 - 0
android/app/src/main/java/com/hola/AlarmReceiver.java

@@ -0,0 +1,57 @@
+package com.hola;
+
+import android.app.NotificationManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+import android.widget.Toast;
+
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
+
+import java.time.Duration;
+
+public class AlarmReceiver extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        Log.e("hello1111111111111","world");
+        String title = intent.getStringExtra("title");
+        String message = intent.getStringExtra("message");
+        String channel = intent.getStringExtra("channel");
+        // 创建通知构建器
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channel)
+                .setSmallIcon(android.R.drawable.ic_dialog_info)
+                .setContentTitle(title)
+                .setContentText(message)
+                .setPriority(NotificationCompat.PRIORITY_DEFAULT);
+
+        // 显示通知
+        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
+        notificationManager.notify(0, builder.build());
+    }
+
+//    @Override
+//    public void onReceive(Context context, Intent intent) {
+//        NotificationCompat.Builder builder = intent.getParcelableExtra("notification");
+//        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+//        notificationManager.notify(0, builder.build());
+//    }
+//    @Override
+//    public void onReceive(Context context, Intent intent) {
+//        // 获取通知的相关数据
+//        String title = intent.getStringExtra("title");
+//        String message = intent.getStringExtra("message");
+//        String channel = intent.getStringExtra("channel");
+//
+//        // 创建并显示通知
+//        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+//        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channel)
+//                .setSmallIcon(R.drawable.picture_ic_flash_on)
+//                .setContentTitle(title)
+//                .setContentText(message)
+//                .setPriority(NotificationCompat.PRIORITY_HIGH);
+//
+//        notificationManager.notify(0, builder.build());
+//    }
+}

+ 36 - 0
android/app/src/main/java/com/hola/AlarmService.java

@@ -0,0 +1,36 @@
+package com.hola;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.os.IBinder;
+
+import androidx.annotation.Nullable;
+
+public class AlarmService extends Service {
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        String title = intent.getStringExtra("title");
+        String message = intent.getStringExtra("message");
+        long triggerTime = intent.getLongExtra("triggerTime", System.currentTimeMillis() + 10000); // 60秒后触发
+
+        // 创建并发送通知
+        Intent alarmIntent = new Intent(this, AlarmReceiver.class);
+        alarmIntent.putExtra("title", title);
+        alarmIntent.putExtra("message", message);
+        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_IMMUTABLE);
+
+        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
+        alarmManager.set(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent);
+
+        return START_STICKY;
+    }
+
+    @Nullable
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}

+ 83 - 0
android/app/src/main/java/com/hola/HolaModule.java

@@ -0,0 +1,83 @@
+package com.hola;
+
+import android.app.AlarmManager;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.SystemClock;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
+
+import java.util.Calendar;
+
+public class HolaModule extends ReactContextBaseJavaModule {
+    private static final String CHANNEL_ID = "local_notification_channel";
+    private static final String CHANNEL_NAME = "Daily Reminder";
+    private static final String CHANNEL_DESCRIPTION = "Daily reminder notification at 9:00 AM";
+
+
+    public HolaModule(@Nullable ReactApplicationContext reactContext) {
+        super(reactContext);
+    }
+    private static final String MODULE_NAME = "HolaModule";
+    @NonNull
+    @Override
+    public String getName() {
+        return MODULE_NAME;
+    }
+
+    @ReactMethod
+    public void addLocalPush(String title,String content,String time){
+        if (getCurrentActivity()==null){
+            return;
+        }
+        String[] parts = time.split(":");
+        Log.e("Hello","world");
+        System.out.println("Hello, " + title + "!");
+        createNotificationChannel(getCurrentActivity());
+        Intent intent = new Intent(getCurrentActivity(), AlarmReceiver.class);
+        intent.putExtra("title", title);
+        intent.putExtra("message", content);
+        intent.putExtra("channel", CHANNEL_ID);
+
+        PendingIntent pendingIntent = PendingIntent.getBroadcast(
+                getCurrentActivity(), 0, intent, android.app.PendingIntent.FLAG_IMMUTABLE);
+
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(System.currentTimeMillis());
+        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(parts[0]));
+        calendar.set(Calendar.MINUTE, Integer.parseInt(parts[1]));
+        calendar.set(Calendar.SECOND,Integer.parseInt(parts[2]));
+
+        // 如果当前时间已经超过 设定时间,则设置为明天
+        if (calendar.getTimeInMillis() <= System.currentTimeMillis()) {
+            calendar.add(Calendar.DAY_OF_YEAR, 1);
+        }
+
+        // 4. 使用 AlarmManager 调度通知
+        AlarmManager alarmManager = (AlarmManager) getCurrentActivity().getSystemService(Context.ALARM_SERVICE);
+        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+10*1000,pendingIntent);
+//        alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
+//                AlarmManager.INTERVAL_DAY, pendingIntent);
+    }
+
+    private void createNotificationChannel(Context context) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+            NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
+            channel.setDescription(CHANNEL_DESCRIPTION);
+
+            NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
+            notificationManager.createNotificationChannel(channel);
+        }
+    }
+}

+ 28 - 0
android/app/src/main/java/com/hola/HolaPackage.java

@@ -0,0 +1,28 @@
+package com.hola;
+
+import androidx.annotation.NonNull;
+
+import com.facebook.react.ReactPackage;
+import com.facebook.react.bridge.NativeModule;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.uimanager.ViewManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class HolaPackage implements ReactPackage {
+    @NonNull
+    @Override
+    public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactApplicationContext) {
+        List<NativeModule> modules = new ArrayList<>();
+        modules.add(new HolaModule(reactApplicationContext));
+        return modules;
+    }
+
+    @NonNull
+    @Override
+    public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactApplicationContext) {
+        List<ViewManager> managers = new ArrayList<>();
+        return managers;
+    }
+}

+ 115 - 2
android/app/src/main/java/com/hola/MainActivity.java

@@ -1,19 +1,38 @@
 package com.hola;
+import android.app.AlarmManager;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Build;
+import android.os.SystemClock;
+
+import androidx.core.app.NotificationCompat;
+
 import expo.modules.ReactActivityDelegateWrapper;
 
 import com.facebook.react.ReactActivity;
 import com.facebook.react.ReactActivityDelegate;
 import com.facebook.react.ReactRootView;
 
+import java.util.Calendar;
+
 public class MainActivity extends ReactActivity {
 
+  private static final String CHANNEL_ID = "local_notification_channel";
+  private static final String CHANNEL_NAME = "Daily Reminder";
+  private static final String CHANNEL_DESCRIPTION = "Daily reminder notification at 9:00 AM";
+
+
   /**
    * Returns the name of the main component registered from JavaScript. This is used to schedule
    * rendering of the component.
    */
   @Override
   protected String getMainComponentName() {
-    return "hola";
+    return "taroDemo";
   }
 
   /**
@@ -26,7 +45,7 @@ public class MainActivity extends ReactActivity {
     return new ReactActivityDelegateWrapper(this, new MainActivityDelegate(this, getMainComponentName()));
   }
 
-  public static class MainActivityDelegate extends ReactActivityDelegate {
+  public class MainActivityDelegate extends ReactActivityDelegate {
     public MainActivityDelegate(ReactActivity activity, String mainComponentName) {
       super(activity, mainComponentName);
     }
@@ -34,8 +53,26 @@ public class MainActivity extends ReactActivity {
     @Override
     protected ReactRootView createRootView() {
       ReactRootView reactRootView = new ReactRootView(getContext());
+      reactRootView.setBackgroundColor(Color.rgb(0,0,0));
       // If you opted-in for the New Architecture, we enable the Fabric Renderer.
       reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
+
+//      Intent intent = new Intent(getContext(), AlarmService.class);
+//      intent.putExtra("title", "My Notification");
+//      intent.putExtra("message", "This is a scheduled local notification.");
+//      intent.putExtra("triggerTime", System.currentTimeMillis() + 10000); // 60秒后触发
+//      startService(intent);
+
+//      createNotificationChannel(getContext());
+//
+//       Intent intent = new Intent(getContext(), AlarmService.class);
+//       intent.putExtra("title", "My Notification");
+//       intent.putExtra("message", "This is a scheduled local notification.");
+//       intent.putExtra("triggerTime", System.currentTimeMillis() + 10000); // 60秒后触发
+//      intent.putExtra("channel","CHANNEL_ID");
+//       startService(intent);
+//      scheduleNotificationAfter(getContext(),10,"hellow","world");
+
       return reactRootView;
     }
 
@@ -45,5 +82,81 @@ public class MainActivity extends ReactActivity {
       // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
       return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
     }
+
+    public void scheduleNotificationAfter(Context context, long delaySeconds, String title, String body) {
+      // 1. 创建通知渠道 (Android 8.0 及以上版本需要)
+
+
+      // 2. 创建通知意图
+      Intent intent = new Intent(context, AlarmReceiver.class);
+      intent.putExtra("title", title);
+      intent.putExtra("body", body);
+
+      // 3. 创建 PendingIntent
+      android.app.PendingIntent pendingIntent = android.app.PendingIntent.getBroadcast(
+              context, 0, intent, android.app.PendingIntent.FLAG_IMMUTABLE);
+
+
+      Calendar calendar = Calendar.getInstance();
+      calendar.setTimeInMillis(System.currentTimeMillis());
+      calendar.set(Calendar.HOUR_OF_DAY, 11);
+      calendar.set(Calendar.MINUTE, 42);
+
+      // 如果当前时间已经超过 设定时间,则设置为明天
+      if (calendar.getTimeInMillis() <= System.currentTimeMillis()) {
+        calendar.add(Calendar.DAY_OF_YEAR, 1);
+      }
+
+      // 4. 使用 AlarmManager 调度通知
+      AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+      alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
+              AlarmManager.INTERVAL_DAY, pendingIntent);
+
+//      alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
+//              SystemClock.elapsedRealtime() + delaySeconds * 1000,
+//              pendingIntent);
+//      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
+//              10*1000, pendingIntent);
+//      alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),pendingIntent);
+//      alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+10*1000,
+//              pendingIntent);
+    }
+
+    public void scheduleDailyReminder(Context context) {
+      // 1. 创建 Notification 的 Channel (Android 8.0 及以上版本需要)
+      createNotificationChannel(context);
+
+      // 2. 设置 Notification 的内容
+      NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
+              .setSmallIcon(R.drawable.ic_launcher)
+              .setContentTitle("Daily Reminder")
+              .setContentText("It's 9:00 AM, time to start your day!")
+              .setPriority(NotificationCompat.PRIORITY_DEFAULT);
+
+      // 3. 设置定时任务
+      Intent intent = new Intent(context, AlarmReceiver.class);
+      intent.putExtra("notification", builder.build());
+
+      PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE);
+
+      Calendar calendar = Calendar.getInstance();
+      calendar.set(Calendar.HOUR_OF_DAY, 9);
+      calendar.set(Calendar.MINUTE, 0);
+      calendar.set(Calendar.SECOND, 0);
+
+      AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
+              AlarmManager.INTERVAL_DAY, pendingIntent);
+    }
+
+    private void createNotificationChannel(Context context) {
+      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+        NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
+        channel.setDescription(CHANNEL_DESCRIPTION);
+
+        NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
+        notificationManager.createNotificationChannel(channel);
+      }
+    }
   }
 }

+ 17 - 0
android/app/src/main/java/com/hola/MainApplication.java

@@ -12,6 +12,7 @@ import com.facebook.react.ReactNativeHost;
 import com.facebook.react.ReactPackage;
 import com.facebook.react.config.ReactFeatureFlags;
 import com.facebook.soloader.SoLoader;
+import com.google.firebase.iid.FirebaseInstanceIdReceiver;
 import com.hola.newarchitecture.MainApplicationReactNativeHost;
 import java.lang.reflect.InvocationTargetException;
 import java.util.List;
@@ -29,6 +30,7 @@ public class MainApplication extends Application implements ReactApplication {
         protected List<ReactPackage> getPackages() {
           @SuppressWarnings("UnnecessaryLocalVariable")
           List<ReactPackage> packages = new PackageList(this).getPackages();
+          packages.add(new HolaPackage());
           // Packages that cannot be autolinked yet can be added manually here, for example:
           // packages.add(new MyReactNativePackage());
           return packages;
@@ -60,6 +62,21 @@ public class MainApplication extends Application implements ReactApplication {
     SoLoader.init(this, /* native exopackage */ false);
     initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
     ApplicationLifecycleDispatcher.onApplicationCreate(this);
+
+
+//    JPushInterface.setDebugMode(true);
+//
+//    // 调整点一:初始化代码前增加setAuth调用
+//    boolean isPrivacyReady; // app根据是否已弹窗获取隐私授权来赋值
+////    if(!isPrivacyReady){
+////      JCollectionAuth.setAuth(context, false); // 后续初始化过程将被拦截
+////    }
+//    JPushInterface.init();
+//
+//
+//    // 调整点二:隐私政策授权获取成功后调用
+//    JCollectionAuth.setAuth(context, true); //如初始化被拦截过,将重试初始化过程
+
   }
 
   /**

二進制
android/app/src/main/res/drawable-hdpi/ic_stat_onesignal_default.png


二進制
android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-hdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-mdpi/ic_stat_onesignal_default.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backiconmask.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backiconmask.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backiconmask.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_back.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_cancel.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_circle.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_clear.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_delete.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_download.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_info.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_info_circle.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_safe_success.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_safe_warn.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_search.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_success.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_success_circle.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_success_no_circle.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_waiting.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_waiting_circle.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_icons_warn.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_loading.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_componentsrn_dist_assets_loadingwarn.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_scancode_icon_close.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_scancode_icon_pic.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_showmodal_error.png


二進制
android/app/src/main/res/drawable-mdpi/node_modules_tarojs_tarorn_dist_lib_showmodal_success.png


二進制
android/app/src/main/res/drawable-mdpi/src_assets_images_add.png


二進制
android/app/src/main/res/drawable-mdpi/src_assets_images_add2.png


二進制
android/app/src/main/res/drawable-mdpi/src_assets_images_arrow3.png


二進制
android/app/src/main/res/drawable-mdpi/src_assets_images_scale_center.png


二進制
android/app/src/main/res/drawable-mdpi/src_assets_images_tooltip_add_to_mine.png


二進制
android/app/src/main/res/drawable-mdpi/src_assets_images_user.png


二進制
android/app/src/main/res/drawable-mdpi/src_assets_images_x.png


二進制
android/app/src/main/res/drawable-xhdpi/ic_stat_onesignal_default.png


二進制
android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xhdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xxhdpi/ic_stat_onesignal_default.png


二進制
android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xxhdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xxxhdpi/ic_onesignal_large_icon_default.png


二進制
android/app/src/main/res/drawable-xxxhdpi/ic_stat_onesignal_default.png


二進制
android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_bottomtabs_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/drawable-xxxhdpi/node_modules_reactnavigation_stack_node_modules_reactnavigation_elements_src_assets_backicon.png


二進制
android/app/src/main/res/mipmap-hdpi/ic_launcher.png


二進制
android/app/src/main/res/mipmap-hdpi/ic_stat_onesignal_default.png


二進制
android/app/src/main/res/mipmap-mdpi/ic_launcher.png


二進制
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png


二進制
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


二進制
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_add.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="add" unicode="&#xe960;" d="M563 435h359v-102h-359v-359h-102v359h-359v102h359v359h102v-359z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_addcircle.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="add-circle" unicode="&#xe901;" d="M512 845q196 -5 326 -135t135 -326q-5 -196 -135 -326t-326 -135q-196 5 -326 135t-135 326q5 196 135 326t326 135zM512 -11q168 4 279.5 115.5t115.5 279.5q-4 168 -115.5 279.5t-279.5 115.5q-168 -4 -279.5 -115.5t-115.5 -279.5q4 -168 115.5 -279.5t279.5 -115.5z M545 581v-164h164v-66h-164v-164h-66v164h-164v66h164v164h66z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_alertcircle.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="alert-circle" unicode="&#xe964;" d="M512 845q-196 -5 -326 -135t-135 -326q5 -196 135 -326t326 -135q196 5 326 135t135 326q-5 196 -135 326t-326 135zM512 -11q-168 4 -279.5 115.5t-115.5 279.5q4 168 115.5 279.5t279.5 115.5q168 -4 279.5 -115.5t115.5 -279.5q-4 -168 -115.5 -279.5t-279.5 -115.5z M462 214q1 -19 14 -32t32.5 -12.5t32.5 14t13 33t-14.5 33t-34 12.5t-31.5 -14.5t-12 -33.5zM471 620v-308h72v308h-72z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_aligncenter.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="align-center" unicode="&#xe902;" d="M307 497v82h410v-82h-410zM307 169v82h410v-82h-410zM102 333v82h820v-82h-820zM102 5v82h820v-82h-820zM102 660v82h820v-82h-820z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_alignleft.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="align-left" unicode="&#xe903;" d="M102 497v82h410v-82h-410zM102 169v82h410v-82h-410zM102 333v82h820v-82h-820zM102 5v82h820v-82h-820zM102 660v82h820v-82h-820z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_analytics.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="analytics" unicode="&#xe95c;" d="M973 641l-55 204l-208 -56l18 -70l86 23l-288 -492l-218 255l-257 -513l64 -33l209 416l214 -249l342 585l24 -89z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowdown.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="arrow-down" unicode="&#xe905;" d="M667 180l-118 -119v784h-73v-782l-117 117l-52 -51l206 -206l206 206z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowleft.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="arrow-left" unicode="&#xe907;" d="M308 537l-119 -118h784v-73h-782l117 -117l-51 -52l-206 206l206 206z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowright.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="arrow-right" unicode="&#xe908;" d="M716 229l119 118h-784v73h782l-117 117l51 52l206 -206l-206 -206z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_arrowup.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="arrow-up" unicode="&#xe909;" d="M667 588l-118 119v-784h-73v782l-117 -117l-52 51l206 206l206 -206z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_bell.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="bell" unicode="&#xe90a;" d="M398 -11h195v-66h-195v66zM818 87l72 1v-65h-788v65h73l36 394q8 81 55 144.5t122 94.5v16q2 46 32.5 76.5t76.5 31.5q46 -1 76.5 -31.5t31.5 -76.5v-17q75 -31 122 -94.5t55 -144.5zM496 776q-16 0 -27.5 -10.5t-14.5 -26.5q21 4 42 4t42 -4q-3 16 -14.5 26.5 t-27.5 10.5zM239 87h513l-35 389q-9 89 -70.5 146t-150.5 59q-89 -2 -150.5 -59t-70.5 -146z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_blocked.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="blocked" unicode="&#xe90b;" d="M512 845q196 -5 326 -135t135 -326q-5 -196 -135 -326t-326 -135q-196 5 -326 135t-135 326q5 196 135 326t326 135zM907 384q-1 112 -57 204.5t-155.5 144.5t-207.5 45t-201 -70l489 -614q63 56 97 131t35 159zM512 -11q58 1 112.5 17.5t102.5 48.5l-491 609 q-86 -87 -109 -202t22 -228q47 -112 144 -177.5t219 -67.5z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_bookmark.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="bookmark" unicode="&#xe90c;" d="M758 -60q-9 0 -18.5 3.5t-18.5 8.5l-215 166l-203 -166q-20 -14 -45.5 -13t-40.5 19q-5 9 -8.5 18.5t-3.5 18.5v737q0 28 16.5 44.5t44.5 17.5h492q28 -1 44.5 -17.5t16.5 -44.5v-731q0 -28 -16.5 -44.5t-44.5 -16.5zM506 198l252 -197v731h-492v-731zM696 542 q-14 0 -22 8t-8 22t8 22.5t22 8.5t22.5 -8.5t8.5 -22.5t-8.5 -22t-22.5 -8zM573 542q-14 0 -22 8t-8 22t8 22.5t22 8.5t22.5 -8.5t8.5 -22.5t-8.5 -22t-22.5 -8zM451 542q-14 0 -22.5 8t-8.5 22t8.5 22.5t22.5 8.5t22 -8.5t8 -22.5t-8 -22t-22 -8zM328 542q-14 0 -22.5 8 t-8.5 22t8.5 22.5t22.5 8.5t22 -8.5t8 -22.5t-8 -22t-22 -8z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_bulletlist.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="bullet-list" unicode="&#xe90d;" d="M922 343h-683v68h683v-68zM922 70h-683v68h683v-68zM922 616h-683v68h683v-68zM143 609q-23 1 -34.5 21t0 40t34.5 21q18 0 29.5 -11.5t11.5 -29t-11.5 -29t-29.5 -12.5zM143 336q-17 1 -28.5 12.5t-11.5 29t11.5 29t29 11.5t29 -11.5t11.5 -29t-11.5 -29t-29.5 -12.5z M143 63q-17 1 -28.5 12.5t-11.5 28.5t11.5 29t29 12t29 -12t11.5 -29t-11.5 -28.5t-29.5 -12.5z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_calendar.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="calendar" unicode="&#xe90e;" d="M896 768h-154v77h-76v-77h-308v77h-76v-77h-154q-33 -1 -54.5 -22.5t-22.5 -54.5v-691q1 -33 22.5 -54.5t54.5 -22.5h768q33 1 54.5 22.5t22.5 54.5v691q-1 33 -22.5 54.5t-54.5 22.5zM896 0h-768v461h768v-461zM128 538v153h154v-77h76v77h308v-77h76v77h154v-153h-768z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_camera.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="camera" unicode="&#xe90f;" d="M886 13h-754q-34 1 -57 24t-24 56v458q1 33 24 56t57 24h160l19 56q5 28 25.5 41.5t48.5 13.5h248q28 0 49 -15.5t31 -39.5l19 -56h160q34 -1 57 -24t24 -56v-458q-6 -33 -30 -56t-57 -24zM132 575q-10 0 -17.5 -7.5t-7.5 -16.5v-458q0 -10 7.5 -17t17.5 -8h754 q10 1 17.5 8t7.5 17v458q0 9 -7.5 16.5t-17.5 7.5h-198l-31 93q-7 19 -24 19h-248q-9 0 -16.5 -5t-8.5 -14l-30 -93h-198zM509 167q-76 2 -126.5 52.5t-52.5 127.5q1 76 52 126.5t127 52.5q76 -2 126.5 -52.5t52.5 -126.5q-2 -77 -52.5 -127.5t-126.5 -52.5zM509 476 q-53 -1 -90.5 -37t-39.5 -92q1 -53 37 -91t93 -39q53 1 90.5 37t39.5 93q-2 52 -39.5 90t-90.5 39z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_check.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="check" unicode="&#xe95e;" d="M344 131l-173 161l-69 -74l255 -239l565 704l-78 59z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_checkcircle.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="check-circle" unicode="&#xe910;" d="M512 845q-196 -5 -326 -135t-135 -326q5 -196 135 -326t326 -135q196 5 326 135t135 326q-5 196 -135 326t-326 135zM512 -11q-168 4 -279.5 115.5t-115.5 279.5q4 168 115.5 279.5t279.5 115.5q168 -4 279.5 -115.5t115.5 -279.5q-4 -168 -115.5 -279.5t-279.5 -115.5z M436 300l-66 62l-45 -48l117 -110l260 324l-51 41z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevrondown.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="chevron-down" unicode="&#xe911;" d="M222 589l-68 -69l342 -341l342 341l-69 69l-273 -274z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevronleft.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="chevron-left" unicode="&#xe912;" d="M717 674l-69 68l-341 -342l341 -342l69 69l-274 273z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevronright.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="chevron-right" unicode="&#xe913;" d="M307 674l69 68l341 -342l-341 -342l-69 69l274 273z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_chevronup.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="chevron-up" unicode="&#xe914;" d="M496 453l273 -274l69 69l-342 341l-342 -341l68 -69z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_clock.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="clock" unicode="&#xe915;" d="M512 845q196 -5 326 -135t135 -326q-5 -196 -135 -326t-326 -135q-196 5 -326 135t-135 326q5 196 135 326t326 135zM117 384q1 -107 53 -197.5t145 -144t197 -53.5t197 53.5t145 144t53 197.5q-4 168 -115.5 279.5t-279.5 115.5q-168 -4 -279.5 -115.5t-115.5 -279.5z M315 351v66h230v-66h-230zM479 713h66v-296h-66v296z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_close.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="close" unicode="&#xe917;" d="M922 731l-63 63l-347 -348l-347 348l-63 -63l348 -347l-348 -347l63 -63l347 348l347 -348l63 63l-348 347z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_closecircle.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="close-circle" unicode="&#xe916;" d="M512 845q196 -5 326 -135t135 -326q-5 -196 -135 -326t-326 -135q-196 5 -326 135t-135 326q5 196 135 326t326 135zM512 -11q168 4 279.5 115.5t115.5 279.5q-4 168 -115.5 279.5t-279.5 115.5q-168 -4 -279.5 -115.5t-115.5 -279.5q4 -168 115.5 -279.5t279.5 -115.5z M629 547l46 -46l-116 -117l116 -117l-46 -46l-117 116l-117 -116l-46 46l116 117l-116 117l46 46l117 -116z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_creditcard.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="credit-card" unicode="&#xe918;" d="M907 742h-790q-28 0 -46.5 -18.5t-19.5 -46.5v-593q1 -28 19.5 -46.5t46.5 -19.5h790q28 1 46.5 19.5t19.5 46.5v593q-1 28 -19.5 46.5t-46.5 18.5zM907 84h-790v395h790v-395zM907 578h-790v99h790v-99zM644 249h197v-66h-197v66z"/>
-</svg>

+ 0 - 4
android/app/src/main/res/raw/node_modules_taroui_rn_assets_icons_download.svg

@@ -1,4 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
-    <path transform="translate(0, -128) rotate(180, 512 512)" glyph-name="download" unicode="&#xe91a;" d="M350 411l124 -124v558h76v-559l126 125l54 -55l-217 -217l-218 217zM896 691q31 0 52 -19.5t25 -50.5v-628q-4 -30 -25 -49.5t-52 -20.5h-768q-31 1 -52 20.5t-25 49.5v628q4 31 25 50.5t52 19.5h269v-77h-269v-614h768v614h-269v77h269z"/>
-</svg>

部分文件因文件數量過多而無法顯示