Browse Source

初始化

chenzubin 3 months ago
commit
0f7299aa10
44 changed files with 838 additions and 0 deletions
  1. 15 0
      .gitignore
  2. 3 0
      .idea/.gitignore
  3. 6 0
      .idea/compiler.xml
  4. 10 0
      .idea/deploymentTargetDropDown.xml
  5. 18 0
      .idea/gradle.xml
  6. 10 0
      .idea/migrations.xml
  7. 10 0
      .idea/misc.xml
  8. 1 0
      app/.gitignore
  9. 41 0
      app/build.gradle
  10. BIN
      app/libs/app-release.aar
  11. 21 0
      app/proguard-rules.pro
  12. 26 0
      app/src/androidTest/java/com/gnhz/eitc_erm_dental_android/ExampleInstrumentedTest.java
  13. 27 0
      app/src/main/AndroidManifest.xml
  14. 0 0
      app/src/main/cpp/SKP_Silk_LPC_inv_pred_gain.c
  15. 20 0
      app/src/main/java/com/gnhz/eitc_erm_dental_android/MainActivity.java
  16. 170 0
      app/src/main/res/drawable/ic_launcher_background.xml
  17. 30 0
      app/src/main/res/drawable/ic_launcher_foreground.xml
  18. 18 0
      app/src/main/res/layout/activity_main.xml
  19. 6 0
      app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  20. 6 0
      app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  21. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher.webp
  22. BIN
      app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
  23. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher.webp
  24. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
  25. BIN
      app/src/main/res/mipmap-xhdpi/ic_launcher.webp
  26. BIN
      app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
  27. BIN
      app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
  28. BIN
      app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
  29. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
  30. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
  31. 7 0
      app/src/main/res/values-night/themes.xml
  32. 5 0
      app/src/main/res/values/colors.xml
  33. 3 0
      app/src/main/res/values/strings.xml
  34. 9 0
      app/src/main/res/values/themes.xml
  35. 13 0
      app/src/main/res/xml/backup_rules.xml
  36. 19 0
      app/src/main/res/xml/data_extraction_rules.xml
  37. 17 0
      app/src/test/java/com/gnhz/eitc_erm_dental_android/ExampleUnitTest.java
  38. 4 0
      build.gradle
  39. 21 0
      gradle.properties
  40. BIN
      gradle/wrapper/gradle-wrapper.jar
  41. 6 0
      gradle/wrapper/gradle-wrapper.properties
  42. 185 0
      gradlew
  43. 89 0
      gradlew.bat
  44. 22 0
      settings.gradle

+ 15 - 0
.gitignore

@@ -0,0 +1,15 @@
1
+*.iml
2
+.gradle
3
+/local.properties
4
+/.idea/caches
5
+/.idea/libraries
6
+/.idea/modules.xml
7
+/.idea/workspace.xml
8
+/.idea/navEditor.xml
9
+/.idea/assetWizardSettings.xml
10
+.DS_Store
11
+/build
12
+/captures
13
+.externalNativeBuild
14
+.cxx
15
+local.properties

+ 3 - 0
.idea/.gitignore

@@ -0,0 +1,3 @@
1
+# Default ignored files
2
+/shelf/
3
+/workspace.xml

+ 6 - 0
.idea/compiler.xml

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="CompilerConfiguration">
4
+    <bytecodeTargetLevel target="17" />
5
+  </component>
6
+</project>

+ 10 - 0
.idea/deploymentTargetDropDown.xml

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="deploymentTargetDropDown">
4
+    <value>
5
+      <entry key="app">
6
+        <State />
7
+      </entry>
8
+    </value>
9
+  </component>
10
+</project>

+ 18 - 0
.idea/gradle.xml

@@ -0,0 +1,18 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="GradleSettings">
4
+    <option name="linkedExternalProjectsSettings">
5
+      <GradleProjectSettings>
6
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
7
+        <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
8
+        <option name="modules">
9
+          <set>
10
+            <option value="$PROJECT_DIR$" />
11
+            <option value="$PROJECT_DIR$/app" />
12
+          </set>
13
+        </option>
14
+        <option name="resolveExternalAnnotations" value="false" />
15
+      </GradleProjectSettings>
16
+    </option>
17
+  </component>
18
+</project>

