From b2dd8ca6ea52926382dabd0914efcc6b552267d1 Mon Sep 17 00:00:00 2001
From: hjw <hjw@ma.nodka.com>
Date: Thu, 20 Apr 2023 05:47:09 +0000
Subject: [PATCH] 适配安卓11

---
 app/.gitignore                                                              |    1 
 app/src/main/AndroidManifest.xml                                            |    1 
 app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java             |   94 +++++++++++++++++++-----------
 app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java  |   13 ++-
 .idea/misc.xml                                                              |    2 
 app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Power.java |    3 
 .idea/vcs.xml                                                               |    6 ++
 app/keystore/platform.jks                                                   |    0 
 build.gradle                                                                |    2 
 app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java           |   31 ++++++++++
 app/src/main/libs/arm64-v8a/libnodka-jni.so                                 |    0 
 app/libs/NodkaAPI.jar                                                       |    0 
 app/build.gradle                                                            |   25 +++++++-
 13 files changed, 132 insertions(+), 46 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5c9f89f..54d5acd 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index f4d1aff..74de442 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -5,13 +5,31 @@
     buildToolsVersion "33.0.0"
 
     defaultConfig {
-        applicationId "com.jwipc.nodka_reboot_under"
+        applicationId "com.nodka.reboot_under"
         minSdkVersion 25
         targetSdkVersion 25
     }
 
+    sourceSets.main {
+        jni.srcDirs = []
+        jniLibs.srcDir "src/main/libs"
+    }
+
+    signingConfigs {
+        platformkeystore {
+            keyAlias "platform"
+            keyPassword "android"
+            storeFile file('../app/keystore/platform.jks')
+            storePassword "android"
+        }
+    }
+
     buildTypes {
+        debug {
+            signingConfig signingConfigs.platformkeystore
+        }
         release {
+            signingConfig signingConfigs.platformkeystore
             minifyEnabled false
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
         }
@@ -19,6 +37,7 @@
 }
 
 dependencies {
-    compile 'com.android.support:support-v4:25.+'
-    compile files('libs/spirit.jar')
+    implementation 'com.android.support:support-v4:25.+'
+    implementation files('libs/spirit.jar')
+    implementation files('libs/NodkaAPI.jar')
 }
diff --git a/app/keystore/platform.jks b/app/keystore/platform.jks
new file mode 100644
index 0000000..0321479
--- /dev/null
+++ b/app/keystore/platform.jks
Binary files differ
diff --git a/app/libs/NodkaAPI.jar b/app/libs/NodkaAPI.jar
new file mode 100644
index 0000000..4bdb54f
--- /dev/null
+++ b/app/libs/NodkaAPI.jar
Binary files differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d28642f..894f659 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -13,6 +13,7 @@
     
 
     <application
