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

---
 .idea/vcs.xml                                                   |    6 ++
 app/keystore/platform.jks                                       |    0 
 app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java  |   91 +++++++++++++++++++++---------
 .idea/gradle.xml                                                |    1 
 app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java |   30 ++++++++++
 build.gradle                                                    |   11 +++
 app/src/main/AndroidManifest.xml                                |    4 +
 app/src/main/libs/arm64-v8a/libnodka-jni.so                     |    0 
 app/libs/NodkaAPI.jar                                           |    0 
 app/build.gradle                                                |   26 +++++++-
 10 files changed, 138 insertions(+), 31 deletions(-)

diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 9c52035..9d554de 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
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/build.gradle b/app/build.gradle
index e958cb0..9720c46 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -5,13 +5,31 @@
     buildToolsVersion "33.0.0"
 
     defaultConfig {
-        applicationId "com.jwipc.nodka_alarmpower"
+        applicationId "com.nodka.alarmpower"
         minSdkVersion 19
         targetSdkVersion 19
     }
 
+    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,8 @@
 }
 
 dependencies {
-    compile 'com.android.support:support-v4:25.+'
-    compile files('libs/spiritv1.3.jar')
+    implementation 'com.android.support:support-v4:25.+'
+    implementation files('libs/spiritv1.3.jar')
+    implementation files('libs/NodkaAPI.jar')
+//    compileOnly files('libs/classes-full-debug.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 7934b41..8e33196 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,7 +1,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.jwipc.nodka_alarmpower"
     android:versionCode="3"
-    android:versionName="v3.0" >
+    android:versionName="v3.0"
+    android:sharedUserId="android.uid.system" >
 
     <uses-sdk
         android:minSdkVersion="19"
@@ -13,6 +14,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_alarmpower/MainActivity.java b/app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java
index 944bc7c..d2cf10d 100644
--- a/app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java
+++ b/app/src/main/java/com/jwipc/nodka_alarmpower/MainActivity.java
@@ -15,6 +15,7 @@
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.hardware.spirit.AlarmPowerItem;
 import android.hardware.spirit.AlarmPowerManager;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -42,6 +43,8 @@
 import android.widget.TimePicker;
 import android.widget.TimePicker.OnTimeChangedListener;
 import android.provider.Settings;
+
+import com.nodka.api.alarm.SpiritAlarmItem;
 
 public class MainActivity extends Activity{
 
@@ -347,40 +350,72 @@
 		sendBroadcast(new Intent("android.intent.action.NDJ_GET_ALARM_REBOOT"));
 		
 		try {
-			AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager();
-			
-			List<AlarmPowerItem> list_AlarmPowerItem = mAlarmPowerManager.getAlarmPowerList();
-			
-			if(list_AlarmPowerItem != null)
-			{
-				if(list_AlarmPowerItem.size() > 0)
+			if (isSpiritVersion()) {
+				AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager();
+
+				List<AlarmPowerItem> list_AlarmPowerItem = mAlarmPowerManager.getAlarmPowerList();
+				if(list_AlarmPowerItem != null)
 				{
-					
-					AlarmPowerItem mAlarmPowerItem = list_AlarmPowerItem.get(0);
-					
-					Message msg_on = new Message();
-		            msg_on.what = set_AlarmPower_on;
-		            msg_on.obj = mAlarmPowerItem.getAlarmPowerOnHour() + ":" + mAlarmPowerItem.getAlarmPowerOnMinute() + ":" + mAlarmPowerItem.getAlarmPowerOnSecond();
-		            time_alarm_power_on = (String) msg_on.obj;
-		            handler.sendMessage(msg_on);
-		            
-		            Message msg_off = new Message();
-		            msg_off.what = set_AlarmPower_off;
-		            msg_off.obj = mAlarmPowerItem.getAlarmPowerOffHour() + ":" + mAlarmPowerItem.getAlarmPowerOffMinute() + ":" + mAlarmPowerItem.getAlarmPowerOffSecond();
-		            time_alarm_power_off = (String) msg_off.obj;
-		            handler.sendMessage(msg_off);
-		            
-		            
+					if(list_AlarmPowerItem.size() > 0)
+					{
+
+						AlarmPowerItem mAlarmPowerItem = list_AlarmPowerItem.get(0);
+
+						Message msg_on = new Message();
+						msg_on.what = set_AlarmPower_on;
+						msg_on.obj = mAlarmPowerItem.getAlarmPowerOnHour() + ":" + mAlarmPowerItem.getAlarmPowerOnMinute() + ":" + mAlarmPowerItem.getAlarmPowerOnSecond();
+						time_alarm_power_on = (String) msg_on.obj;
+						handler.sendMessage(msg_on);
+
+						Message msg_off = new Message();
+						msg_off.what = set_AlarmPower_off;
+						msg_off.obj = mAlarmPowerItem.getAlarmPowerOffHour() + ":" + mAlarmPowerItem.getAlarmPowerOffMinute() + ":" + mAlarmPowerItem.getAlarmPowerOffSecond();
+						time_alarm_power_off = (String) msg_off.obj;
+						handler.sendMessage(msg_off);
+
+
 		            /*Message msg_check_AlarmPower_repeat = new Message();
 		            msg_check_AlarmPower_repeat.what = set_check_AlarmPower_repeat;
 		            msg_check_AlarmPower_repeat.obj = mAlarmPowerItem.getAlarmPowerRepeat().equals("true") ? true : false;
 		            time_alarm_power_repeat = mAlarmPowerItem.getAlarmPowerRepeat();
 		            handler.sendMessage(msg_check_AlarmPower_repeat);*/
-		            
+
+					}
+			}
+
+			
+
+			} else {
+				List<SpiritAlarmItem> spiritAlarmItems = MyApplication.getApplication().getNodkaAPI().alarm_getAlarmPowerList();
+				if (spiritAlarmItems != null) {
+					if (spiritAlarmItems.size() > 0) {
+
+						SpiritAlarmItem mSpiritAlarmItem = spiritAlarmItems.get(0);
+
+						Message msg_on = new Message();
+						msg_on.what = set_AlarmPower_on;
+						msg_on.obj = mSpiritAlarmItem.getAlarmPowerOnHour() + ":" + mSpiritAlarmItem.getAlarmPowerOnMinute() + ":" + mSpiritAlarmItem.getAlarmPowerOnSecond();
+						time_alarm_power_on = (String) msg_on.obj;
+						handler.sendMessage(msg_on);
+
+						Message msg_off = new Message();
+						msg_off.what = set_AlarmPower_off;
+						msg_off.obj = mSpiritAlarmItem.getAlarmPowerOffHour() + ":" + mSpiritAlarmItem.getAlarmPowerOffMinute() + ":" + mSpiritAlarmItem.getAlarmPowerOffSecond();
+						time_alarm_power_off = (String) msg_off.obj;
+						handler.sendMessage(msg_off);
+
+
+		            /*Message msg_check_AlarmPower_repeat = new Message();
+		            msg_check_AlarmPower_repeat.what = set_check_AlarmPower_repeat;
+		            msg_check_AlarmPower_repeat.obj = mAlarmPowerItem.getAlarmPowerRepeat().equals("true") ? true : false;
+		            time_alarm_power_repeat = mAlarmPowerItem.getAlarmPowerRepeat();
+		            handler.sendMessage(msg_check_AlarmPower_repeat);*/
+
+					}
 				}
 			}
 						
-		} catch (RemoteException e) {
+		} catch (Exception e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
@@ -533,8 +568,10 @@
         
         return npList;
     }
-	
-	
+
+	public boolean isSpiritVersion() {
+		return Build.VERSION.SDK_INT <= 25;
+	}
 	
 	
 	
diff --git a/app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java b/app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java
new file mode 100644
index 0000000..a61c80b
--- /dev/null
+++ b/app/src/main/java/com/jwipc/nodka_alarmpower/MyApplication.java
@@ -0,0 +1,30 @@
+package com.jwipc.nodka_alarmpower;
+
+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);
+    }
+
+    public NodkaAPI getNodkaAPI() {
+        return mNodkaAPI;
+    }
+}
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..6022198
--- /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..0d22e16 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,15 @@
 allprojects {
     repositories {
         jcenter()
+        google()
+    }
+    gradle.projectsEvaluated {
+        tasks.withType(JavaCompile) {
+            Set<File> fileSet = options.bootstrapClasspath.getFiles()
+            List<File> newFileList =  new ArrayList<>()
+            newFileList.add(new File("./app/libs/classes-full-debug.jar"))
+            newFileList.addAll(fileSet)
+            options.bootstrapClasspath = files(newFileList.toArray())
+        }
     }
 }

--
Gitblit v1.6.2