+ 10 - 0
.idea/migrations.xml

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectMigrations">
4
+    <option name="MigrateToGradleLocalJavaHome">
5
+      <set>
6
+        <option value="$PROJECT_DIR$" />
7
+      </set>
8
+    </option>
9
+  </component>
10
+</project>

+ 10 - 0
.idea/misc.xml

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
4
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
5
+    <output url="file://$PROJECT_DIR$/build/classes" />
6
+  </component>
7
+  <component name="ProjectType">
8
+    <option name="id" value="Android" />
9
+  </component>
10
+</project>

+ 1 - 0
app/.gitignore

@@ -0,0 +1 @@
1
+/build

+ 41 - 0
app/build.gradle

@@ -0,0 +1,41 @@
1
+plugins {
2
+    id 'com.android.application'
3
+}
4
+
5
+android {
6
+    namespace 'com.gnhz.eitc_erm_dental_android'
7
+    compileSdk 34
8
+
9
+    defaultConfig {
10
+        applicationId "com.gnhz.eitc_erm_dental_android"
11
+        minSdk 24
12
+        targetSdk 34
13
+        versionCode 1
14
+        versionName "1.0"
15
+
16
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
17
+    }
18
+
19
+    buildTypes {
20
+        release {
21
+            minifyEnabled false
22
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23
+        }
24
+    }
25
+    compileOptions {
26
+        sourceCompatibility JavaVersion.VERSION_1_8
27
+        targetCompatibility JavaVersion.VERSION_1_8
28
+    }
29
+}
30
+
31
+dependencies {
32
+
33
+    implementation 'androidx.appcompat:appcompat:1.7.0'
34
+    implementation 'com.google.android.material:material:1.12.0'
35
+    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
36
+    testImplementation 'junit:junit:4.13.2'
37
+    androidTestImplementation 'androidx.test.ext:junit:1.2.1'
38
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
39
+    implementation(files("libs/app-release.aar"))
40
+
41
+}

BIN
app/libs/app-release.aar


+ 21 - 0
app/proguard-rules.pro

@@ -0,0 +1,21 @@
1
+# Add project specific ProGuard rules here.
2
+# You can control the set of applied configuration files using the
3
+# proguardFiles setting in build.gradle.
4
+#
5
+# For more details, see
6
+#   http://developer.android.com/guide/developing/tools/proguard.html
7
+
8
+# If your project uses WebView with JS, uncomment the following
9
+# and specify the fully qualified class name to the JavaScript interface
10
+# class:
11
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12
+#   public *;
13
+#}
14
+
15
+# Uncomment this to preserve the line number information for
16
+# debugging stack traces.
17
+#-keepattributes SourceFile,LineNumberTable
18
+
19
+# If you keep the line number information, uncomment this to
20
+# hide the original source file name.
21
+#-renamesourcefileattribute SourceFile

+ 26 - 0
app/src/androidTest/java/com/gnhz/eitc_erm_dental_android/ExampleInstrumentedTest.java

@@ -0,0 +1,26 @@
1
+package com.gnhz.eitc_erm_dental_android;
2
+
3
+import android.content.Context;
4
+
5
+import androidx.test.platform.app.InstrumentationRegistry;
6
+import androidx.test.ext.junit.runners.AndroidJUnit4;
7
+
8
+import org.junit.Test;
9
+import org.junit.runner.RunWith;
10
+
11
+import static org.junit.Assert.*;
12
+
13
+/**
14
+ * Instrumented test, which will execute on an Android device.
15
+ *
16
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
17
+ */
18
+@RunWith(AndroidJUnit4.class)
19
+public class ExampleInstrumentedTest {
20
+    @Test
21
+    public void useAppContext() {
22
+        // Context of the app under test.
23
+        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24
+        assertEquals("com.gnhz.eitc_erm_dental_android", appContext.getPackageName());
25
+    }
26
+}

+ 27 - 0
app/src/main/AndroidManifest.xml