+        android:name=".MyApplication"
         android:allowBackup="true"
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java
index 0d60699..fe9ad09 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java
@@ -52,9 +52,12 @@
 			String is_repeat = mUtils.get_String_From_SharedPreferences(mUtils.set_time_reboot_repeat);
 			if(!is_repeat.equals("true"))
 			{
-				
-				AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager();
-				mAlarmPowerManager.removeAllalarmPower();
+				if (mUtils.isSpiritVersion()) {
+					AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager();
+					mAlarmPowerManager.removeAllalarmPower();
+				} else {
+					MyApplication.getApplication().getNodkaAPI().alarm_removeAllalarmPower();
+				}
 				
 				mUtils.remove_String_From_SharedPreferences(mUtils.repeat_alarm_poweron_time);
 				mUtils.remove_String_From_SharedPreferences(mUtils.repeat_alarm_poweroff_time);
@@ -66,7 +69,7 @@
 			
 			
 			
-			new Thread(new Runnable() {
+			/*new Thread(new Runnable() {
 				
 				@Override
 				public void run() {
@@ -83,7 +86,7 @@
 					}
 					
 				}
-			}).start();
+			}).start();*/
 			
 		}
 	}
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Power.java b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Power.java
index b285ff6..49190be 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Power.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Power.java
@@ -11,7 +11,6 @@
 
 public class BroadcastReceiver_Power extends BroadcastReceiver{
 
-	
 	Utils mUtils = null;
 	
 	SharedPreferences sharedPreferences;
@@ -103,7 +102,7 @@
 		String power_off_time = intent.getExtras().getString("shut_time", "");
 		String repeat = intent.getExtras().getString("repeat", "");
 		int power_type = intent.getExtras().getInt("power_type", -1);
-		
+
 		switch (power_type) {
 		case 1:
 			//mUtils.reboot();
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java b/app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java
new file mode 100644
index 0000000..f54af1e
--- /dev/null
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java
@@ -0,0 +1,31 @@
+package com.jwipc.nodka_reboot_under;
+
+import android.app.Application;
+
+import com.nodka.api.NodkaAPI;
+
+public class MyApplication extends Application {
+
+    private NodkaAPI mNodkaAPI;
+    private static MyApplication mApp;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mApp = this;
+        createNorcoAPI();
+    }
+
+    public static MyApplication getApplication() {
+        return mApp;
+    }
+
+    private void createNorcoAPI() {
+        mNodkaAPI = NodkaAPI.nodkaAPICreate(this);
+        mNodkaAPI.alarm_start();
+    }
+
+    public NodkaAPI getNodkaAPI() {
+        return mNodkaAPI;
+    }
+}
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java b/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java
index 46359c6..210c117 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java
@@ -24,10 +24,15 @@
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.net.NetworkInfo.DetailedState;
+import android.os.Build;
 import android.os.PowerManager;
 import android.os.RemoteException;
 import android.text.format.DateFormat;
 import android.util.Log;
+
+import com.jwipc.nodka_reboot_under.MyApplication;
+import com.nodka.api.NodkaAPI;
+import com.nodka.api.NodkaNative;
 
 
 public class Utils {
@@ -67,8 +72,7 @@
 	Thread thread_set_time_reboot = null;
 	Thread thread_STOP_WATCH_DOG = null;
 	Thread thread_AlarmPower_Repeat_Poweroff = null;
-	
-	
+
 	
 
 	public Utils(Context context) {
@@ -80,7 +84,6 @@
 		sharedPreferences = context.getSharedPreferences(shapre, context.MODE_PRIVATE);
 		editor = sharedPreferences.edit();
 	}
-	
 	
 	public void shut_Down()
 	{
@@ -250,26 +253,30 @@
 			return;
 		}
 		
-		
-		AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager();
-		
-		mAlarmPowerManager.removeAllalarmPower();
-		
+		if (isSpiritVersion()) {
+			new AlarmPowerManager().removeAllalarmPower();
+			setFileState("0", "/sys/class/minix-rtc/MCURTCDATA");
+		} else {
+			MyApplication.getApplication().getNodkaAPI().alarm_removeAllalarmPower();
+			setFileState("0", "/sys/class/minix-rtc/minix_RTC_DATA");
+		}
+
 		editor.putString(repeat_alarm_poweron_time, "");
 		editor.putString(repeat_alarm_poweroff_time, "");
 		editor.commit();
-		
-		setFileState("0", "/sys/class/minix-rtc/MCURTCDATA");
-		
+
 		if(active)
 		{
 			if(repeat.equals("true"))
 			{
-				SpiritAlarmManager mSpiritAlarmManager = new SpiritAlarmManager();
-				mSpiritAlarmManager.setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
-								
-				setFileState("1", "/sys/class/minix-rtc/MCURTCDATA");
-				
+				if (isSpiritVersion()) {
+					new SpiritAlarmManager().setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
+					setFileState("1", "/sys/class/minix-rtc/MCURTCDATA");
+				} else {
+					MyApplication.getApplication().getNodkaAPI().alarm_setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
+					setFileState("1", "/sys/class/minix-rtc/minix_RTC_DATA");
+				}
+
 				editor.putString(repeat_alarm_poweron_time, hms_on[0]+":"+hms_on[1]+":"+0);
 				editor.putString(repeat_alarm_poweroff_time, hms_off[0]+":"+hms_off[1]+":"+0);
 				editor.commit();
@@ -284,22 +291,37 @@
 				editor.commit();
 				
 				Calendar calendar = Calendar.getInstance();
-				
-				// 改接口 setSpiritAlarmWithDay()
-				mAlarmPowerManager.CreatOneAlarmPower(calendar.get(Calendar.YEAR)+"", 
-													  calendar.get(Calendar.MONTH)+1+"", 
-													  calendar.get(Calendar.DAY_OF_MONTH)+"", 
-													  hms_on[0]+"", 
-													  hms_on[1]+"", 
-													  hms_on[2]+"", 
-													  hms_off[0]+"", 
-													  hms_off[1]+"", 
-													  hms_off[2]+"", 
-													  hms_on[0]>12? "0":"1", 
-													  hms_off[0]>12? "0":"1");
-				
-				mAlarmPowerManager.updateAlarmPowerActive(0, active+"");
-				
+
+				if (isSpiritVersion()) {
+					// 改接口 setSpiritAlarmWithDay()
+					new AlarmPowerManager().CreatOneAlarmPower(calendar.get(Calendar.YEAR)+"",
+							calendar.get(Calendar.MONTH)+1+"",
+							calendar.get(Calendar.DAY_OF_MONTH)+"",
+							hms_on[0]+"",
+							hms_on[1]+"",
+							hms_on[2]+"",
+							hms_off[0]+"",
+							hms_off[1]+"",
+							hms_off[2]+"",
+							hms_on[0]>12? "0":"1",
+							hms_off[0]>12? "0":"1");
+
+					new AlarmPowerManager().updateAlarmPowerActive(0, active+"");
+				} else {
+					MyApplication.getApplication().getNodkaAPI().alarm_creatOneAlarmPower(calendar.get(Calendar.YEAR)+"",
+							calendar.get(Calendar.MONTH)+1+"",
+							calendar.get(Calendar.DAY_OF_MONTH)+"",
+							hms_on[0]+"",
+							hms_on[1]+"",
+							hms_on[2]+"",
+							hms_off[0]+"",
+							hms_off[1]+"",
+							hms_off[2]+"",
+							hms_on[0]>12? "0":"1",
+							hms_off[0]>12? "0":"1");
+
+					MyApplication.getApplication().getNodkaAPI().alarm_updateAlarmPowerActive(0, active+"");
+				}
 			}
 		}
 	}
@@ -667,7 +689,9 @@
 		return re;
 	}
 	
-	
-	
-	
+	public boolean isSpiritVersion() {
+		return Build.VERSION.SDK_INT <= 25;
+	}
+
+
 }
diff --git a/app/src/main/libs/arm64-v8a/libnodka-jni.so b/app/src/main/libs/arm64-v8a/libnodka-jni.so
new file mode 100644
index 0000000..22159b4
--- /dev/null
+++ b/app/src/main/libs/arm64-v8a/libnodka-jni.so
Binary files differ
diff --git a/build.gradle b/build.gradle
index d2bd725..53ae840 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,6 +2,7 @@
 buildscript {
     repositories {
         jcenter()
+        google()
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:7.3.0'
@@ -11,5 +12,6 @@
 allprojects {
     repositories {
         jcenter()
+        google()
     }
 }

--
Gitblit v1.6.2