@@ -0,0 +1,27 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+    xmlns:tools="http://schemas.android.com/tools">
4
+
5
+    <application
6
+        android:allowBackup="true"
7
+        android:dataExtractionRules="@xml/data_extraction_rules"
8
+        android:fullBackupContent="@xml/backup_rules"
9
+        android:icon="@mipmap/ic_launcher"
10
+        android:label="@string/app_name"
11
+        android:roundIcon="@mipmap/ic_launcher_round"
12
+        android:supportsRtl="true"
13
+        android:theme="@style/Theme.Eitc_erm_dental_android"
14
+        tools:replace="android:theme"
15
+        tools:targetApi="31">
16
+        <activity
17
+            android:name=".MainActivity"
18
+            android:exported="true">
19
+            <intent-filter>
20
+                <action android:name="android.intent.action.MAIN" />
21
+
22
+                <category android:name="android.intent.category.LAUNCHER" />
23
+            </intent-filter>
24
+        </activity>
25
+    </application>
26
+
27
+</manifest>

+ 0 - 0
app/src/main/cpp/SKP_Silk_LPC_inv_pred_gain.c


+ 20 - 0
app/src/main/java/com/gnhz/eitc_erm_dental_android/MainActivity.java

@@ -0,0 +1,20 @@
1
+package com.gnhz.eitc_erm_dental_android;
2
+
3
+import androidx.appcompat.app.AppCompatActivity;
4
+
5
+import android.os.Bundle;
6
+
7
+public class MainActivity extends AppCompatActivity {
8
+
9
+    @Override
10
+    protected void onCreate(Bundle savedInstanceState) {
11
+        super.onCreate(savedInstanceState);
12
+        setContentView(R.layout.activity_main);
13
+    }
14
+
15
+    public native String stringFromJNI();
16
+
17
+    static {
18
+        System.loadLibrary("mlg");
19
+    }
20
+}

+ 170 - 0
app/src/main/res/drawable/ic_launcher_background.xml

@@ -0,0 +1,170 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+    android:width="108dp"
4
+    android:height="108dp"
5
+    android:viewportWidth="108"
6
+    android:viewportHeight="108">
7
+    <path
8
+        android:fillColor="#3DDC84"
9
+        android:pathData="M0,0h108v108h-108z" />
10
+    <path
11
+        android:fillColor="#00000000"
12
+        android:pathData="M9,0L9,108"
13
+        android:strokeWidth="0.8"
14
+        android:strokeColor="#33FFFFFF" />
15
+    <path
16
+        android:fillColor="#00000000"
17
+        android:pathData="M19,0L19,108"
18
+        android:strokeWidth="0.8"
19
+        android:strokeColor="#33FFFFFF" />
20
+    <path
21
+        android:fillColor="#00000000"
22
+        android:pathData="M29,0L29,108"
23
+        android:strokeWidth="0.8"
24
+        android:strokeColor="#33FFFFFF" />
25
+    <path
26
+        android:fillColor="#00000000"
27
+        android:pathData="M39,0L39,108"
28
+        android:strokeWidth="0.8"
29
+        android:strokeColor="#33FFFFFF" />
30
+    <path
31
+        android:fillColor="#00000000"
32
+        android:pathData="M49,0L49,108"
33
+        android:strokeWidth="0.8"
34
+        android:strokeColor="#33FFFFFF" />
35
+    <path
36
+        android:fillColor="#00000000"
37
+        android:pathData="M59,0L59,108"
38
+        android:strokeWidth="0.8"
39
+        android:strokeColor="#33FFFFFF" />
40
+    <path
41
+        android:fillColor="#00000000"
42
+        android:pathData="M69,0L69,108"
43
+        android:strokeWidth="0.8"
44
+        android:strokeColor="#33FFFFFF" />
45
+    <path
46
+        android:fillColor="#00000000"
47
+        android:pathData="M79,0L79,108"
48
+        android:strokeWidth="0.8"
49
+        android:strokeColor="#33FFFFFF" />
50
+    <path
51
+        android:fillColor="#00000000"
52
+        android:pathData="M89,0L89,108"
53
+        android:strokeWidth="0.8"
54
+        android:strokeColor="#33FFFFFF" />
55
+    <path
56
+        android:fillColor="#00000000"
57
+        android:pathData="M99,0L99,108"
58
+        android:strokeWidth="0.8"
59
+        android:strokeColor="#33FFFFFF" />
60
+    <path
61
+        android:fillColor="#00000000"
62
+        android:pathData="M0,9L108,9"
63
+        android:strokeWidth="0.8"
64
+        android:strokeColor="#33FFFFFF" />
65
+    <path
66
+        android:fillColor="#00000000"
67
+        android:pathData="M0,19L108,19"
68
+        android:strokeWidth="0.8"
69
+        android:strokeColor="#33FFFFFF" />
70
+    <path
71
+        android:fillColor="#00000000"
72
+        android:pathData="M0,29L108,29"
73
+        android:strokeWidth="0.8"
74
+        android:strokeColor="#33FFFFFF" />
75
+    <path
76
+        android:fillColor="#00000000"
77
+        android:pathData="M0,39L108,39"
78
+        android:strokeWidth="0.8"
79
+        android:strokeColor="#33FFFFFF" />
80
+    <path
81
+        android:fillColor="#00000000"
82
+        android:pathData="M0,49L108,49"
83
+        android:strokeWidth="0.8"
84
+        android:strokeColor="#33FFFFFF" />
85
+    <path
86
+        android:fillColor="#00000000"
87
+        android:pathData="M0,59L108,59"
88
+        android:strokeWidth="0.8"
89
+        android:strokeColor="#33FFFFFF" />
90
+    <path
91
+        android:fillColor="#00000000"
92
+        android:pathData="M0,69L108,69"
93
+        android:strokeWidth="0.8"
94
+        android:strokeColor="#33FFFFFF" />
95
+    <path
96
+        android:fillColor="#00000000"
97
+        android:pathData="M0,79L108,79"
98
+        android:strokeWidth="0.8"
99
+        android:strokeColor="#33FFFFFF" />
100
+    <path
101
+        android:fillColor="#00000000"
102
+        android:pathData="M0,89L108,89"
103
+        android:strokeWidth="0.8"
104
+        android:strokeColor="#33FFFFFF" />
105
+    <path
106
+        android:fillColor="#00000000"
107
+        android:pathData="M0,99L108,99"
108
+        android:strokeWidth="0.8"
109
+        android:strokeColor="#33FFFFFF" />
110
+    <path
111
+        android:fillColor="#00000000"
112
+        android:pathData="M19,29L89,29"
113
+        android:strokeWidth="0.8"
114
+        android:strokeColor="#33FFFFFF" />
115
+    <path
116
+        android:fillColor="#00000000"
117
+        android:pathData="M19,39L89,39"
118
+        android:strokeWidth="0.8"
119
+        android:strokeColor="#33FFFFFF" />
120
+    <path
121
+        android:fillColor="#00000000"
122
+        android:pathData="M19,49L89,49"
123
+        android:strokeWidth="0.8"
124
+        android:strokeColor="#33FFFFFF" />
125
+    <path
126
+        android:fillColor="#00000000"
127
+        android:pathData="M19,59L89,59"
128
+        android:strokeWidth="0.8"
129
+        android:strokeColor="#33FFFFFF" />
130
+    <path
131
+        android:fillColor="#00000000"
132
+        android:pathData="M19,69L89,69"
133
+        android:strokeWidth="0.8"
134
+        android:strokeColor="#33FFFFFF" />
135
+    <path
136
+        android:fillColor="#00000000"
137
+        android:pathData="M19,79L89,79"
138
+        android:strokeWidth="0.8"
139
+        android:strokeColor="#33FFFFFF" />
140
+    <path
141
+        android:fillColor="#00000000"
142
+        android:pathData="M29,19L29,89"
143
+        android:strokeWidth="0.8"
144
+        android:strokeColor="#33FFFFFF" />
145
+    <path
146
+        android:fillColor="#00000000"
147
+        android:pathData="M39,19L39,89"
148
+        android:strokeWidth="0.8"
149
+        android:strokeColor="#33FFFFFF" />
150
+    <path
151
+        android:fillColor="#00000000"
152
+        android:pathData="M49,19L49,89"
153
+        android:strokeWidth="0.8"
154
+        android:strokeColor="#33FFFFFF" />
155
+    <path
156
+        android:fillColor="#00000000"
157
+        android:pathData="M59,19L59,89"
158
+        android:strokeWidth="0.8"
159
+        android:strokeColor="#33FFFFFF" />
160
+    <path
161
+        android:fillColor="#00000000"
162
+        android:pathData="M69,19L69,89"
163
+        android:strokeWidth="0.8"
164
+        android:strokeColor="#33FFFFFF" />
165
+    <path
166
+        android:fillColor="#00000000"
167
+        android:pathData="M79,19L79,89"
168
+        android:strokeWidth="0.8"
169
+        android:strokeColor="#33FFFFFF" />
170
+</vector>

File diff suppressed because it is too large
+ 30 - 0
app/src/main/res/drawable/ic_launcher_foreground.xml


+ 18 - 0
app/src/main/res/layout/activity_main.xml

@@ -0,0 +1,18 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+    xmlns:app="http://schemas.android.com/apk/res-auto"
4
+    xmlns:tools="http://schemas.android.com/tools"
5
+    android:layout_width="match_parent"
6
+    android:layout_height="match_parent"
7
+    tools:context=".MainActivity">
8
+
9
+    <TextView
10
+        android:layout_width="wrap_content"
11
+        android:layout_height="wrap_content"
12
+        android:text="Hello World!"
13
+        app:layout_constraintBottom_toBottomOf="parent"
14
+        app:layout_constraintEnd_toEndOf="parent"
15
+        app:layout_constraintStart_toStartOf="parent"
16
+        app:layout_constraintTop_toTopOf="parent" />
17
+
18
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 6 - 0
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
+    <background android:drawable="@drawable/ic_launcher_background" />
4
+    <foreground android:drawable="@drawable/ic_launcher_foreground" />
5
+    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
6
+</adaptive-icon>

+ 6 - 0
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
+    <background android:drawable="@drawable/ic_launcher_background" />
4
+    <foreground android:drawable="@drawable/ic_launcher_foreground" />
5
+    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
6
+</adaptive-icon>

BIN
app/src/main/res/mipmap-hdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-hdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-mdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-mdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-xhdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp


BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp


BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp


+ 7 - 0
app/src/main/res/values-night/themes.xml

@@ -0,0 +1,7 @@
1
+<resources xmlns:tools="http://schemas.android.com/tools">
2
+    <!-- Base application theme. -->
3
+    <style name="Base.Theme.Eitc_erm_dental_android" parent="Theme.Material3.DayNight.NoActionBar">
4
+        <!-- Customize your dark theme here. -->
5
+        <!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
6
+    </style>
7
+</resources>

+ 5 - 0
app/src/main/res/values/colors.xml

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<resources>
3
+    <color name="black">#FF000000</color>
4
+    <color name="white">#FFFFFFFF</color>
5
+</resources>

+ 3 - 0
app/src/main/res/values/strings.xml

@@ -0,0 +1,3 @@
1
+<resources>
2
+    <string name="app_name">eitc_erm_dental_android</string>
3
+</resources>

+ 9 - 0
app/src/main/res/values/themes.xml

@@ -0,0 +1,9 @@
1
+<resources xmlns:tools="http://schemas.android.com/tools">
2
+    <!-- Base application theme. -->
3
+    <style name="Base.Theme.Eitc_erm_dental_android" parent="Theme.Material3.DayNight.NoActionBar">
4
+        <!-- Customize your light theme here. -->
5
+        <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
6
+    </style>
7
+
8
+    <style name="Theme.Eitc_erm_dental_android" parent="Base.Theme.Eitc_erm_dental_android" />
9
+</resources>

+ 13 - 0
app/src/main/res/xml/backup_rules.xml

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="utf-8"?><!--
2
+   Sample backup rules file; uncomment and customize as necessary.
3
+   See https://developer.android.com/guide/topics/data/autobackup
4
+   for details.
5
+   Note: This file is ignored for devices older that API 31
6
+   See https://developer.android.com/about/versions/12/backup-restore
7
+-->
8
+<full-backup-content>
9
+    <!--
10
+   <include domain="sharedpref" path="."/>
11
+   <exclude domain="sharedpref" path="device.xml"/>
12
+-->
13
+</full-backup-content>

+ 19 - 0
app/src/main/res/xml/data_extraction_rules.xml

@@ -0,0 +1,19 @@
1
+<?xml version="1.0" encoding="utf-8"?><!--
2
+   Sample data extraction rules file; uncomment and customize as necessary.
3
+   See https://developer.android.com/about/versions/12/backup-restore#xml-changes
4
+   for details.
5
+-->
6
+<data-extraction-rules>
7
+    <cloud-backup>
8
+        <!-- TODO: Use <include> and <exclude> to control what is backed up.
9
+        <include .../>
10
+        <exclude .../>
11
+        -->
12
+    </cloud-backup>
13
+    <!--
14
+    <device-transfer>
15
+        <include .../>
16
+        <exclude .../>
17
+    </device-transfer>
18
+    -->
19
+</data-extraction-rules>

+ 17 - 0
app/src/test/java/com/gnhz/eitc_erm_dental_android/ExampleUnitTest.java

@@ -0,0 +1,17 @@
1
+package com.gnhz.eitc_erm_dental_android;
2
+
3
+import org.junit.Test;
4
+
5
+import static org.junit.Assert.*;
6
+
7
+/**
8
+ * Example local unit test, which will execute on the development machine (host).
9
+ *
10
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
11
+ */
12
+public class ExampleUnitTest {
13
+    @Test
14
+    public void addition_isCorrect() {
15
+        assertEquals(4, 2 + 2);
16
+    }
17
+}

+ 4 - 0
build.gradle

@@ -0,0 +1,4 @@
1
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
2
+plugins {
3
+id 'com.android.application' version '8.2.2' apply false
4
+}

+ 21 - 0
gradle.properties

@@ -0,0 +1,21 @@
1
+# Project-wide Gradle settings.
2
+# IDE (e.g. Android Studio) users:
3
+# Gradle settings configured through the IDE *will override*
4
+# any settings specified in this file.
5
+# For more details on how to configure your build environment visit
6
+# http://www.gradle.org/docs/current/userguide/build_environment.html
7
+# Specifies the JVM arguments used for the daemon process.
8
+# The setting is particularly useful for tweaking memory settings.
9
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10
+# When configured, Gradle will run in incubating parallel mode.
11
+# This option should only be used with decoupled projects. More details, visit
12
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13
+# org.gradle.parallel=true
14
+# AndroidX package structure to make it clearer which packages are bundled with the
15
+# Android operating system, and which are packaged with your app's APK
16
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
17
+android.useAndroidX=true
18
+# Enables namespacing of each library's R class so that its R class includes only the
19
+# resources declared in the library itself and none from the library's dependencies,
20
+# thereby reducing the size of the R class for that library
21
+android.nonTransitiveRClass=true

BIN
gradle/wrapper/gradle-wrapper.jar


+ 6 - 0
gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,6 @@
1
+#Mon Aug 05 14:57:03 GMT+08:00 2024
2
+distributionBase=GRADLE_USER_HOME
3
+distributionPath=wrapper/dists
4
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
5
+zipStoreBase=GRADLE_USER_HOME
6
+zipStorePath=wrapper/dists

+ 185 - 0
gradlew

@@ -0,0 +1,185 @@
1
+#!/usr/bin/env sh
2
+
3
+#
4
+# Copyright 2015 the original author or authors.
5
+#
6
+# Licensed under the Apache License, Version 2.0 (the "License");
7
+# you may not use this file except in compliance with the License.
8
+# You may obtain a copy of the License at
9
+#
10
+#      https://www.apache.org/licenses/LICENSE-2.0
11
+#
12
+# Unless required by applicable law or agreed to in writing, software
13
+# distributed under the License is distributed on an "AS IS" BASIS,
14
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+# See the License for the specific language governing permissions and
16
+# limitations under the License.
17
+#
18
+
19
+##############################################################################
20
+##
21
+##  Gradle start up script for UN*X
22
+##
23
+##############################################################################
24
+
25
+# Attempt to set APP_HOME
26
+# Resolve links: $0 may be a link
27
+PRG="$0"
28
+# Need this for relative symlinks.
29
+while [ -h "$PRG" ] ; do
30
+    ls=`ls -ld "$PRG"`
31
+    link=`expr "$ls" : '.*-> \(.*\)$'`
32
+    if expr "$link" : '/.*' > /dev/null; then
33
+        PRG="$link"
34
+    else
35
+        PRG=`dirname "$PRG"`"/$link"
36
+    fi
37
+done
38
+SAVED="`pwd`"
39
+cd "`dirname \"$PRG\"`/" >/dev/null
40
+APP_HOME="`pwd -P`"
41
+cd "$SAVED" >/dev/null
42
+
43
+APP_NAME="Gradle"
44
+APP_BASE_NAME=`basename "$0"`
45
+
46
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48
+
49
+# Use the maximum available, or set MAX_FD != -1 to use that value.
50
+MAX_FD="maximum"
51
+
52
+warn () {
53
+    echo "$*"
54
+}
55
+
56
+die () {
57
+    echo
58
+    echo "$*"
59
+    echo
60
+    exit 1
61
+}
62
+
63
+# OS specific support (must be 'true' or 'false').
64
+cygwin=false
65
+msys=false
66
+darwin=false
67
+nonstop=false
68
+case "`uname`" in
69
+  CYGWIN* )
70
+    cygwin=true
71
+    ;;
72
+  Darwin* )
73
+    darwin=true
74
+    ;;
75
+  MINGW* )
76
+    msys=true
77
+    ;;
78
+  NONSTOP* )
79
+    nonstop=true
80
+    ;;
81
+esac
82
+
83
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84
+
85
+
86
+# Determine the Java command to use to start the JVM.
87
+if [ -n "$JAVA_HOME" ] ; then
88
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89
+        # IBM's JDK on AIX uses strange locations for the executables
90
+        JAVACMD="$JAVA_HOME/jre/sh/java"
91
+    else
92
+        JAVACMD="$JAVA_HOME/bin/java"
93
+    fi
94
+    if [ ! -x "$JAVACMD" ] ; then
95
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96
+
97
+Please set the JAVA_HOME variable in your environment to match the
98
+location of your Java installation."
99
+    fi
100
+else
101
+    JAVACMD="java"
102
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103
+
104
+Please set the JAVA_HOME variable in your environment to match the
105
+location of your Java installation."
106
+fi
107
+
108
+# Increase the maximum file descriptors if we can.
109
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110
+    MAX_FD_LIMIT=`ulimit -H -n`
111
+    if [ $? -eq 0 ] ; then
112
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113
+            MAX_FD="$MAX_FD_LIMIT"
114
+        fi
115
+        ulimit -n $MAX_FD
116
+        if [ $? -ne 0 ] ; then
117
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
118
+        fi
119
+    else
120
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121
+    fi
122
+fi
123
+
124
+# For Darwin, add options to specify how the application appears in the dock
125
+if $darwin; then
126
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127
+fi
128
+
129
+# For Cygwin or MSYS, switch paths to Windows format before running java
130
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133
+
134
+    JAVACMD=`cygpath --unix "$JAVACMD"`
135
+
136
+    # We build the pattern for arguments to be converted via cygpath
137
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138
+    SEP=""
139
+    for dir in $ROOTDIRSRAW ; do
140
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
141
+        SEP="|"
142
+    done
143
+    OURCYGPATTERN="(^($ROOTDIRS))"
144
+    # Add a user-defined pattern to the cygpath arguments
145
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147
+    fi
148
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
149
+    i=0
150
+    for arg in "$@" ; do
151
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
153
+
154
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
155
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156
+        else
157
+            eval `echo args$i`="\"$arg\""
158
+        fi
159
+        i=`expr $i + 1`
160
+    done
161
+    case $i in
162
+        0) set -- ;;
163
+        1) set -- "$args0" ;;
164
+        2) set -- "$args0" "$args1" ;;
165
+        3) set -- "$args0" "$args1" "$args2" ;;
166
+        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167
+        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168
+        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169
+        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170
+        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171
+        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172
+    esac
173
+fi
174
+
175
+# Escape application args
176
+save () {
177
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178
+    echo " "
179
+}
180
+APP_ARGS=`save "$@"`
181
+
182
+# Collect all arguments for the java command, following the shell quoting and substitution rules
183
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184
+
185
+exec "$JAVACMD" "$@"

+ 89 - 0
gradlew.bat

@@ -0,0 +1,89 @@
1
+@rem
2
+@rem Copyright 2015 the original author or authors.
3
+@rem
4
+@rem Licensed under the Apache License, Version 2.0 (the "License");
5
+@rem you may not use this file except in compliance with the License.
6
+@rem You may obtain a copy of the License at
7
+@rem
8
+@rem      https://www.apache.org/licenses/LICENSE-2.0
9
+@rem
10
+@rem Unless required by applicable law or agreed to in writing, software
11
+@rem distributed under the License is distributed on an "AS IS" BASIS,
12
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+@rem See the License for the specific language governing permissions and
14
+@rem limitations under the License.
15
+@rem
16
+
17
+@if "%DEBUG%" == "" @echo off
18
+@rem ##########################################################################
19
+@rem
20
+@rem  Gradle startup script for Windows
21
+@rem
22
+@rem ##########################################################################
23
+
24
+@rem Set local scope for the variables with windows NT shell
25
+if "%OS%"=="Windows_NT" setlocal
26
+
27
+set DIRNAME=%~dp0
28
+if "%DIRNAME%" == "" set DIRNAME=.
29
+set APP_BASE_NAME=%~n0
30
+set APP_HOME=%DIRNAME%
31
+
32
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
33
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34
+
35
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37
+
38
+@rem Find java.exe
39
+if defined JAVA_HOME goto findJavaFromJavaHome
40
+
41
+set JAVA_EXE=java.exe
42
+%JAVA_EXE% -version >NUL 2>&1
43
+if "%ERRORLEVEL%" == "0" goto execute
44
+
45
+echo.
46
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47
+echo.
48
+echo Please set the JAVA_HOME variable in your environment to match the
49
+echo location of your Java installation.
50
+
51
+goto fail
52
+
53
+:findJavaFromJavaHome
54
+set JAVA_HOME=%JAVA_HOME:"=%
55
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56
+
57
+if exist "%JAVA_EXE%" goto execute
58
+
59
+echo.
60
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61
+echo.
62
+echo Please set the JAVA_HOME variable in your environment to match the
63
+echo location of your Java installation.
64
+
65
+goto fail
66
+
67
+:execute
68
+@rem Setup the command line
69
+
70
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71
+
72
+
73
+@rem Execute Gradle
74
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75
+
76
+:end
77
+@rem End local scope for the variables with windows NT shell
78
+if "%ERRORLEVEL%"=="0" goto mainEnd
79
+
80
+:fail
81
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82
+rem the _cmd.exe /c_ return code!
83
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84
+exit /b 1
85
+
86
+:mainEnd
87
+if "%OS%"=="Windows_NT" endlocal
88
+
89
+:omega

+ 22 - 0
settings.gradle

@@ -0,0 +1,22 @@
1
+pluginManagement {
2
+    repositories {
3
+        google()
4
+        mavenCentral()
5
+        gradlePluginPortal()
6
+
7
+        flatDir {
8
+            dirs("libs")
9
+        }
10
+
11
+    }
12
+}
13
+dependencyResolutionManagement {
14
+    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
15
+    repositories {
16
+        google()
17
+        mavenCentral()
18
+    }
19
+}
20
+
21
+rootProject.name = "eitc_erm_dental_android"
22
+include ':app'