From 361b366f324c07ffa8ed7afc332292c4f95e3285 Mon Sep 17 00:00:00 2001 From: wanghao <wangh@mesnac.com> Date: Fri, 14 Feb 2025 14:19:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=20=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 15 ++ .idea/.gitignore | 3 + .idea/compiler.xml | 6 + .idea/gradle.xml | 21 ++ .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/misc.xml | 8 + .idea/vcs.xml | 6 + app/.gitignore | 1 + app/build.gradle | 48 ++++ app/proguard-rules.pro | 21 ++ .../as_trak/ExampleInstrumentedTest.java | 26 +++ app/src/main/AndroidManifest.xml | 40 ++++ app/src/main/assets/litepal.xml | 10 + .../com/example/as_trak/InfoActivity.java | 33 +++ .../com/example/as_trak/LoadMainActivity.java | 215 ++++++++++++++++++ .../com/example/as_trak/LoadScanActivity.java | 163 +++++++++++++ .../com/example/as_trak/MainActivity.java | 40 ++++ .../com/example/as_trak/UnLoadActivity.java | 28 +++ .../as_trak/adapter/CargoInfoAdapter.java | 71 ++++++ .../as_trak/adapter/CargoListAdapter.java | 105 +++++++++ .../as_trak/adapter/FlightInfoAdapter.java | 55 +++++ .../as_trak/adapter/LoadInfoAdapter.java | 76 +++++++ .../as_trak/adapter/LoadListAdapter.java | 71 ++++++ .../adapter/MyFragmentStateAdapter.java | 35 +++ .../example/as_trak/base/BaseActivity.java | 50 ++++ .../as_trak/dialog/AddFlightDialog.java | 53 +++++ .../example/as_trak/dialog/UpdataDialog.java | 57 +++++ .../com/example/as_trak/entity/CargoInfo.java | 81 +++++++ .../example/as_trak/entity/FlightInfo.java | 89 ++++++++ .../example/as_trak/entity/LoadOperation.java | 181 +++++++++++++++ .../as_trak/fragment/FlightInfoFragment.java | 211 +++++++++++++++++ .../as_trak/fragment/LuggageFragment.java | 120 ++++++++++ .../as_trak/fragment/been/LuggageBeen.java | 111 +++++++++ .../com/example/as_trak/toast/LoadToast.java | 38 ++++ app/src/main/res/drawable/button_add.xml | 6 + app/src/main/res/drawable/button_delete.xml | 6 + app/src/main/res/drawable/button_update.xml | 6 + .../drawable/elected_tab_background_color.xml | 5 + .../res/drawable/ic_launcher_background.xml | 170 ++++++++++++++ .../res/drawable/ic_launcher_foreground.xml | 30 +++ app/src/main/res/drawable/item_click_bg.xml | 6 + app/src/main/res/drawable/item_over.xml | 5 + app/src/main/res/drawable/main_bg.xml | 21 ++ app/src/main/res/drawable/main_menu_bg.xml | 5 + app/src/main/res/drawable/select_bg.xml | 6 + .../res/drawable/tab_background_selector.xml | 7 + app/src/main/res/drawable/tablayout_bg.xml | 10 + app/src/main/res/layout/activity_info.xml | 57 +++++ .../main/res/layout/activity_load_main.xml | 153 +++++++++++++ .../main/res/layout/activity_load_scan.xml | 192 ++++++++++++++++ app/src/main/res/layout/activity_main.xml | 161 +++++++++++++ app/src/main/res/layout/activity_un_load.xml | 29 +++ app/src/main/res/layout/dialog_add_flight.xml | 129 +++++++++++ app/src/main/res/layout/dialog_update.xml | 71 ++++++ .../main/res/layout/fragment_flight_info.xml | 186 +++++++++++++++ app/src/main/res/layout/fragment_luggage.xml | 209 +++++++++++++++++ app/src/main/res/layout/item_cargo.xml | 96 ++++++++ app/src/main/res/layout/item_cargo_list.xml | 22 ++ app/src/main/res/layout/item_flight_info.xml | 34 +++ app/src/main/res/layout/item_load_info.xml | 88 +++++++ app/src/main/res/layout/item_opin_list.xml | 82 +++++++ app/src/main/res/layout/toast_load.xml | 25 ++ app/src/main/res/layout/toolbar.xml | 35 +++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + app/src/main/res/mipmap-hdpi/ic_cha.png | Bin 0 -> 476 bytes app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes app/src/main/res/mipmap-hdpi/ic_no.png | Bin 0 -> 8609 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes app/src/main/res/mipmap-xhdpi/ic_back.png | Bin 0 -> 642 bytes app/src/main/res/mipmap-xhdpi/ic_select.png | Bin 0 -> 450 bytes app/src/main/res/mipmap-xhdpi/icon_add.png | Bin 0 -> 2792 bytes app/src/main/res/mipmap-xhdpi/icon_chaxun.png | Bin 0 -> 2599 bytes app/src/main/res/mipmap-xhdpi/icon_left.png | Bin 0 -> 1492 bytes .../main/res/mipmap-xhdpi/icon_menu_info.png | Bin 0 -> 23988 bytes .../main/res/mipmap-xhdpi/icon_menu_load.png | Bin 0 -> 17420 bytes .../res/mipmap-xhdpi/icon_menu_unload.png | Bin 0 -> 22781 bytes app/src/main/res/mipmap-xhdpi/icon_right.png | Bin 0 -> 2149 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes app/src/main/res/raw/error.mp3 | Bin 0 -> 31533 bytes app/src/main/res/values-night/themes.xml | 7 + app/src/main/res/values/colors.xml | 7 + app/src/main/res/values/strings.xml | 5 + app/src/main/res/values/themes.xml | 53 +++++ app/src/main/res/xml/backup_rules.xml | 13 ++ .../main/res/xml/data_extraction_rules.xml | 19 ++ .../com/example/as_trak/ExampleUnitTest.java | 17 ++ build.gradle | 4 + gradle.properties | 21 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 185 +++++++++++++++ gradlew.bat | 89 ++++++++ settings.gradle | 31 +++ 99 files changed, 4415 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/example/as_trak/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/assets/litepal.xml create mode 100644 app/src/main/java/com/example/as_trak/InfoActivity.java create mode 100644 app/src/main/java/com/example/as_trak/LoadMainActivity.java create mode 100644 app/src/main/java/com/example/as_trak/LoadScanActivity.java create mode 100644 app/src/main/java/com/example/as_trak/MainActivity.java create mode 100644 app/src/main/java/com/example/as_trak/UnLoadActivity.java create mode 100644 app/src/main/java/com/example/as_trak/adapter/CargoInfoAdapter.java create mode 100644 app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java create mode 100644 app/src/main/java/com/example/as_trak/adapter/FlightInfoAdapter.java create mode 100644 app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java create mode 100644 app/src/main/java/com/example/as_trak/adapter/LoadListAdapter.java create mode 100644 app/src/main/java/com/example/as_trak/adapter/MyFragmentStateAdapter.java create mode 100644 app/src/main/java/com/example/as_trak/base/BaseActivity.java create mode 100644 app/src/main/java/com/example/as_trak/dialog/AddFlightDialog.java create mode 100644 app/src/main/java/com/example/as_trak/dialog/UpdataDialog.java create mode 100644 app/src/main/java/com/example/as_trak/entity/CargoInfo.java create mode 100644 app/src/main/java/com/example/as_trak/entity/FlightInfo.java create mode 100644 app/src/main/java/com/example/as_trak/entity/LoadOperation.java create mode 100644 app/src/main/java/com/example/as_trak/fragment/FlightInfoFragment.java create mode 100644 app/src/main/java/com/example/as_trak/fragment/LuggageFragment.java create mode 100644 app/src/main/java/com/example/as_trak/fragment/been/LuggageBeen.java create mode 100644 app/src/main/java/com/example/as_trak/toast/LoadToast.java create mode 100644 app/src/main/res/drawable/button_add.xml create mode 100644 app/src/main/res/drawable/button_delete.xml create mode 100644 app/src/main/res/drawable/button_update.xml create mode 100644 app/src/main/res/drawable/elected_tab_background_color.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/item_click_bg.xml create mode 100644 app/src/main/res/drawable/item_over.xml create mode 100644 app/src/main/res/drawable/main_bg.xml create mode 100644 app/src/main/res/drawable/main_menu_bg.xml create mode 100644 app/src/main/res/drawable/select_bg.xml create mode 100644 app/src/main/res/drawable/tab_background_selector.xml create mode 100644 app/src/main/res/drawable/tablayout_bg.xml create mode 100644 app/src/main/res/layout/activity_info.xml create mode 100644 app/src/main/res/layout/activity_load_main.xml create mode 100644 app/src/main/res/layout/activity_load_scan.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_un_load.xml create mode 100644 app/src/main/res/layout/dialog_add_flight.xml create mode 100644 app/src/main/res/layout/dialog_update.xml create mode 100644 app/src/main/res/layout/fragment_flight_info.xml create mode 100644 app/src/main/res/layout/fragment_luggage.xml create mode 100644 app/src/main/res/layout/item_cargo.xml create mode 100644 app/src/main/res/layout/item_cargo_list.xml create mode 100644 app/src/main/res/layout/item_flight_info.xml create mode 100644 app/src/main/res/layout/item_load_info.xml create mode 100644 app/src/main/res/layout/item_opin_list.xml create mode 100644 app/src/main/res/layout/toast_load.xml create mode 100644 app/src/main/res/layout/toolbar.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_cha.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_no.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_back.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_select.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon_add.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon_chaxun.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon_left.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon_menu_info.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon_menu_load.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon_menu_unload.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon_right.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/raw/error.mp3 create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/com/example/as_trak/ExampleUnitTest.java create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <bytecodeTargetLevel target="17" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..a058051 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleMigrationSettings" migrationVersion="1" /> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="testRunner" value="GRADLE" /> + <option name="distributionType" value="LOCAL" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleHome" value="$PROJECT_DIR$/../../../android gradle version/gradle-8.0.2" /> + <option name="gradleJvm" value="jbr-17" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..0bf205c --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ +<component name="InspectionProjectProfileManager"> + <profile version="1.0"> + <option name="myName" value="Project Default" /> + <inspection_tool class="AndroidUnknownAttribute" enabled="false" level="WARNING" enabled_by_default="false" /> + </profile> +</component> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0f86676 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file 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 new file mode 100644 index 0000000..d663eb7 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,48 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.example.as_trak' + compileSdk 33 + + defaultConfig { + applicationId "com.example.as_trak" + minSdk 26 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + buildFeatures { + viewBinding true + dataBinding true + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.8.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + implementation 'org.litepal.guolindev:core:3.2.3' + + implementation 'org.apache.poi:poi:5.2.3' + // Apache POI 处理 Excel 2007+ 格式(.xlsx)的库 + implementation 'org.apache.poi:poi-ooxml:5.2.3' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/com/example/as_trak/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/as_trak/ExampleInstrumentedTest.java new file mode 100644 index 0000000..36366e3 --- /dev/null +++ b/app/src/androidTest/java/com/example/as_trak/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.as_trak; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.example.as_trak", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..5965732 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools"> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> + <application + android:name="org.litepal.LitePalApplication" + android:allowBackup="true" + android:dataExtractionRules="@xml/data_extraction_rules" + android:fullBackupContent="@xml/backup_rules" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:roundIcon="@mipmap/ic_launcher_round" + android:supportsRtl="true" + android:theme="@style/Theme.Astrak" + tools:ignore="MissingClass" + tools:targetApi="31"> + <activity + android:name=".UnLoadActivity" + android:exported="false" /> + <activity + android:name=".InfoActivity" + android:exported="false" /> + <activity + android:name=".LoadScanActivity" + android:exported="false" /> + <activity + android:name=".LoadMainActivity" + android:exported="false" /> + <activity + android:name=".MainActivity" + android:exported="true"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> \ No newline at end of file diff --git a/app/src/main/assets/litepal.xml b/app/src/main/assets/litepal.xml new file mode 100644 index 0000000..95bd173 --- /dev/null +++ b/app/src/main/assets/litepal.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<litepal> + <dbname value="AS_TRAK" /> + <version value="2" /> + <list> + <mapping class="com.example.as_trak.entity.LoadOperation"/> + <mapping class="com.example.as_trak.entity.CargoInfo"/> + <mapping class="com.example.as_trak.entity.FlightInfo" /> + </list> +</litepal> \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/InfoActivity.java b/app/src/main/java/com/example/as_trak/InfoActivity.java new file mode 100644 index 0000000..f2e0196 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/InfoActivity.java @@ -0,0 +1,33 @@ +package com.example.as_trak; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; + +import android.os.Bundle; + +import com.example.as_trak.adapter.MyFragmentStateAdapter; +import com.example.as_trak.base.BaseActivity; +import com.example.as_trak.databinding.ActivityInfoBinding; +import com.google.android.material.tabs.TabLayoutMediator; + +public class InfoActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ActivityInfoBinding binding=DataBindingUtil. setContentView(this,R.layout.activity_info); + binding.viewPager2.setAdapter(new MyFragmentStateAdapter(this)); + // + new TabLayoutMediator(binding.infoTabLayout, binding.viewPager2, (tab, position) -> { + switch (position) { + case 0: + tab.setText("行李信息"); + break; + case 1: + tab.setText("航班信息"); + break; + + } + }).attach(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/LoadMainActivity.java b/app/src/main/java/com/example/as_trak/LoadMainActivity.java new file mode 100644 index 0000000..efeea4b --- /dev/null +++ b/app/src/main/java/com/example/as_trak/LoadMainActivity.java @@ -0,0 +1,215 @@ +package com.example.as_trak; + +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.Nullable; +import androidx.databinding.DataBindingUtil; +import androidx.databinding.ObservableBoolean; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ListPopupWindow; +import android.widget.Toast; + +import com.example.as_trak.adapter.CargoInfoAdapter; +import com.example.as_trak.adapter.FlightInfoAdapter; +import com.example.as_trak.base.BaseActivity; +import com.example.as_trak.databinding.ActivityLoadMainBinding; +import com.example.as_trak.dialog.AddFlightDialog; +import com.example.as_trak.entity.CargoInfo; +import com.example.as_trak.entity.FlightInfo; +import com.example.as_trak.entity.LoadOperation; +import com.example.as_trak.toast.LoadToast; + +import org.litepal.LitePal; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class LoadMainActivity extends BaseActivity implements AddFlightDialog.AddFlightDialogCall, CargoInfoAdapter.CargoInfoCall, AdapterView.OnItemClickListener { + private ObservableBoolean visibState; + private AddFlightDialog addFlightDialog; + private List<FlightInfo> flightList; + private ListPopupWindow lpw; + private FlightInfo flightInfoTag; + private CargoInfoAdapter cargoInfoAdapter; + private List<CargoInfo> cargoInfoList; + private FlightInfoAdapter adapter; + + private ActivityLoadMainBinding binding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = DataBindingUtil.setContentView(this, R.layout.activity_load_main); + visibState = new ObservableBoolean(); + visibState.set(true); + binding.setVisibState(visibState); + // 装载器适配 + cargoInfoAdapter = new CargoInfoAdapter(this, this); + binding.setAdapter(cargoInfoAdapter); + // 航班添加框 + addFlightDialog = new AddFlightDialog(this); + addFlightDialog.setCall(this); + // 航班选择框 + lpw = new ListPopupWindow(this); + lpw.setAnchorView(binding.loadMainFlightCode); + // 航班查询 + flightList = LitePal.order("createTime desc").find(FlightInfo.class); + if (flightList == null) flightList = new ArrayList<>(); + adapter = new FlightInfoAdapter(this, flightList); + lpw.setAdapter(adapter); + lpw.setOnItemClickListener(this); + binding.loadMainFlightCode.setOnClickListener(v -> { + lpw.show(); + }); + intent = new Intent(this, LoadScanActivity.class); + + + } + + + // 显示航班添加框 + public void loadAddFlight(View view) { + addFlightDialog.show(); + } + + // 显示添加货箱按钮 + public void loadAddEdit(View view) { + visibState.set(false); + } + + // 添加货箱 + public void loadAddCargo(View view) { + if (flightInfoTag == null) { + return; + } + String cargoCode = binding.loadMainCargoCode.getText().toString(); + if (cargoCode.isEmpty()) { + return; + } + int id = flightInfoTag.getId(); + int countTag = LitePal.where("cargoCode= ? and flightId=?", cargoCode, String.valueOf(id)).count(CargoInfo.class); + if (countTag > 0) { + Toast.makeText(this, "装载单元已经绑定", Toast.LENGTH_SHORT).show(); + return; + } + CargoInfo cargoInfo = new CargoInfo(); + cargoInfo.setCount(0); + cargoInfo.setCargoCode(cargoCode); + cargoInfo.setFlightId(id); + cargoInfo.setState("待装载"); + cargoInfo.save(); + cargoInfoList.add(cargoInfo); + cargoInfoAdapter.notifyDataSetChanged(); + binding.loadMainCargoCode.setText(null); + Toast.makeText(this, "绑定成功", Toast.LENGTH_SHORT).show(); + } + + // 关闭货箱添加 + public void loadCloseEdit(View view) { + visibState.set(true); + binding.loadMainCargoCode.setText(null); + } + + /** + * 返回新增的航班信息 + * + * @param flightCode 航班编号 + * @param destination 三字代码 + * @param date 日期 + * @param time 时间 + */ + @Override + public void flightInfo(String flightCode, String destination, String date, String time) { + FlightInfo flightInfo = new FlightInfo(); + flightInfo.setFlightCode(flightCode); + flightInfo.setDestination(destination); + flightInfo.setTakeoffDate(date); + flightInfo.setTakeoffTime(time); + flightInfo.setCreateTime(new Date()); + flightInfo.save(); + addFlightDialog.dismiss(); + flightList.add(flightInfo); + adapter.notifyDataSetChanged(); + } + +/* + @Override + public void sanCodeResult(String code) { + super.sanCodeResult(code); + Log.e("TAG", "sanCodeResult:" + code); + }*/ + + @Override + public void updateCargoInfo(int index) { + // CargoInfo cargoInfo = cargoInfoList.get(index); + // cargoInfoAdapter.notifyDataSetChanged(); + } + + @Override + public void deleteCargoInfo(int index) { + CargoInfo cargoInfo = cargoInfoList.get(index); + if (!cargoInfo.getState().equals("待装载")) { + Toast.makeText(this, "已经装载行李,不能删除", Toast.LENGTH_SHORT).show(); + return; + } + cargoInfo.delete(); + cargoInfoList.remove(index); + cargoInfoAdapter.notifyDataSetChanged(); + } + + private Intent intent; + + public void clickCargoInfo(View view) { + if (flightInfoTag == null) { + Toast.makeText(this, "没有选择航班", Toast.LENGTH_SHORT).show(); + return; + } + if (cargoInfoList == null || cargoInfoList.isEmpty()) { + Toast.makeText(this, "没有添加装载单元", Toast.LENGTH_SHORT).show(); + return; + } + intent.putExtra("id", flightInfoTag.getId()); + startActivityForResult(intent, 0); + } + + // 选中航班 + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + flightInfoTag = flightList.get(position); + // 添加输入框 + binding.loadMainFlightCode.setText(flightInfoTag.getFlightCode()); + // 查询货框 + selectCargo(); + Toast.makeText(this, "查询成功", Toast.LENGTH_SHORT).show(); + lpw.dismiss(); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + Log.e("TAG", "onActivityResult:重加载"); + selectCargo(); + } + + @SuppressLint("NotifyDataSetChanged") + private void selectCargo() { + cargoInfoList = LitePal.where("flightId = ? ", + String.valueOf(flightInfoTag.getId())).find(CargoInfo.class); + if (!cargoInfoList.isEmpty()) { + cargoInfoList.forEach(cargoInfo -> { + int countNum = LitePal.where("cargoId = ? and type ='正常' and (state IS NULL or state = '修改')",String.valueOf(cargoInfo.getId())).count(LoadOperation.class); + cargoInfo.setCount(countNum); + }); + } + + + cargoInfoAdapter.setList(cargoInfoList); + cargoInfoAdapter.notifyDataSetChanged(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/LoadScanActivity.java b/app/src/main/java/com/example/as_trak/LoadScanActivity.java new file mode 100644 index 0000000..a84fc0b --- /dev/null +++ b/app/src/main/java/com/example/as_trak/LoadScanActivity.java @@ -0,0 +1,163 @@ +package com.example.as_trak; + +import androidx.annotation.RequiresApi; +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; + +import android.annotation.SuppressLint; +import android.os.Build; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Toast; + +import com.example.as_trak.adapter.CargoListAdapter; +import com.example.as_trak.adapter.LoadInfoAdapter; +import com.example.as_trak.base.BaseActivity; +import com.example.as_trak.databinding.ActivityLoadScanBinding; +import com.example.as_trak.dialog.UpdataDialog; +import com.example.as_trak.entity.CargoInfo; +import com.example.as_trak.entity.FlightInfo; +import com.example.as_trak.entity.LoadOperation; +import com.example.as_trak.toast.LoadToast; + +import org.litepal.LitePal; + +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +public class LoadScanActivity extends BaseActivity implements CargoListAdapter.CargoInfoCall, LoadInfoAdapter.LoadInfoCall { + private List<CargoInfo> cargoInfoList; + private CargoListAdapter adapter; + private List<LoadOperation> loadOperations; + private CargoInfo cargoInfoTag; + private FlightInfo flightInfo; + private LoadToast loadToast; + + private LoadInfoAdapter loadInfoAdapter; + // 定义时间格式 + private DateTimeFormatter formatter; + + + private UpdataDialog updataDialog; + + @RequiresApi(api = Build.VERSION_CODES.O) + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + com.example.as_trak.databinding.ActivityLoadScanBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_load_scan); + initScan(); + int id = getIntent().getIntExtra("id", 0); + flightInfo = LitePal.where("id= ?", String.valueOf(id)).findFirst(FlightInfo.class); + + binding.setData(flightInfo); + cargoInfoList = LitePal.where("flightId = ?", String.valueOf(id)).find(CargoInfo.class); + adapter = new CargoListAdapter(this, this); + adapter.setList(cargoInfoList); + binding.setAdapter1(adapter); + formatter = DateTimeFormatter.ofPattern("HH:mm"); + loadToast = new LoadToast(this); + loadInfoAdapter = new LoadInfoAdapter(this, this); + binding.setAdapter2(loadInfoAdapter); + updataDialog = new UpdataDialog(this); + updataDialog.setUpdataDialogCall((code, index) -> { + LoadOperation loadOperation = loadOperations.get(index); + loadOperation.setOldLuggageCode(loadOperation.getLuggageCode()); + loadOperation.setLuggageCode(code); + loadOperation.setState("修改"); + loadOperation.update(loadOperation.getId()); + loadInfoAdapter.notifyDataSetChanged(); + }); + } + + // 扫码结果 + @SuppressLint("NotifyDataSetChanged") + @RequiresApi(api = Build.VERSION_CODES.O) + @Override + public void sanCodeResult(String code) { + super.sanCodeResult(code); + if (cargoInfoTag == null) { + Toast.makeText(this, "没有选择装载单元", Toast.LENGTH_SHORT).show(); + return; + } + + int count = LitePal.where("flightId= ? and luggageCode=? and (state IS NULL or state = '修改') ", + String.valueOf(flightInfo.getId()), code).count(LoadOperation.class); + if (count > 0) { + loadToast.show("行李条码重复"); + return; + } + LoadOperation loadOperation = new LoadOperation(); + loadOperation.setFlightCode(flightInfo.getFlightCode()); + loadOperation.setFlightId(flightInfo.getId()); + loadOperation.setDestination(flightInfo.getDestination()); + loadOperation.setTakeoffTime(flightInfo.getTakeoffTime()); + loadOperation.setCargoCode(cargoInfoTag.getCargoCode()); + loadOperation.setCargoId(cargoInfoTag.getId()); + loadOperation.setLuggageCode(code); + // loadOperation.setUser(); + String formattedTime = LocalTime.now().format(formatter); // 格式化当前时间 + loadOperation.setLoadTime(formattedTime); + loadOperation.setType("正常"); + loadOperation.save(); + loadOperations.add(loadOperation); + loadInfoAdapter.notifyDataSetChanged(); + + int size = loadOperations.size(); + Log.e("TAG", "更新的id:" + cargoInfoTag.getId() + "数量:" + size); + cargoInfoTag.setCount(size); + cargoInfoTag.setState("装载中"); + cargoInfoTag.update(cargoInfoTag.getId()); + + } + + // 点击箱子 + @Override + public void clickCargoInfo(int index) { + + cargoInfoTag = cargoInfoList.get(index); + Log.e("TAG", "clickCargoInfo:" + cargoInfoTag.toString()); + loadOperations = LitePal.where("cargoId =? and type = ? and (state IS NULL or state = '修改') ", + String.valueOf(cargoInfoTag.getId()), "正常") + .find(LoadOperation.class); + loadInfoAdapter.setList(loadOperations); + loadInfoAdapter.notifyDataSetChanged(); + } + + // 修改行李号 + @SuppressLint("NotifyDataSetChanged") + @Override + public void updateCargoInfo(int index) { + LoadOperation loadOperation = loadOperations.get(index); + updataDialog.setIndex(index); + updataDialog.setCode(loadOperation.getLuggageCode()); + updataDialog.show(); + } + + // 删除行李 + @SuppressLint("NotifyDataSetChanged") + @Override + public void deleteCargoInfo(int index) { + LoadOperation loadOperation = loadOperations.get(index); + loadOperation.setState("删除"); + loadOperation.update(loadOperation.getId()); + loadOperations.remove(index); + + cargoInfoTag.setCount(loadOperations.size()); + cargoInfoTag.update(cargoInfoTag.getId()); + loadInfoAdapter.notifyDataSetChanged(); + } + + // 装载完毕 + @SuppressLint("NotifyDataSetChanged") + public void loadOver(View view) { + if (cargoInfoTag == null) { + return; + } + cargoInfoTag.setState("装载完成"); + cargoInfoTag.update(cargoInfoTag.getId()); + adapter.notifyDataSetChanged(); + cargoInfoTag = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/MainActivity.java b/app/src/main/java/com/example/as_trak/MainActivity.java new file mode 100644 index 0000000..8687a8c --- /dev/null +++ b/app/src/main/java/com/example/as_trak/MainActivity.java @@ -0,0 +1,40 @@ +package com.example.as_trak; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; + +import com.example.as_trak.toast.LoadToast; + +public class MainActivity extends AppCompatActivity { + private Intent intent1; + private Intent intent2; + private Intent intent3; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + intent1 = new Intent(this, LoadMainActivity.class); + intent2 = new Intent(this, UnLoadActivity.class); + intent3 = new Intent(this, InfoActivity.class); + } + + public void homeLoad(View view) { + startActivity(intent1); + } + public void homeinfo(View view) { + startActivity(intent3); + } + + public void homeUnLoad(View view) { + startActivity(intent2); + } + + public void homeClose(View view) { + finish(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/UnLoadActivity.java b/app/src/main/java/com/example/as_trak/UnLoadActivity.java new file mode 100644 index 0000000..17187a1 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/UnLoadActivity.java @@ -0,0 +1,28 @@ +package com.example.as_trak; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; +import androidx.fragment.app.FragmentTransaction; + +import android.os.Bundle; + +import com.example.as_trak.base.BaseActivity; +import com.example.as_trak.databinding.ActivityUnLoadBinding; +import com.example.as_trak.fragment.LuggageFragment; + +public class UnLoadActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ActivityUnLoadBinding binding=DataBindingUtil.setContentView(this,R.layout.activity_un_load); + + LuggageFragment luggageFragment = new LuggageFragment(); + Bundle bundle = new Bundle(); + bundle.putString("data", "true"); + luggageFragment.setArguments(bundle); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.un_load_frame, luggageFragment); + transaction.commit(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/adapter/CargoInfoAdapter.java b/app/src/main/java/com/example/as_trak/adapter/CargoInfoAdapter.java new file mode 100644 index 0000000..5a12b54 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/adapter/CargoInfoAdapter.java @@ -0,0 +1,71 @@ +package com.example.as_trak.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.ItemCargoBinding; +import com.example.as_trak.entity.CargoInfo; + +import java.util.List; + +public class CargoInfoAdapter extends RecyclerView.Adapter<CargoInfoAdapter.MyViewHolder> { + private Context context; + private LayoutInflater inflater; + private List<CargoInfo> list; + private CargoInfoCall call; + public CargoInfoAdapter(Context context,CargoInfoCall call) { + this.context = context; + inflater=LayoutInflater.from(context); + this.call=call; + } + + public void setList(List<CargoInfo> list) { + this.list = list; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemCargoBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_cargo, parent, false, null); + return new MyViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + ItemCargoBinding binding = holder.binding; + binding.setData(list.get(position)); + binding.itemCargoD.setOnClickListener(v -> call.deleteCargoInfo(position)); + binding.itemCargoU.setOnClickListener(v -> call.updateCargoInfo(position)); + // binding.itemCargoC.setOnClickListener(v -> call.clickCargoInfo(position)); + } + + @Override + public int getItemCount() { + return list == null ? 0 : list.size(); + } + + + static class MyViewHolder extends RecyclerView.ViewHolder { + private ItemCargoBinding binding; + + public MyViewHolder(ItemCargoBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + + } + + public interface CargoInfoCall { + void updateCargoInfo(int index); + void deleteCargoInfo(int index); + + } +} diff --git a/app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java b/app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java new file mode 100644 index 0000000..a32b6b5 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/adapter/CargoListAdapter.java @@ -0,0 +1,105 @@ +package com.example.as_trak.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.ItemCargoBinding; +import com.example.as_trak.databinding.ItemCargoListBinding; +import com.example.as_trak.entity.CargoInfo; + +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; + +public class CargoListAdapter extends RecyclerView.Adapter<CargoListAdapter.MyViewHolder> { + private Context context; + private LayoutInflater inflater; + private List<CargoInfo> list; + private CargoInfoCall call; + private List<Boolean> bgList; + private int tag=-1; + public CargoListAdapter(Context context, CargoInfoCall call) { + this.context = context; + inflater=LayoutInflater.from(context); + this.call=call; + } + + public void setList(List<CargoInfo> list) { + this.list = list; + initBgLsit(list.size()); + } + + private void initBgLsit(int size) { + bgList=new ArrayList<>(size); + for (int i = 0; i < size; i++) { + bgList.add(false); + } + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemCargoListBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_cargo_list, parent, false, null); + return new MyViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, @SuppressLint("RecyclerView") int position) { + ItemCargoListBinding binding = holder.binding; + TextView itemCargoCode = binding.itemCargoCode; + CargoInfo cargoInfo = list.get(position); + itemCargoCode.setText(cargoInfo.getCargoCode()); + + if (cargoInfo.getState().equals("装载完成")){ + itemCargoCode.setBackgroundResource(R.drawable.item_over); + return; + } + + if (bgList.get(position)){ + itemCargoCode.setBackgroundResource(R.drawable.item_click_bg); + }else { + itemCargoCode.setBackgroundResource(R.drawable.select_bg); + } + + + itemCargoCode.setOnClickListener(v -> { + if (tag!=-1){ + bgList.set(tag,false); + notifyItemChanged(tag); + } + bgList.set(position,true); + call.clickCargoInfo(position); + tag=position; + notifyItemChanged(position); + }); + } + + @Override + public int getItemCount() { + return list == null ? 0 : list.size(); + } + + + static class MyViewHolder extends RecyclerView.ViewHolder { + private ItemCargoListBinding binding; + + public MyViewHolder(ItemCargoListBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + + } + + public interface CargoInfoCall { + void clickCargoInfo(int index); + } +} diff --git a/app/src/main/java/com/example/as_trak/adapter/FlightInfoAdapter.java b/app/src/main/java/com/example/as_trak/adapter/FlightInfoAdapter.java new file mode 100644 index 0000000..5065ae7 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/adapter/FlightInfoAdapter.java @@ -0,0 +1,55 @@ +package com.example.as_trak.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +import androidx.databinding.DataBindingUtil; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.ItemFlightInfoBinding; +import com.example.as_trak.entity.FlightInfo; + +import java.util.List; + +public class FlightInfoAdapter extends BaseAdapter { + private Context context; + private List<FlightInfo> flightInfoList; + public FlightInfoAdapter(Context context, List<FlightInfo> flightInfoList) { + this.context = context; + this.flightInfoList = flightInfoList; + } + @Override + public int getCount() { + return flightInfoList.size(); + } + @Override + public Object getItem(int position) { + return flightInfoList.get(position); + } + @Override + public long getItemId(int position) { + return position; + } + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ItemFlightInfoBinding binding; + if (convertView == null) { + binding = DataBindingUtil.inflate( + LayoutInflater.from(context), + R.layout.item_flight_info, + parent, + false + ); + convertView = binding.getRoot(); + convertView.setTag(binding); + } else { + binding = (ItemFlightInfoBinding) convertView.getTag(); + } + FlightInfo flightInfo = flightInfoList.get(position); + binding.setFlightInfo(flightInfo); + return convertView; + } +} diff --git a/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java b/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java new file mode 100644 index 0000000..102d0d8 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/adapter/LoadInfoAdapter.java @@ -0,0 +1,76 @@ +package com.example.as_trak.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.ItemLoadInfoBinding; +import com.example.as_trak.entity.LoadOperation; + +import java.util.List; + +public class LoadInfoAdapter extends RecyclerView.Adapter<LoadInfoAdapter.MyViewHolder> { + private Context context; + private LayoutInflater inflater; + private List<LoadOperation> list; + private LoadInfoCall call; + + public LoadInfoAdapter(Context context, LoadInfoCall call) { + this.context = context; + inflater = LayoutInflater.from(context); + this.call = call; + } + + public void setList(List<LoadOperation> list) { + this.list = list; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemLoadInfoBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_load_info, parent, false, null); + return new MyViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + ItemLoadInfoBinding binding = holder.binding; + LoadOperation data = list.get(position); + data.setOrderNum(position+1); + binding.setData(data); + binding.itemLoadD.setOnClickListener(v -> call.deleteCargoInfo(position)); + binding.itemLoadU.setOnLongClickListener(v -> { + call.updateCargoInfo(position); + return true; + }); + } + + @Override + public int getItemCount() { + return list == null ? 0 : list.size(); + } + + + static class MyViewHolder extends RecyclerView.ViewHolder { + private ItemLoadInfoBinding binding; + + public MyViewHolder(ItemLoadInfoBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + + } + + public interface LoadInfoCall { + void updateCargoInfo(int index); + + void deleteCargoInfo(int index); + + } +} diff --git a/app/src/main/java/com/example/as_trak/adapter/LoadListAdapter.java b/app/src/main/java/com/example/as_trak/adapter/LoadListAdapter.java new file mode 100644 index 0000000..208f223 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/adapter/LoadListAdapter.java @@ -0,0 +1,71 @@ +package com.example.as_trak.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.ItemLoadInfoBinding; +import com.example.as_trak.databinding.ItemOpinListBinding; +import com.example.as_trak.entity.LoadOperation; + +import java.util.List; + +public class LoadListAdapter extends RecyclerView.Adapter<LoadListAdapter.MyViewHolder> { + private Context context; + private LayoutInflater inflater; + private List<LoadOperation> list; + + public LoadListAdapter(Context context) { + this.context = context; + inflater = LayoutInflater.from(context); + } + + public void setList(List<LoadOperation> list) { + this.list = list; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemOpinListBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_opin_list, parent, false, null); + return new MyViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + ItemOpinListBinding binding = holder.binding; + LoadOperation data = list.get(position); + if (data.getType().equals("拉下")){ + binding.itemOpinLinear.setBackgroundResource(R.drawable.button_delete); + }else { + binding.itemOpinLinear.setBackgroundResource(R.drawable.main_menu_bg); + } + + // data.setOrderNum(position+1); + binding.setData(data); + + } + + @Override + public int getItemCount() { + return list == null ? 0 : list.size(); + } + + + static class MyViewHolder extends RecyclerView.ViewHolder { + private ItemOpinListBinding binding; + + public MyViewHolder(ItemOpinListBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + + } + +} diff --git a/app/src/main/java/com/example/as_trak/adapter/MyFragmentStateAdapter.java b/app/src/main/java/com/example/as_trak/adapter/MyFragmentStateAdapter.java new file mode 100644 index 0000000..ca248f6 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/adapter/MyFragmentStateAdapter.java @@ -0,0 +1,35 @@ +package com.example.as_trak.adapter; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.viewpager2.adapter.FragmentStateAdapter; + +import com.example.as_trak.fragment.FlightInfoFragment; +import com.example.as_trak.fragment.LuggageFragment; + +import java.util.ArrayList; +import java.util.List; + +public class MyFragmentStateAdapter extends FragmentStateAdapter { + private List<Fragment> fragments; + + public MyFragmentStateAdapter(@NonNull FragmentActivity fragmentActivity) { + super(fragmentActivity); + fragments=new ArrayList<>(); + fragments.add(new LuggageFragment()); + + fragments.add(new FlightInfoFragment()); + } + + @NonNull + @Override + public Fragment createFragment(int position) { + return fragments.get(position); + } + + @Override + public int getItemCount() { + return fragments.size(); + } +} diff --git a/app/src/main/java/com/example/as_trak/base/BaseActivity.java b/app/src/main/java/com/example/as_trak/base/BaseActivity.java new file mode 100644 index 0000000..2fe3725 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/base/BaseActivity.java @@ -0,0 +1,50 @@ +package com.example.as_trak.base; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.util.Log; +import android.view.View; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +public class BaseActivity extends AppCompatActivity { + private MyScanCodeBroad myReceiver; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + + } + + public void initScan() { + myReceiver = new MyScanCodeBroad(); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction("android.intent.action.SCANRESULT"); + registerReceiver(myReceiver, intentFilter); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (myReceiver!=null) unregisterReceiver(myReceiver); + } + + private class MyScanCodeBroad extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + String value = intent.getStringExtra("value"); + Log.e("TAG", "onReceive:" + value); + sanCodeResult(value); + } + } + public void sanCodeResult(String code){} + + public void titleToolClick(View view){ + finish(); + } +} diff --git a/app/src/main/java/com/example/as_trak/dialog/AddFlightDialog.java b/app/src/main/java/com/example/as_trak/dialog/AddFlightDialog.java new file mode 100644 index 0000000..2c8d5f9 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/dialog/AddFlightDialog.java @@ -0,0 +1,53 @@ +package com.example.as_trak.dialog; + + +import android.app.Dialog; +import android.content.Context; +import android.os.Build; +import android.util.Log; +import android.view.LayoutInflater; +import android.widget.DatePicker; +import android.widget.TimePicker; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.DialogAddFlightBinding; + +public class AddFlightDialog extends Dialog { + private AddFlightDialogCall call; + + public void setCall(AddFlightDialogCall call) { + this.call = call; + } + + public AddFlightDialog(@NonNull Context context) { + super(context, R.style.dialog_style); + DialogAddFlightBinding binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.dialog_add_flight, null, false); + setContentView(binding.getRoot()); + + binding.returnDialogDis.setOnClickListener(v -> dismiss()); + TimePicker dialogTimepicker = binding.dialogTimepicker; + dialogTimepicker.setIs24HourView(true); + DatePicker dialogDatepicker = binding.dialogDatepicker; + dialogDatepicker.setCalendarViewShown(false); // 隐藏日历视图 + dialogDatepicker.setSpinnersShown(true); // 显示数字选择器(true); + + binding.dialogReturnTrue.setOnClickListener(v -> { + String date = dialogDatepicker.getYear() + "-" + (dialogDatepicker.getMonth()+1) + "-" + dialogDatepicker.getDayOfMonth(); + // Log.e("TAG", "AddFlightDialog:" + date); + String time= dialogTimepicker.getHour()+":"+dialogTimepicker.getMinute(); + String flightCode = binding.dialogFlightCode.getText().toString(); + String destination = binding.dialogFlightNum.getText().toString(); + if (flightCode.isEmpty()||destination.isEmpty()){ + return; + } + call.flightInfo(flightCode, destination, date, time); + }); + } + public interface AddFlightDialogCall{ + void flightInfo(String flightCode,String destination,String date,String time); + } + +} diff --git a/app/src/main/java/com/example/as_trak/dialog/UpdataDialog.java b/app/src/main/java/com/example/as_trak/dialog/UpdataDialog.java new file mode 100644 index 0000000..170c7bd --- /dev/null +++ b/app/src/main/java/com/example/as_trak/dialog/UpdataDialog.java @@ -0,0 +1,57 @@ +package com.example.as_trak.dialog; + +import android.app.Dialog; +import android.content.Context; +import android.view.LayoutInflater; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.DialogUpdateBinding; + +import java.nio.charset.CoderResult; + +public class UpdataDialog extends Dialog { + private DialogUpdateBinding binding; + private String code; + private int index; + + public void setIndex(int index) { + this.index = index; + } + + private UpdataDialogCall updataDialogCall; + + public void setUpdataDialogCall(UpdataDialogCall updataDialogCall) { + this.updataDialogCall = updataDialogCall; + } + + public void setCode(String code) { + this.code = code; + } + + public UpdataDialog(@NonNull Context context) { + super(context, R.style.dialog_style); + binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.dialog_update, null, false); + setContentView(binding.getRoot()); + binding.dialogDis.setOnClickListener(v -> dismiss()); + binding.dialogTrue.setOnClickListener(v -> { + String code = binding.updataNewCode.getText().toString(); + if (code.isEmpty()) { + return; + } + updataDialogCall.codeResult(code,index); + }); + } + + @Override + public void show() { + super.show(); + binding.updateOldCode.setText(code); + binding.updataNewCode.setText(null); + } + public interface UpdataDialogCall{ + public void codeResult(String code,int index); + } +} diff --git a/app/src/main/java/com/example/as_trak/entity/CargoInfo.java b/app/src/main/java/com/example/as_trak/entity/CargoInfo.java new file mode 100644 index 0000000..e43727c --- /dev/null +++ b/app/src/main/java/com/example/as_trak/entity/CargoInfo.java @@ -0,0 +1,81 @@ +package com.example.as_trak.entity; + +import org.litepal.crud.LitePalSupport; + +public class CargoInfo extends LitePalSupport { + private int id; + /** + * 航班号 + */ + private String flightCode; + private int flightId; + /** + * 货箱号 + */ + private String cargoCode; + /** + * 装载状态 + */ + private String state; + + private int count; + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getFlightCode() { + return flightCode; + } + + public void setFlightCode(String flightCode) { + this.flightCode = flightCode; + } + + public int getFlightId() { + return flightId; + } + + public void setFlightId(int flightId) { + this.flightId = flightId; + } + + public String getCargoCode() { + return cargoCode; + } + + public void setCargoCode(String cargoCode) { + this.cargoCode = cargoCode; + } + + @Override + public String toString() { + return "CargoInfo{" + + "id=" + id + + "flightId=" + flightId + + ", cargoCode='" + cargoCode + '\'' + + ", state='" + state + '\'' + + ", count=" + count + + '}'; + } +} diff --git a/app/src/main/java/com/example/as_trak/entity/FlightInfo.java b/app/src/main/java/com/example/as_trak/entity/FlightInfo.java new file mode 100644 index 0000000..f34e7a7 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/entity/FlightInfo.java @@ -0,0 +1,89 @@ +package com.example.as_trak.entity; + +import org.litepal.crud.LitePalSupport; + +import java.util.Date; + +public class FlightInfo extends LitePalSupport { + private int id; + /** + * 航班号 + */ + private String flightCode; + /** + * 目的地 + */ + private String destination; + /** + * 航班日期 + */ + private String takeoffDate; + /** + * 起飞时间 + */ + private String takeoffTime; + /** + * 创建人 + */ + private String createUser; + /** + * 创建时间 + */ + private Date createTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getFlightCode() { + return flightCode; + } + + public void setFlightCode(String flightCode) { + this.flightCode = flightCode; + } + + public String getDestination() { + return destination; + } + + public void setDestination(String destination) { + this.destination = destination; + } + + public String getTakeoffDate() { + return takeoffDate; + } + + public void setTakeoffDate(String takeoffDate) { + this.takeoffDate = takeoffDate; + } + + public String getTakeoffTime() { + return takeoffTime; + } + + public void setTakeoffTime(String takeoffTime) { + this.takeoffTime = takeoffTime; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } +} diff --git a/app/src/main/java/com/example/as_trak/entity/LoadOperation.java b/app/src/main/java/com/example/as_trak/entity/LoadOperation.java new file mode 100644 index 0000000..23f414d --- /dev/null +++ b/app/src/main/java/com/example/as_trak/entity/LoadOperation.java @@ -0,0 +1,181 @@ +package com.example.as_trak.entity; + +import org.litepal.crud.LitePalSupport; + +public class LoadOperation extends LitePalSupport { + private int id; + /** + * 航班号 + */ + private String flightCode; + private int flightId; + /** + * 目的地代码 + */ + private String destination; + /** + * 起飞时间 + */ + private String takeoffTime; + /** + * 货箱号 + */ + private String cargoCode; + private int cargoId; + /** + * 顺序 + */ + private int orderNum; + /** + * 行李编码 + */ + private String luggageCode; + /** + * 旧的行李编码 + */ + private String oldLuggageCode; + /** + * 操作人 + */ + private String user; + /** + * 装载时间 + */ + private String loadTime; + /** + * 操作类型:正常,拉下 + */ + private String type; + /** + * 删除,修改 + */ + private String state; + + + + public int getCargoId() { + return cargoId; + } + + public void setCargoId(int cargoId) { + this.cargoId = cargoId; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getFlightCode() { + return flightCode; + } + + public void setFlightCode(String flightCode) { + this.flightCode = flightCode; + } + + public int getFlightId() { + return flightId; + } + + public void setFlightId(int flightId) { + this.flightId = flightId; + } + + public String getDestination() { + return destination; + } + + public void setDestination(String destination) { + this.destination = destination; + } + + public String getTakeoffTime() { + return takeoffTime; + } + + public void setTakeoffTime(String takeoffTime) { + this.takeoffTime = takeoffTime; + } + + public String getCargoCode() { + return cargoCode; + } + + public void setCargoCode(String cargoCode) { + this.cargoCode = cargoCode; + } + + public int getOrderNum() { + return orderNum; + } + + public void setOrderNum(int orderNum) { + this.orderNum = orderNum; + } + + public String getLuggageCode() { + return luggageCode; + } + + public void setLuggageCode(String luggageCode) { + this.luggageCode = luggageCode; + } + + public String getOldLuggageCode() { + return oldLuggageCode; + } + + public void setOldLuggageCode(String oldLuggageCode) { + this.oldLuggageCode = oldLuggageCode; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getLoadTime() { + return loadTime; + } + + public void setLoadTime(String loadTime) { + this.loadTime = loadTime; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + @Override + public String toString() { + return "LoadOperation{" + + "id=" + id + + ", flightCode='" + flightCode + '\'' + + ", flightId=" + flightId + + ", cargoCode='" + cargoCode + '\'' + + ", luggageCode='" + luggageCode + '\'' + + ", type='" + type + '\'' + + ", state='" + state + '\'' + + ", cargoId='" + cargoId + '\'' + + '}'; + } +} diff --git a/app/src/main/java/com/example/as_trak/fragment/FlightInfoFragment.java b/app/src/main/java/com/example/as_trak/fragment/FlightInfoFragment.java new file mode 100644 index 0000000..bf1cc51 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/fragment/FlightInfoFragment.java @@ -0,0 +1,211 @@ +package com.example.as_trak.fragment; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; + +import androidx.databinding.DataBindingUtil; +import androidx.fragment.app.Fragment; + +import android.os.Environment; +import android.os.Handler; +import android.os.Looper; +import android.provider.MediaStore; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.AdapterView; +import android.widget.ListPopupWindow; +import android.widget.ProgressBar; +import android.widget.Toast; + +import com.example.as_trak.R; +import com.example.as_trak.adapter.FlightInfoAdapter; +import com.example.as_trak.adapter.LoadListAdapter; +import com.example.as_trak.databinding.FragmentFlightInfoBinding; +import com.example.as_trak.entity.CargoInfo; +import com.example.as_trak.entity.FlightInfo; +import com.example.as_trak.entity.LoadOperation; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.litepal.LitePal; + +import java.io.IOException; +import java.io.OutputStream; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + + +public class FlightInfoFragment extends Fragment implements AdapterView.OnItemClickListener { + private LoadListAdapter adapter; + private Context context; + private ListPopupWindow lpw; + private List<FlightInfo> flightList; + private FragmentFlightInfoBinding binding; + private String tagId; + private ProgressDialog progressDialog; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + context = getContext(); + + + progressDialog = new ProgressDialog(context); + progressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); + progressDialog.setMessage("导出到excel..."); + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + binding = DataBindingUtil.inflate(inflater, R.layout.fragment_flight_info, container, false); + adapter = new LoadListAdapter(getContext()); + binding.setAdapter(adapter); + + lpw = new ListPopupWindow(context); + lpw.setAnchorView(binding.loadMainFlightCode); + // 航班查询 + flightList = LitePal.order("createTime desc").find(FlightInfo.class); + if (flightList == null) flightList = new ArrayList<>(); + lpw.setAdapter(new FlightInfoAdapter(context, flightList)); + lpw.setOnItemClickListener(this); + binding.loadMainFlightCode.setOnClickListener(v -> { + lpw.show(); + }); + binding.importLoadInfo.setOnClickListener(v -> { + if (tagId == null) { + return; + } + exportLoadOperationsByFlightId(context, tagId); + }); + return binding.getRoot(); + } + + @SuppressLint("NotifyDataSetChanged") + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + + FlightInfo flightInfo = flightList.get(position); + binding.loadMainFlightCode.setText(flightInfo.getFlightCode()); + + tagId = String.valueOf(flightInfo.getId()); + int countCargo = LitePal.where("flightId= ?", tagId).count(CargoInfo.class); + binding.loadCountCargo.setText(String.valueOf(countCargo)); + int countOperation = LitePal.where("flightId= ? and type='正常' and (state IS NULL or state = '修改') " + , tagId).count(LoadOperation.class); + binding.loadCountLuggage.setText(String.valueOf(countOperation)); + List<LoadOperation> list = LitePal.where("flightId= ? and (state IS NULL or state = '修改')" + , tagId).order("cargoId,id asc").find(LoadOperation.class); + adapter.setList(list); + adapter.notifyDataSetChanged(); + lpw.dismiss(); + + } + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + + public void exportLoadOperationsByFlightId(Context context, String flightId) { + progressDialog.show(); + new Thread(() -> { + // 根据 flightId 查询 LoadOperation 数据 + List<LoadOperation> loadOperations = LitePal.where("flightId = ?", flightId).find(LoadOperation.class); + // 创建新的工作簿 + Workbook workbook = new XSSFWorkbook(); + Sheet sheet = workbook.createSheet("Load Operations"); + + CellStyle headerCellStyle = workbook.createCellStyle(); + headerCellStyle.setAlignment(HorizontalAlignment.CENTER); // 设置水平居中 + headerCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 设置垂直居中 + // 创建表头 + Row headerRow = sheet.createRow(0); + + String[] headers = {"序号", "航班号", "目的地代码", "起飞时间", "货箱号", "行李编码", "旧的行李编码", "操作人", "装载时间", "操作类型", "状态"}; + for (int i = 0; i < headers.length; i++) { + Cell cell = headerRow.createCell(i); + cell.setCellValue(headers[i]); + sheet.setDefaultColumnStyle(i,headerCellStyle); + if (i == 4 || i == 5 || i == 6) { + sheet.setColumnWidth(i, 5000); + } else { + sheet.setColumnWidth(i, 3000); + } + + } + + + // 填充数据 + int rowNum = 1; + int index = 0; + for (LoadOperation loadOperation : loadOperations) { + index = rowNum; + Row row = sheet.createRow(rowNum++); + row.createCell(0).setCellValue(index); + row.createCell(1).setCellValue(loadOperation.getFlightCode()); + row.createCell(2).setCellValue(loadOperation.getDestination()); + row.createCell(3).setCellValue(loadOperation.getTakeoffTime()); + row.createCell(4).setCellValue(loadOperation.getCargoCode()); + // row.createCell(5).setCellValue(loadOperation.getOrderNum()); + row.createCell(5).setCellValue(loadOperation.getLuggageCode()); + row.createCell(6).setCellValue(loadOperation.getOldLuggageCode()); + row.createCell(7).setCellValue(loadOperation.getUser()); + row.createCell(8).setCellValue(loadOperation.getLoadTime()); + row.createCell(9).setCellValue(loadOperation.getType()); + row.createCell(10).setCellValue(loadOperation.getState()); + } + + // 使用 MediaStore 存储文件 + ContentResolver contentResolver = context.getContentResolver(); + ContentValues contentValues = new ContentValues(); + contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, "行李装载操作信息" + LocalDateTime.now().format(formatter) + ".xlsx"); + contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOCUMENTS); + } + + Uri uri = contentResolver.insert(MediaStore.Files.getContentUri("external"), contentValues); + if (uri != null) { + try (OutputStream outputStream = contentResolver.openOutputStream(uri)) { + if (outputStream != null) { + workbook.write(outputStream); + Log.e("TAG", "exportLoadOperationsByFlightId:" + "数据已导出到 Excel 文件:" + uri.toString()); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + workbook.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + new Handler(Looper.getMainLooper()).post(() -> { + Toast.makeText(context, "导出成功", Toast.LENGTH_SHORT).show(); + if (progressDialog.isShowing()) { + + progressDialog.dismiss(); + } + }); + }).start(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/fragment/LuggageFragment.java b/app/src/main/java/com/example/as_trak/fragment/LuggageFragment.java new file mode 100644 index 0000000..2782959 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/fragment/LuggageFragment.java @@ -0,0 +1,120 @@ +package com.example.as_trak.fragment; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.databinding.DataBindingUtil; +import androidx.fragment.app.Fragment; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.Toast; + +import com.example.as_trak.R; +import com.example.as_trak.databinding.FragmentLuggageBinding; +import com.example.as_trak.entity.FlightInfo; +import com.example.as_trak.entity.LoadOperation; +import com.example.as_trak.fragment.been.LuggageBeen; + +import org.litepal.LitePal; + +import java.util.List; +import java.util.stream.IntStream; + +public class LuggageFragment extends Fragment implements View.OnClickListener { + + private FragmentLuggageBinding binding; + private LuggageBeen luggageBeen; + private LoadOperation loadOperationFrist; + private AlertDialog.Builder builder; + @SuppressLint("ClickableViewAccessibility") + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + binding = DataBindingUtil.inflate(inflater, R.layout.fragment_luggage, container, false); + Bundle bundle = this.getArguments(); // 得到从Activity传来的数据 + String mess = null; + + luggageBeen = new LuggageBeen(); + if (bundle != null) { + mess = bundle.getString("data"); + if (mess.equals("true")) { + luggageBeen.setVisbleState(true); + } + } + builder=new AlertDialog.Builder(getContext()); + builder.setTitle("拉下确认") + .setMessage("是否确定拉下行李").setNegativeButton("取消", null); + binding.setData(luggageBeen); + + + EditText loadMainFlightCode = binding.loadMainFlightCode; + loadMainFlightCode.setOnTouchListener((v, event) -> { + final int DRAWABLE_RIGHT = 2; + if (event.getAction() == MotionEvent.ACTION_UP) { + // 获取触摸的位置 + int x = (int) event.getX(); + // 获取图标的边界 + int drawableRightWidth = loadMainFlightCode.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width(); + int drawableRightStart = (int) (loadMainFlightCode.getWidth() - loadMainFlightCode.getPaddingRight() - drawableRightWidth); + // 判断是否点击了右侧图标 + if (x >= drawableRightStart && x <= (loadMainFlightCode.getWidth() - loadMainFlightCode.getPaddingRight())) { + String code = loadMainFlightCode.getText().toString(); + if (code.isEmpty()) return false; + selectInfo(code); + return true; + } + } + return false; + }); + + binding.luggageUnLoad.setOnClickListener(this); + return binding.getRoot(); + } + + + private void selectInfo(String code) { + + loadOperationFrist = LitePal.where("luggageCode=? and (state IS NULL or state = '修改')", code).findFirst(LoadOperation.class); + if (loadOperationFrist == null) { + Toast.makeText(getContext(), "查询失败,条码错误", Toast.LENGTH_SHORT).show(); + luggageBeen.clear(); + return; + } + luggageBeen.setFlightCode(loadOperationFrist.getFlightCode()); + luggageBeen.setCargoCode(loadOperationFrist.getCargoCode()); + luggageBeen.setState(loadOperationFrist.getType()); + luggageBeen.setLoadTime(loadOperationFrist.getLoadTime()); + List<LoadOperation> loadOperationList = LitePal.where("flightId = ? and cargoId = ? and (state IS NULL or state = '修改') ", String.valueOf(loadOperationFrist.getFlightId()), String.valueOf(loadOperationFrist.getCargoId())).order("id asc").find(LoadOperation.class); + Log.e("TAG", "全部数据:" + loadOperationList.toString()); + FlightInfo flightInfo = LitePal.where("id=?", String.valueOf(loadOperationFrist.getFlightId())).findFirst(FlightInfo.class); + luggageBeen.setTakeoffDate(flightInfo.getTakeoffDate()); + IntStream.range(0, loadOperationList.size()).filter(i -> loadOperationList.get(i).getLuggageCode().equals(code)).findFirst().ifPresent(i -> luggageBeen.setOrderNum(String.valueOf(i + 1))); + + } + + + + @Override + public void onClick(View v) { + if (loadOperationFrist == null) { + return; + } + builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + loadOperationFrist.setType("拉下"); + loadOperationFrist.update(loadOperationFrist.getId()); + Toast.makeText(getContext(), "拉下成功", Toast.LENGTH_SHORT).show(); + luggageBeen.setState("拉下"); + } + }).show(); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/as_trak/fragment/been/LuggageBeen.java b/app/src/main/java/com/example/as_trak/fragment/been/LuggageBeen.java new file mode 100644 index 0000000..703f5b1 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/fragment/been/LuggageBeen.java @@ -0,0 +1,111 @@ +package com.example.as_trak.fragment.been; + +import androidx.databinding.BaseObservable; + +public class LuggageBeen extends BaseObservable { + private String flightCode; + + /** + * 起飞时间 + */ + private String takeoffTime; + /** + * 航班日期 + */ + private String takeoffDate; + /** + * 货箱号 + */ + private String cargoCode; + /** + * 顺序 + */ + private String orderNum; + private String loadTime; + private String State; + private boolean visbleState = false; + + public boolean isVisbleState() { + return visbleState; + } + + public void setVisbleState(boolean visbleState) { + this.visbleState = visbleState; + notifyChange(); + } + + public String getState() { + return State; + } + + public void setState(String state) { + State = state; + notifyChange(); + } + + public String getFlightCode() { + return flightCode; + } + + public void setFlightCode(String flightCode) { + this.flightCode = flightCode; + notifyChange(); + } + + public String getTakeoffTime() { + return takeoffTime; + } + + public void setTakeoffTime(String takeoffTime) { + this.takeoffTime = takeoffTime; + notifyChange(); + } + + public String getTakeoffDate() { + return takeoffDate; + } + + public void setTakeoffDate(String takeoffDate) { + this.takeoffDate = takeoffDate; + notifyChange(); + } + + public String getCargoCode() { + return cargoCode; + } + + public void setCargoCode(String cargoCode) { + this.cargoCode = cargoCode; + notifyChange(); + } + + public String getOrderNum() { + return orderNum; + } + + public void setOrderNum(String orderNum) { + this.orderNum = orderNum; + notifyChange(); + } + + public String getLoadTime() { + return loadTime; + } + + public void setLoadTime(String loadTime) { + this.loadTime = loadTime; + notifyChange(); + } + + public void clear() { + flightCode = null; + takeoffTime = null; + takeoffDate = null; + cargoCode = null; + orderNum = null; + loadTime = null; + notifyChange(); + } + + +} diff --git a/app/src/main/java/com/example/as_trak/toast/LoadToast.java b/app/src/main/java/com/example/as_trak/toast/LoadToast.java new file mode 100644 index 0000000..dca2580 --- /dev/null +++ b/app/src/main/java/com/example/as_trak/toast/LoadToast.java @@ -0,0 +1,38 @@ +package com.example.as_trak.toast; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.media.MediaPlayer; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.as_trak.R; + +public class LoadToast extends Toast { + private MediaPlayer music; + private TextView textView; + @SuppressLint("MissingInflatedId") + public LoadToast(Context context) { + super(context); + music = MediaPlayer.create(context, R.raw.error); + // toast = new Toast(context); + View view = LayoutInflater.from(context).inflate(R.layout.toast_load, null, false); + textView=view.findViewById(R.id.toast_msg); + setView(view); + // toast.setView(view); + setDuration(Toast.LENGTH_SHORT); + setGravity(Gravity.CENTER, 0, 200); + } + + + public void show(String text) { + super.show(); + music.start(); + textView.setText(text); + } +} diff --git a/app/src/main/res/drawable/button_add.xml b/app/src/main/res/drawable/button_add.xml new file mode 100644 index 0000000..20bd96a --- /dev/null +++ b/app/src/main/res/drawable/button_add.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="3dp" + /> + <solid android:color="@color/blue"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/button_delete.xml b/app/src/main/res/drawable/button_delete.xml new file mode 100644 index 0000000..8faa6c4 --- /dev/null +++ b/app/src/main/res/drawable/button_delete.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="3dp" + /> + <solid android:color="#FF5722"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/button_update.xml b/app/src/main/res/drawable/button_update.xml new file mode 100644 index 0000000..6baf094 --- /dev/null +++ b/app/src/main/res/drawable/button_update.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="3dp" + /> + <solid android:color="#FFC107"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/elected_tab_background_color.xml b/app/src/main/res/drawable/elected_tab_background_color.xml new file mode 100644 index 0000000..27cc1a9 --- /dev/null +++ b/app/src/main/res/drawable/elected_tab_background_color.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="3dp"/> + <solid android:color="@color/blue"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="108dp" + android:height="108dp" + android:viewportWidth="108" + android:viewportHeight="108"> + <path + android:fillColor="#3DDC84" + android:pathData="M0,0h108v108h-108z" /> + <path + android:fillColor="#00000000" + android:pathData="M9,0L9,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,0L19,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M29,0L29,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M39,0L39,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M49,0L49,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M59,0L59,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M69,0L69,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M79,0L79,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M89,0L89,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M99,0L99,108" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,9L108,9" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,19L108,19" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,29L108,29" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,39L108,39" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,49L108,49" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,59L108,59" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,69L108,69" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,79L108,79" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,89L108,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M0,99L108,99" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,29L89,29" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,39L89,39" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,49L89,49" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,59L89,59" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,69L89,69" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M19,79L89,79" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M29,19L29,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M39,19L39,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M49,19L49,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M59,19L59,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M69,19L69,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> + <path + android:fillColor="#00000000" + android:pathData="M79,19L79,89" + android:strokeWidth="0.8" + android:strokeColor="#33FFFFFF" /> +</vector> diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt" + android:width="108dp" + android:height="108dp" + android:viewportWidth="108" + android:viewportHeight="108"> + <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z"> + <aapt:attr name="android:fillColor"> + <gradient + android:endX="85.84757" + android:endY="92.4963" + android:startX="42.9492" + android:startY="49.59793" + android:type="linear"> + <item + android:color="#44000000" + android:offset="0.0" /> + <item + android:color="#00000000" + android:offset="1.0" /> + </gradient> + </aapt:attr> + </path> + <path + android:fillColor="#FFFFFF" + android:fillType="nonZero" + android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z" + android:strokeWidth="1" + android:strokeColor="#00000000" /> +</vector> \ No newline at end of file diff --git a/app/src/main/res/drawable/item_click_bg.xml b/app/src/main/res/drawable/item_click_bg.xml new file mode 100644 index 0000000..5c34220 --- /dev/null +++ b/app/src/main/res/drawable/item_click_bg.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="3dp"/> + <solid android:color="#8B61FF00"/> + <stroke android:width="1dp" android:color="#999999"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/item_over.xml b/app/src/main/res/drawable/item_over.xml new file mode 100644 index 0000000..721376f --- /dev/null +++ b/app/src/main/res/drawable/item_over.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="#DFDEDE"/> + <corners android:radius="3dp"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/main_bg.xml b/app/src/main/res/drawable/main_bg.xml new file mode 100644 index 0000000..53a3b40 --- /dev/null +++ b/app/src/main/res/drawable/main_bg.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + +<!-- <item android:top="0dp" android:bottom="0dp">--> +<!-- <color android:color="@color/white"/>--> +<!-- </item>--> + <item android:height="59dp"> + <color android:color="@color/blue" /> + </item> + <item android:top="59dp" android:bottom="100dp"> + <shape> + <gradient + android:type="linear" + + android:angle="270" + android:endColor="#F2F3F5" + android:startColor="@color/blue"/> + </shape> + </item> + +</layer-list> \ No newline at end of file diff --git a/app/src/main/res/drawable/main_menu_bg.xml b/app/src/main/res/drawable/main_menu_bg.xml new file mode 100644 index 0000000..b5164d7 --- /dev/null +++ b/app/src/main/res/drawable/main_menu_bg.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="3dp"/> + <solid android:color="@color/white"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/select_bg.xml b/app/src/main/res/drawable/select_bg.xml new file mode 100644 index 0000000..1b99708 --- /dev/null +++ b/app/src/main/res/drawable/select_bg.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="3dp"/> + <solid android:color="@color/white"/> + <stroke android:width="1dp" android:color="#999999"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_background_selector.xml b/app/src/main/res/drawable/tab_background_selector.xml new file mode 100644 index 0000000..cbeb26f --- /dev/null +++ b/app/src/main/res/drawable/tab_background_selector.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- 选中状态的背景 --> + <item android:drawable="@drawable/elected_tab_background_color" android:state_selected="true"/> + <!-- 未选中状态的背景 --> + +</selector> \ No newline at end of file diff --git a/app/src/main/res/drawable/tablayout_bg.xml b/app/src/main/res/drawable/tablayout_bg.xml new file mode 100644 index 0000000..fe237f1 --- /dev/null +++ b/app/src/main/res/drawable/tablayout_bg.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + + <stroke + android:width="1dp" + android:color="@color/blue" /> + <corners android:radius="6dp" /> + <solid android:color="@color/white" /> + +</shape> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_info.xml b/app/src/main/res/layout/activity_info.xml new file mode 100644 index 0000000..dc16585 --- /dev/null +++ b/app/src/main/res/layout/activity_info.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> + + <data> + <variable + name="title" + type="String" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + tools:context=".InfoActivity"> + + <include + layout="@layout/toolbar" + app:title='@{title??"信息查询"}' /> + + <com.google.android.material.tabs.TabLayout + android:id="@+id/info_tabLayout" + android:layout_width="match_parent" + android:layout_height="39dp" + android:layout_marginStart="20dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="20dp" + android:background="@drawable/tablayout_bg" + app:tabGravity="fill" + app:tabTextColor="@color/blue" + app:tabSelectedTextColor="@color/white" + app:tabBackground="@drawable/tab_background_selector"> + + <com.google.android.material.tabs.TabItem + android:layout_width="match_parent" + android:layout_height="match_parent" + android:text="行李信息" /> + + <com.google.android.material.tabs.TabItem + android:layout_width="match_parent" + android:layout_height="match_parent" + + android:text="航班信息" /> + + + + + </com.google.android.material.tabs.TabLayout> + + <androidx.viewpager2.widget.ViewPager2 + android:id="@+id/viewPager2" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" /> + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_load_main.xml b/app/src/main/res/layout/activity_load_main.xml new file mode 100644 index 0000000..2553863 --- /dev/null +++ b/app/src/main/res/layout/activity_load_main.xml @@ -0,0 +1,153 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> + + <data> + + <variable + name="title" + type="String" /> + <variable + name="visibState" + type="androidx.databinding.ObservableBoolean" /> + <import type="android.view.View"/> + + <variable + name="adapter" + type="com.example.as_trak.adapter.CargoInfoAdapter" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:animateLayoutChanges="true" + android:orientation="vertical" + tools:context=".LoadMainActivity"> + + <include + layout="@layout/toolbar" + app:title='@{title??"行李装载"}' /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="81dp" + android:layout_marginTop="12dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="航班号" + android:textSize="18sp" /> + + <TextView + android:id="@+id/load_main_flight_code" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:gravity="center" + android:textSize="18sp" + android:layout_weight="1" + android:paddingRight="10dp" + android:drawableRight="@mipmap/ic_select" + android:background="@drawable/select_bg" /> + + <ImageButton + android:layout_width="50dp" + android:layout_height="match_parent" + android:layout_marginEnd="0dp" + android:background="@color/white" + android:onClick="loadAddFlight" + android:src="@mipmap/icon_add" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_marginTop="12dp" + android:layout_weight="1" + android:background="@drawable/main_menu_bg" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="51dp"> + + <EditText + android:id="@+id/load_main_cargo_code" + android:layout_width="match_parent" + android:layout_height="45dp" + android:layout_gravity="center" + android:layout_marginStart="10dp" + android:background="@drawable/select_bg" + android:maxLines="1" + android:inputType="text" + android:layout_weight="1" + android:visibility="@{visibState?View.GONE:View.VISIBLE}" + android:gravity="center" /> + + <TextView + android:layout_width="55dp" + android:layout_height="30dp" + android:layout_gravity="center" + android:layout_marginStart="5dp" + android:background="@drawable/button_add" + android:gravity="center" + android:text="添加" + android:visibility="@{visibState?View.GONE:View.VISIBLE}" + android:textColor="@color/white" + android:textSize="15sp" + android:onClick="loadAddCargo"/> + + <ImageButton + android:layout_width="55dp" + android:layout_height="match_parent" + android:layout_gravity="center" + android:layout_marginStart="10dp" + android:layout_marginEnd="5dp" + android:background="@color/white" + android:visibility="@{visibState?View.GONE:View.VISIBLE}" + android:src="@mipmap/icon_left" + android:onClick="loadCloseEdit"/> + + <TextView + android:layout_width="wrap_content" + android:layout_height="51dp" + android:layout_marginStart="10dp" + android:drawableRight="@mipmap/icon_right" + android:gravity="center" + android:text="装载单元信息" + android:visibility="@{visibState?View.VISIBLE:View.GONE}" + android:textSize="18sp" + android:onClick="loadAddEdit"/> + + + </LinearLayout> + + + <View + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="@color/empty_color" /> + + <androidx.recyclerview.widget.RecyclerView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:adapter="@{adapter}" + android:padding="10dp" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> + </LinearLayout> + + <Button + android:layout_width="match_parent" + android:layout_height="48dp" + android:text="装载行李" + android:textStyle="bold" + android:textSize="18sp" + android:letterSpacing="0.5" + android:onClick="clickCargoInfo" + android:layout_margin="12dp"/> + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_load_scan.xml b/app/src/main/res/layout/activity_load_scan.xml new file mode 100644 index 0000000..6113e5b --- /dev/null +++ b/app/src/main/res/layout/activity_load_scan.xml @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> + + <data> + <variable + name="title" + type="String" /> + <variable + name="data" + type="com.example.as_trak.entity.FlightInfo" /> + <variable + name="adapter1" + type="com.example.as_trak.adapter.CargoListAdapter" /> + <variable + name="adapter2" + type="com.example.as_trak.adapter.LoadInfoAdapter" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:animateLayoutChanges="true" + tools:context=".LoadScanActivity"> + + <include + layout="@layout/toolbar" + app:title='@{title??"行李条码扫描"}' /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="61dp" + android:layout_marginTop="12dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="@{data.flightCode}" + android:textSize="20sp" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="@{data.destination}" + android:textSize="20sp" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="@{data.takeoffTime}" + android:textSize="20sp" /> + </LinearLayout> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="12dp" + android:layout_weight="1" + + android:background="@drawable/main_menu_bg"> + + <LinearLayout + android:id="@+id/sanLin" + android:layout_width="match_parent" + android:layout_height="50dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="135dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="装载单元" + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="#e1e1e1" /> + + <TextView + android:layout_width="40dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="顺序" + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + <TextView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="行李号" + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + + <TextView + android:layout_width="60dp" + android:layout_height="match_parent" + + android:gravity="center" + android:text="装载时间" + android:textSize="14sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + + + <TextView + android:layout_width="60dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="操作" + android:textSize="15sp" /> + + + </LinearLayout> + + <View + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_alignTop="@+id/scan_r1" + android:background="#e1e1e1" /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/scan_r1" + android:layout_width="135dp" + android:layout_height="0dp" + android:layout_below="@+id/sanLin" + android:layout_alignParentBottom="true" + android:layout_marginTop="0dp" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + android:adapter="@{adapter1}"/> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_alignTop="@+id/scan_r1" + android:layout_alignParentBottom="true" + android:layout_toEndOf="@+id/scan_r1" + android:background="#e1e1e1" /> + + <androidx.recyclerview.widget.RecyclerView + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_alignTop="@+id/scan_r1" + android:layout_alignParentEnd="true" + android:layout_alignParentBottom="true" + android:layout_toEndOf="@+id/scan_r1" + android:layout_marginStart="1dp" + android:adapter="@{adapter2}" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> + + </RelativeLayout> + + <Button + android:layout_width="300dp" + android:layout_height="48dp" + android:layout_gravity="center" + android:layout_marginTop="10dp" + android:layout_marginBottom="10dp" + android:text="装载完毕" + android:textStyle="bold" + android:onClick="loadOver" + android:letterSpacing="0.5" /> + + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..52431b6 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/main_bg" + tools:context=".MainActivity"> + + <TextView + android:id="@+id/textView" + android:layout_width="match_parent" + android:layout_height="59dp" + android:gravity="center" + android:text="欢迎使用AS-TRAK" + android:textColor="@color/white" + android:textSize="23sp" + android:textStyle="bold" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + + <Button + android:id="@+id/button" + android:layout_width="0dp" + android:layout_height="47dp" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="16dp" + android:onClick="homeClose" + android:text="退出系统" + android:textSize="19sp" + android:textStyle="bold" + android:letterSpacing="0.5" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" /> + + <RelativeLayout + android:id="@+id/relativeLayout" + android:layout_width="0dp" + android:layout_height="59dp" + android:layout_marginStart="39dp" + android:layout_marginTop="13dp" + android:layout_marginEnd="10dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/textView"> + + <ImageView + android:id="@+id/imageView" + android:layout_width="59dp" + android:layout_height="59dp" + tools:srcCompat="@tools:sample/avatars" /> + + <TextView + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_marginStart="24dp" + android:layout_marginTop="8dp" + android:layout_toEndOf="@+id/imageView" + android:text="Admin" + android:textColor="@color/white" + android:textSize="20sp" /> + + <TextView + android:id="@+id/textView3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignStart="@+id/textView2" + android:layout_alignParentBottom="true" + android:text="地址:北京" + android:textColor="@color/white" + android:textSize="16sp" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/textView3" + android:layout_alignParentBottom="true" + android:layout_marginStart="62dp" + android:layout_toEndOf="@+id/textView3" + android:text="备注:testLogin" + android:textColor="@color/white" + android:textSize="16sp" /> + + + </RelativeLayout> + + <RelativeLayout + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_marginStart="19dp" + android:layout_marginTop="35dp" + android:layout_marginEnd="19dp" + android:layout_marginBottom="30dp" + android:background="@drawable/main_menu_bg" + app:layout_constraintBottom_toTopOf="@+id/button" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/relativeLayout"> + <RadioGroup + android:id="@+id/radio1" + android:layout_width="match_parent" + android:layout_height="150dp" + android:layout_marginTop="45dp" + android:orientation="horizontal"> + + <RadioButton + style="@style/TabRadioButton" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:drawableTop="@mipmap/icon_menu_load" + android:onClick="homeLoad" + android:text="行李装载" /> + + <RadioButton + style="@style/TabRadioButton" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:drawableTop="@mipmap/icon_menu_unload" + android:onClick="homeUnLoad" + android:text="行李拉下" /> + + </RadioGroup> + + <RadioGroup + android:layout_width="match_parent" + android:layout_height="150dp" + android:layout_below="@+id/radio1" + android:layout_marginTop="25dp" + android:orientation="horizontal"> + + <RadioButton + style="@style/TabRadioButton" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:drawableTop="@mipmap/icon_menu_info" + android:onClick="homeinfo" + android:text="信息查询" /> + + <RadioButton + style="@style/TabRadioButton" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" /> + + </RadioGroup> + + + </RelativeLayout> + + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_un_load.xml b/app/src/main/res/layout/activity_un_load.xml new file mode 100644 index 0000000..483de88 --- /dev/null +++ b/app/src/main/res/layout/activity_un_load.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> + + <data> + + <variable + name="title" + type="String" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + tools:context=".UnLoadActivity"> + + <include + layout="@layout/toolbar" + app:title='@{title??"行李拉下"}' /> + + <FrameLayout + android:id="@+id/un_load_frame" + android:layout_width="match_parent" + android:layout_height="match_parent"/> + + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_add_flight.xml b/app/src/main/res/layout/dialog_add_flight.xml new file mode 100644 index 0000000..57b118c --- /dev/null +++ b/app/src/main/res/layout/dialog_add_flight.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + <data> + + + </data> + + <LinearLayout + android:layout_width="400dp" + android:layout_height="wrap_content" + android:background="@drawable/main_menu_bg" + android:orientation="vertical"> + + <TextView + android:id="@+id/return_dialog_dis" + style="@style/text_info" + android:layout_width="400dp" + android:layout_height="45dp" + android:drawableRight="@mipmap/ic_cha" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:text="添加航班信息" /> + + <View + android:layout_width="match_parent" + android:layout_height="2dp" + android:background="#e1e1e1" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="48dp" + android:layout_marginStart="10dp" + android:layout_marginTop="12dp" + android:layout_marginEnd="10dp"> + + <TextView + style="@style/text_title" + android:layout_width="100dp" + android:layout_height="match_parent" + android:text="航班号:" /> + + <EditText + android:id="@+id/dialog_flight_code" + style="@style/text_info" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="48dp" + android:layout_marginStart="10dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="10dp"> + + <TextView + style="@style/text_title" + android:layout_width="100dp" + android:layout_height="match_parent" + android:text="目的地代码:" /> + + <EditText + android:id="@+id/dialog_flight_num" + style="@style/text_info" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </LinearLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="10dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="10dp"> + + <TextView + style="@style/text_title" + android:layout_width="100dp" + android:layout_height="match_parent" + android:text="航班日期:" /> + + <DatePicker + android:id="@+id/dialog_datepicker" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + + android:datePickerMode="spinner" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="10dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="10dp"> + + <TextView + style="@style/text_title" + android:layout_width="100dp" + android:layout_height="match_parent" + android:text="起飞时间:" /> + + <TimePicker + android:id="@+id/dialog_timepicker" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + + android:minHeight="45dp" + android:timePickerMode="spinner" /> + + </LinearLayout> + + + <Button + android:id="@+id/dialog_return_true" + android:layout_width="150dp" + android:layout_height="48dp" + android:layout_gravity="center" + android:layout_margin="10dp" + android:text="保存" /> + + + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_update.xml b/app/src/main/res/layout/dialog_update.xml new file mode 100644 index 0000000..e3d143a --- /dev/null +++ b/app/src/main/res/layout/dialog_update.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <data> + + </data> + + <LinearLayout + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/main_menu_bg"> + <TextView + android:id="@+id/dialog_dis" + style="@style/text_info" + android:layout_width="match_parent" + android:layout_height="45dp" + android:drawableRight="@mipmap/ic_cha" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:text="修改行李号" /> + <LinearLayout + android:layout_width="350dp" + android:layout_height="48dp" + android:layout_marginStart="10dp" + android:layout_marginTop="12dp" + android:layout_marginEnd="10dp"> + + <TextView + style="@style/text_title" + android:layout_width="100dp" + android:layout_height="match_parent" + android:text="行李号(旧):" /> + + <TextView + android:id="@+id/update_old_code" + style="@style/text_info" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="48dp" + android:layout_marginStart="10dp" + android:layout_marginTop="12dp" + android:layout_marginEnd="10dp"> + + <TextView + style="@style/text_title" + android:layout_width="100dp" + android:layout_height="match_parent" + android:text="输入行李号:" /> + + <EditText + android:id="@+id/updata_new_code" + style="@style/text_info" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </LinearLayout> + + + <Button + android:id="@+id/dialog_true" + android:layout_width="150dp" + android:layout_height="48dp" + android:layout_gravity="center" + android:layout_margin="10dp" + android:text="保存" /> + + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_flight_info.xml b/app/src/main/res/layout/fragment_flight_info.xml new file mode 100644 index 0000000..d55c53d --- /dev/null +++ b/app/src/main/res/layout/fragment_flight_info.xml @@ -0,0 +1,186 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + <data> + <variable + name="adapter" + type="com.example.as_trak.adapter.LoadListAdapter" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + tools:context=".fragment.FlightInfoFragment"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="81dp" + android:layout_marginTop="8dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="航班号" + android:textSize="18sp" /> + + <TextView + android:id="@+id/load_main_flight_code" + android:layout_width="0dp" + android:layout_height="40dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:background="@drawable/select_bg" + android:drawableRight="@mipmap/ic_select" + android:layout_weight="1" + android:gravity="center" + android:paddingEnd="10dp" + android:textSize="18sp" /> + <TextView + android:id="@+id/import_load_info" + android:layout_width="50dp" + android:layout_height="45dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:background="@drawable/button_update" + android:gravity="center" + android:text="导出" + android:textColor="@color/white" + android:textSize="15sp" /> + + </LinearLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="2dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="120dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="装载单元数量" + android:textSize="18sp" /> + + <TextView + android:id="@+id/load_count_cargo" + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" /> + + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginTop="1dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="120dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="装载行李数量" + android:textSize="18sp" /> + + <TextView + android:id="@+id/load_count_luggage" + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" /> + + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="45dp" + android:layout_marginTop="5dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="装载单元" + android:textSize="18sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="#e1e1e1" /> + + <TextView + + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="行李号" + android:textSize="18sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="#e1e1e1" /> + + <TextView + + android:layout_width="60dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="装载时间" + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="#e1e1e1" /> + + <TextView + + android:layout_width="50dp" + android:layout_height="match_parent" + + android:gravity="center" + android:text="状态" + android:textSize="18sp" /> + +<!-- <View--> +<!-- android:layout_width="1dp"--> +<!-- android:layout_height="match_parent"--> +<!-- android:background="#e1e1e1" />--> + +<!-- <TextView--> + +<!-- android:layout_width="0dp"--> +<!-- android:layout_height="match_parent"--> +<!-- android:layout_weight="1"--> +<!-- android:gravity="center"--> +<!-- android:text="操作"--> +<!-- android:textSize="18sp" />--> + + + </LinearLayout> + + <androidx.recyclerview.widget.RecyclerView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="1dp" + android:adapter="@{adapter}" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> + + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_luggage.xml b/app/src/main/res/layout/fragment_luggage.xml new file mode 100644 index 0000000..d9e71b0 --- /dev/null +++ b/app/src/main/res/layout/fragment_luggage.xml @@ -0,0 +1,209 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools"> + + <data> + + <variable + name="data" + type="com.example.as_trak.fragment.been.LuggageBeen" /> + + <import type="android.view.View" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + tools:context=".fragment.LuggageFragment"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="81dp" + android:layout_marginTop="12dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="行李号" + android:textSize="18sp" /> + + <EditText + android:id="@+id/load_main_flight_code" + android:layout_width="0dp" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:layout_weight="1" + android:background="@drawable/select_bg" + android:drawableEnd="@mipmap/icon_chaxun" + android:gravity="center" + android:paddingEnd="10dp" + android:textSize="18sp" /> + + + </LinearLayout> + + <TextView + android:layout_width="wrap_content" + android:layout_height="55dp" + android:gravity="center" + android:paddingStart="10dp" + android:text="当前行李信息" + android:textColor="@color/blue" + android:textSize="18sp" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="61dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="航班号" + android:textSize="18sp" /> + + <TextView + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:text="@{data.flightCode}" /> + + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="81dp" + android:layout_marginTop="1dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="航班日期" + android:textSize="18sp" /> + + <TextView + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:text="@{data.takeoffDate}" /> + + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="61dp" + android:layout_marginTop="1dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="装载单元" + android:textSize="18sp" /> + + <TextView + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:text="@{data.cargoCode}" /> + + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="61dp" + android:layout_marginTop="1dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="顺序" + android:textSize="18sp" /> + + <TextView + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:text='@{data.orderNum}' /> + </LinearLayout> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="61dp" + android:layout_marginTop="1dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="装载时间" + android:textSize="18sp" /> + + <TextView + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:text='@{data.loadTime}' /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="61dp" + android:layout_marginTop="1dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="82dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="状态" + android:textSize="18sp" /> + + <TextView + style="@style/text_title" + android:layout_width="match_parent" + android:layout_height="38dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp" + android:text='@{data.state}' /> + </LinearLayout> + + <Button + android:id="@+id/luggageUnLoad" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginStart="30dp" + android:layout_marginTop="20dp" + android:layout_marginEnd="30dp" + android:letterSpacing="1" + android:text="拉下" + android:textSize="20sp" + android:textStyle="bold" + android:visibility="@{data.visbleState?View.VISIBLE:View.GONE}" /> + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/item_cargo.xml b/app/src/main/res/layout/item_cargo.xml new file mode 100644 index 0000000..47b3d0d --- /dev/null +++ b/app/src/main/res/layout/item_cargo.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <data> + <variable + name="data" + type="com.example.as_trak.entity.CargoInfo" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="51dp" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp"> + + <TextView + android:id="@+id/item_cargo_c" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="@{data.cargoCode}" + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + + <TextView + android:layout_width="45dp" + android:layout_height="match_parent" + android:gravity="center" + android:text='@{data.count+""}' + android:textSize="15sp" /> + + <TextView + android:layout_width="25dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="件" + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + + <TextView + android:layout_width="90dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="@{data.state}" + android:textSize="15sp" /> + + + <TextView + android:id="@+id/item_cargo_u" + android:layout_width="50dp" + android:layout_height="30dp" + android:background="@drawable/button_update" + android:gravity="center" + android:text="修改" + android:textColor="@color/white" + android:visibility="gone" + android:textSize="15sp" /> + + <TextView + android:id="@+id/item_cargo_d" + android:layout_width="50dp" + android:layout_height="30dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" + android:background="@drawable/button_delete" + android:gravity="center" + android:text="删除" + android:textColor="@color/white" + android:textSize="15sp" /> + + </LinearLayout> + + <View + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" + android:background="#EEEEEE" /> + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/item_cargo_list.xml b/app/src/main/res/layout/item_cargo_list.xml new file mode 100644 index 0000000..ccfc410 --- /dev/null +++ b/app/src/main/res/layout/item_cargo_list.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <data> + + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:padding="1dp"> + <TextView + android:id="@+id/item_cargo_code" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/select_bg" + + android:gravity="center" + android:textSize="15sp" + android:textColor="@color/black"/> + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/item_flight_info.xml b/app/src/main/res/layout/item_flight_info.xml new file mode 100644 index 0000000..249dd8c --- /dev/null +++ b/app/src/main/res/layout/item_flight_info.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + <data> + <variable + name="flightInfo" + type="com.example.as_trak.entity.FlightInfo" /> + </data> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="45dp" + android:orientation="horizontal" + android:padding="3dp"> + <TextView + android:id="@+id/tv_flight_code" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="match_parent" + android:gravity="center" + android:textSize="18sp" + android:text="@{flightInfo.flightCode}" /> + <View + android:layout_width="2dp" + android:layout_height="match_parent" + android:background="#e1e1e1"/> + <TextView + android:id="@+id/tv_takeoff_date" + android:layout_width="0dp" + android:layout_weight="1" + android:gravity="center" + android:textSize="18sp" + android:layout_height="match_parent" + android:text="@{flightInfo.takeoffDate}" /> + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/item_load_info.xml b/app/src/main/res/layout/item_load_info.xml new file mode 100644 index 0000000..cbb4a33 --- /dev/null +++ b/app/src/main/res/layout/item_load_info.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <data> + + <variable + name="data" + type="com.example.as_trak.entity.LoadOperation" /> + </data> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="51dp" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp"> + + <TextView + android:layout_width="40dp" + android:layout_height="match_parent" + android:gravity="center" + android:text='@{data.orderNum+""}' + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + + <TextView + android:id="@+id/item_load_u" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:layout_weight="1" + android:text='@{data.luggageCode}' + android:textSize="15sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + + + <TextView + android:layout_width="60dp" + android:layout_height="match_parent" + android:gravity="center" + + android:text='@{data.loadTime}' + android:textSize="15sp" /> + + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:layout_marginTop="5dp" + android:layout_marginBottom="5dp" + android:background="#e1e1e1" /> + + <TextView + android:id="@+id/item_load_d" + android:layout_width="50dp" + android:layout_height="30dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" + android:background="@drawable/button_delete" + android:gravity="center" + android:text="删除" + android:textColor="@color/white" + android:textSize="15sp" /> + + </LinearLayout> + + <View + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_marginStart="5dp" + android:layout_marginEnd="5dp" + android:background="#EEEEEE" /> + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/item_opin_list.xml b/app/src/main/res/layout/item_opin_list.xml new file mode 100644 index 0000000..15fa5de --- /dev/null +++ b/app/src/main/res/layout/item_opin_list.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <data> + <variable + name="data" + type="com.example.as_trak.entity.LoadOperation" /> + </data> + + <LinearLayout + android:id="@+id/item_opin_linear" + android:layout_width="match_parent" + android:layout_height="45dp" + android:layout_marginTop="1dp" + android:background="@drawable/main_menu_bg"> + + <TextView + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="@{data.cargoCode}" + android:textSize="18sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="#e1e1e1" /> + + <TextView + + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="@{data.luggageCode}" + android:textSize="18sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="#e1e1e1" /> + + <TextView + + android:layout_width="60dp" + android:layout_height="match_parent" + + android:gravity="center" + android:text="@{data.loadTime}" + android:textSize="18sp" /> + + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="#e1e1e1" /> + + <TextView + + android:layout_width="50dp" + android:layout_height="match_parent" + android:gravity="center" + android:text="@{data.type}" + android:textSize="18sp" /> + +<!-- <View--> +<!-- android:layout_width="1dp"--> +<!-- android:layout_height="match_parent"--> +<!-- android:background="#e1e1e1" />--> + +<!-- <TextView--> + +<!-- android:layout_width="0dp"--> +<!-- android:layout_height="match_parent"--> +<!-- android:layout_weight="1"--> +<!-- android:gravity="center"--> +<!-- android:text="@{data.state}"--> +<!-- android:textSize="18sp" />--> + + + </LinearLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/layout/toast_load.xml b/app/src/main/res/layout/toast_load.xml new file mode 100644 index 0000000..e74643c --- /dev/null +++ b/app/src/main/res/layout/toast_load.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/button_delete" + + android:orientation="vertical" + android:theme="@android:style/Theme.DeviceDefault.Light"> + + <ImageView + android:layout_width="match_parent" + android:layout_height="100dp" + android:src="@mipmap/ic_no" + android:layout_gravity="center" + android:layout_marginTop="30dp"/> + + + <TextView + android:id="@+id/toast_msg" + android:layout_width="425dp" + android:layout_height="500dp" + android:textColor="@color/white" + android:gravity="center" + android:textSize="28sp" /> +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/toolbar.xml b/app/src/main/res/layout/toolbar.xml new file mode 100644 index 0000000..c652ad7 --- /dev/null +++ b/app/src/main/res/layout/toolbar.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <data> + <variable + name="title" + type="String" /> + </data> + + <FrameLayout + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorPrimary"> + + <ImageView + android:layout_width="66dp" + android:layout_height="match_parent" + android:src="@mipmap/ic_back" + android:padding="16dp" + android:onClick="titleToolClick" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:textSize="22sp" + android:gravity="center" + android:textColor="@color/white" + android:letterSpacing="0.2" + android:textStyle="bold" + android:text="@{title}" /> + + + </FrameLayout> +</layout> \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@drawable/ic_launcher_background" /> + <foreground android:drawable="@drawable/ic_launcher_foreground" /> + <monochrome android:drawable="@drawable/ic_launcher_foreground" /> +</adaptive-icon> \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@drawable/ic_launcher_background" /> + <foreground android:drawable="@drawable/ic_launcher_foreground" /> + <monochrome android:drawable="@drawable/ic_launcher_foreground" /> +</adaptive-icon> \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_cha.png b/app/src/main/res/mipmap-hdpi/ic_cha.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce77433634e6cc0453fb6308d1997872fd6f307 GIT binary patch literal 476 zcmV<20VDp2P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp) z=>Px$mPtfGR9HvFm%(+yFbsxePeLy#6VM)ElXendlF~`av84-y^Z=8@eNN-lHnJtz zycdok@&8Gde%T6U{;8SuVFFk#pBH^^whGLP0@#DrhqnE^-UHBI+kiS~t@dv1e}HDS zGXPsp@T#=l)IwNs)AtuY5F23Iop$!w1n}6b>`RL%;wlJCd|2O@<N4=%696>L)0<5{ zlJX*mr1)Rdw;32e_&~B?nM4pdal6*JJ3Y8SgD$uSghV{p0!LH>Ar(gf?86d>67eK} z6rxl-3&4dKx+>~(-%I?0!%U5|Vrn}QT{CnJB~E65S(sR0EO9mfV>^5Zwzvp@2_X_M z1qcR9?d%|nFsg%`xO-J(+bjU0&(R{}j&c%!GMQ059^>o*mIa{1ZJ$#<L1iKdz!7Kq zM7AbS0Eu`l#0@}+cnt)0AW5|v%VeZA5gf~FrkdZ25{TTfd@>f!REy0Z2O&C^mxz-! z!913;_8hZ8YCDq0^6_f6Rsiqr=0XW@{`anCYXj=obziUUJJO0d0yXc<4)6;Cv5zq6 S7{luT0000<MNUMnLSTZq*2{+g literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cm<R)d19?=)E<{+g@mp0C)CAX%7ksNnpX=jPlJEkqD9%o*fC(U7iySOYHHS zCLH@bXPyI|^Z)Mc^PG7Oc+NfBJO`d7p5;U`M53Wbd!w|M(MUoNRc2m{@^!wFKzL?& zx_RAc-^9Azxo%DmXW^9GV0~;n_G9&dym)|QrMEx!y_F=oDunn;1y)cvAc6z{0MHiz zodGIH07w8nF%*bGq9Gv`YHnm80|d1T$uW=u4vGV%tX#>e5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!<r*4*+?g*sysFgiN}}d!-T(>jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#<RA5Hg_mG&BZS>9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG<W<SKpuS2eaDGkL-J- z!+&UV_N0e<DV*|igwqdC*l{lj0T&&`uq=ycU@f9x0i8jzLa(y*X(YV?PCtUw;ks}p z4zFn7N(-OG^(9ot1ZhYISOWe9?+l%f6v41n+j<OM$_uJgNP?ZJy}hEMMH=;WiG4I` zs(bIWwSD<LJnAN(E(Xjr4k(^UYF37F_3f{;E%%FEa&I3I0GbdH@{pD5$m+1PN5CW) zyZ&*9o#8wstdx@^rci;0B4BP2+H4Y<KbJI5L(bXG(k@`Kp=d>8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqro<oln8GL@_6LPC)kg1!M)Y!|NCn7b*0sG zEN=&c2xMM<>a($ne7EUK;#3V<N-jQ7j($tREa0F&-HzYCQtR#fTCZMRN*ZSm;T7a+ zuxa$}zDL8R9wGYkHb$+gJoiM@z+u{u7a_VUBwtd)bPzHxH}C`W=^2PsBr`s7taBMG zm#Ss=-o`)W8%%x%>YkXaew%Kh^3OrMht<?zOY6P}#rBhn_hrWY$_P`{#CBR9w?+E6 zt7r#NN-tjxFY{9q75P<|L<ZJBHwn4FhG(&i>jYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)<UE%?IC0Du41FrE~F_qc8nOq>P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9<vs%8>j@06@(!<!eaZcF<_le1MVaYMg=gRy*f2#IaBH-mJIpy+L z=Gsbhd6=3>{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_no.png b/app/src/main/res/mipmap-hdpi/ic_no.png new file mode 100644 index 0000000000000000000000000000000000000000..2d49e56c106b9cb08b2713028d34d50fc434b430 GIT binary patch literal 8609 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuH<!ckn_w-(t15itRHmqN0O$B3XH(E|jyV^QXq8=yM`Q**vy zpEpgQd+no=J<Tlv&+_>B%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}<p z;bEy|mw1;}P&gp|0ssKe4*;D3Dlh;r06r}ehC-pC4mGy`3;|+W04+#B4r_x~@mHHy z)H}bD|I2-n_L$pW;*I)~?=#N<)`92&<$3IR`#<SH6@I&FRQa6xBmQ5wPwJ2PAI(ne z$L2Yb@JHxb`+bLk*AjR$^`b?pr|?!6=+AboIQ2D-p)UI7x(J0|5(5~ur$_+)`>C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ<hjKiZs6mOSFB&+cIl`GV$93-<ciUjF#*1^<p~gh ziQ_{)r0dA7$It&Fe=obxu8n!+elxmgqxPbUL!FxW0;AOfqz@8JOz9Qbm)m-9!^7D) z480@BoIIb<oT``+rVla8L)8fXO&6}3P9n4v$`6WG<DUNWuKb9J9rUsAn7d-_YWT^U z{NXl@OAPIJ!>3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^Q<WhKYr9rXr6*~Tmpuq6NjnD6;;NNBGIg-1ZvfACQ4{ocrwM0)?`oL2ts zCXY5KT@`(ir63J0?%+_(-dDgf<6R$u{lCdy6Zi5d+Bf;1OXyD;xe3#Gug*&T|0o41 zD8;$|JvUv&@vsLIH&C5+S{!k&{~Z54^y@9r>X7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!T<mO literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..62b611da081676d42f6c3f78a2c91e7bcedddedb GIT binary patch literal 1772 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 O>FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_back.png b/app/src/main/res/mipmap-xhdpi/ic_back.png new file mode 100644 index 0000000000000000000000000000000000000000..49380d61f9138d8ee41425588df74103276351bd GIT binary patch literal 642 zcmV-|0)737P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00001b5ch_0Itp) z=>Px%JV``BRCr$Po9k`EFbssrO`1)bO`1vCPSSLeW|L$S77T1aFq~L)PSW|IKm8F` z@qOg!K`AO5Z@O{)vIE#NVB-XK3v4_AmNN*N*_*1~&;g^jfSG-X$Y&z_EF#}17}NmF z>_<dCMxuUE)gvMsXaPJCf7h+5kavf4f`~-ghnf9}$ooXU2ZRmi0Az~4sp<g%o(e#w zc-MVY)yt{?v=DzEOAr)a>BHxD5%JM}%Jb03_wU>kKtQ}NfKI5iPXpEr0E75u7U;xZ zGptiA^35y|5s#Yco`J4v0XFefEnsFo%KHj$s=?OzQ(sgK0IT>a0GP!W2f!}AC;&6_ zeY~&mrdn0c4_~IpED#WXR@KuKp^~4&0W3*8+yW!@yGOxm9(njmFd*JHHD1`HXb=ko zMtdspFbiZxpH6&j0A9=Y8b4J-S-`70zRvf*&l(*B2mn_c*y+*C05A*mA@3mMWC9HY zSO(010ITi4GN`}-BzDNjgys;60Ej~94m#jR-#M9448T$#6a}yZ2*m*;5OPj`+y;K` zSIrJp05C(S1|Wgpm7?^@%h*^|EfcB&m;s^4d0<MsIsi5ZO#mdT#^DXHM|SuvwUcZL zpv#7)5SjyM4S@nc0D?aXttrp|Xa#`^KnEe`L<x3rf(}3c0>lcG05VH#kSa4RfD8!h zyed0f360blVg82~MRO`JbD!xz_>U$aS7iJ5ptitVSdstR0Yqr6@!35C))>`@rac29 cwAT3SKYlC-P?^}TO8@`>07*qoM6N<$f}sNpumAu6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_select.png b/app/src/main/res/mipmap-xhdpi/ic_select.png new file mode 100644 index 0000000000000000000000000000000000000000..05682221f12b9487e94cf207f78e169686d65129 GIT binary patch literal 450 zcmV;z0X_bSP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00001b5ch_0Itp) z=>Px$d`Uz>R7gwhls`)YK@`O21+fVM8^KQ?*yVPQ2v%1LqNEYA78OA|LA0|F#DImM zprp32kXTq*XmeF=m)O|&1uX2Y5^_A<fMWjct`aM^o|)h7<INI=d}zq|_y<@g{5K;K zLL3uOV7-o?;IY|kR!B;D1z^$7>!v26YXi6k5V={rRSyQR1>nTn>R@2zeTt%JBu&#A zfH?<`kL0#cD3n`U6a>LI5!Hxj#wTHbHU>~uO1*xqX{l72%(Be9Wa^iYr!33LjYi|y z<h1obN;wU{Kqh_&dCBE+3-x-v{^{>3nh;|4qZ2m(Mm-^KL^Piy$=!Ef&nAaqxXjF# zJ^*H3(psBNwVl3Sg_Lpwz?ln#nb)<}7rnFt{~{s89uXZ_AiGMb!+sj;XD6ks0NCyo zz|2Ql>zzRtumX%(N?8T4(h*cuO0C*P=man!VHln>^IB`SiB6Lw*|dds^}uE*7K>x~ sd_IfgIJIf}_Q2KXs&gKZYhb7D9Z0HWJlW&@!vFvP07*qoM6N<$g6c5G6951J literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/icon_add.png b/app/src/main/res/mipmap-xhdpi/icon_add.png new file mode 100644 index 0000000000000000000000000000000000000000..1732208b2c1ea567cd795f342e82a18d4b570c42 GIT binary patch literal 2792 zcmV<E3K#W>P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00001b5ch_0Itp) z=>Px<qDe$SRCr$PS_^PoWflI;-3{9|>9#^?_HHQI+5!=jSG$kUq7@a2%3~DJA}}hH zLB}c&<*}O%i|kzi8F2t*tQMW=_!yp31}p`6jD_yqgi?rB!4{LIZ8j+n>9#3JcK1K_ z?shku-MiU)H#g}F?LU)Aa_{-i<GbfS|9{SZ2#5Kg!`yxx0pN%S9OeidSppO30OzmR z>e$!N;ADq1T?~^Gly)*nP6*+IWSb5MCo?+$DG7;_EO;-NlVr0c!6M1SVlSqBl#GW@ zNKTZVmU+N}aPKsGM!Jv$pAFz-0H**r)<VTQ0saS=w~-BNV|O-fwu1M#0q_TRoJwS0 z4)8?)&9Oo$V?5}2Fdk8(uHPA>*Qcr(fY#7^O^nnJ0jvNpbv#OpbMDI^en5@5pQwdT zO#t|BOPnl8c!YCqt~cIc;B^9b0!V@>NhIybt#3{ei{zk4B~!ywl1DfEduRyrojhoF zvLrb{TCB)8nZ*p7_O~D>6I=lM2;^nJp(l_TzlulYAD9KfGyt0MBw<ULAQpEJ(VL>q z(Gd?Hv(v01M(F3S*y=dOIm1gx`vAHbKx6Sd240LS@)wNo%F~zvAkdar0>(?D1TgP} zL|3X2`DHVL$4k4Y?cI|EXYOb4xubXy{Y8zqmKo)57=VMuKL?;L&-}m=cr>oaml+i{ z5p;o2Li2>XM}HJ?hZ=1P8<A%S0Bwt_OVKL;&L}ee;kY7SZA8dq&;&vWE|x>UikKol zSWUJe00O~XVUTot5wm_(kzLi8Pv-kTFmXNze;tv@J2G%A>QIi^F_s=x0cc&h>kJl> z_VuR~7!h5hMqE#g#dvcU&m06!w`qY&LL(Tn2&e~Pnqbst{|2Tpa1=2Hh%g|4{Sq+1 zgaKyk1<-E;`qDQ1CoqS$Rs%E;OxzF3Zp-=cpsL8l|Ch0-3P2#(7XoplC~DptQ{<mi zQl`C|Zvt=yfYYlfZ0bGZU6!!X#`xYs4<+>Gdc(V2w&BbM5a#FJ)1Fj%pn22X^Y&Dd zRTY5NP@;o@g$EgIR~6Y)(fIBB6c`tnGR!>jFcHr2Hq)zmQv+>%H-PyUBe9CFiYx9l zH31N4>-`j%{x$OTc}+}lU!}(^-o-Z)l|<t)j7y~%kHwPM`;mZm-c+11Z;B}>d>+#M zc)r_qwn~z1V^J)4Tvgnc)CNE>@of-(Uzp5dxf*RMJA22wco`A?WX6IQItQ>et}Sz5 zW`hksU1mCOy4U9+-K7`^_U-`DaR>G3Ruy?}O#t}Y689VkPz51OwiDx#*=50~qnov3 z@ug+}SoiuqtlP9NJ7uav!rfQRHZvVskW3AsX>kkXP%Ik$P~s6P(r5n=HFVzV8qgCk zW(){~63+nmay2B|yII?6@`xKUWV`@qLWps>cP{<8RA6gc-_^`q@Ki~HZ{wYEhj{?n z`d$I^B5fiA>*I>Nw3Nw9TezXVKD%X^8dd-RKzAAVL%SCfG8^&=F^hBK(Wd8315msJ zR66#)*2D9Jz&2CX1F!-BBCPQ?Q&~_xYh}VK1lsdD5zz&)i0f(700cq_EuH;LZX&N% z756ozOxnBoEC9M&(paEa1i*9NW;(Ad1_b+0B@%BIJOF%2TyZ~M3jl8eI5B5G-={|1 zH<mKl)Whdx1fD$<9soe~d8oBi_M*03CuLZAtKb35--<=uy1P`hAlMC{IR}7#hSlE9 zUpwF>y68^02LPR351m#jCva=R0~@*u&n0|Ey;J@}Egqm9Ide%5(T!@vbzj*M*v?mg zQSqcz2?UFlz&39)olq)cL9kn{BS-H@43MsiMH+uo0|31r0Q8BR{d7$%;##c(z_noL zGM{h{AoO~hsi{;>Yk0@eoU*?^@|=F8Dz5u$03e|q9<o^=0hh%T`O#7)9ozYOW@J5M zFvVEEc^`Uqr>cg8_xEM+!QM=kPLc@o8VhxnigR1$IN+IGhZE$Z@-%yV9-3J?;nW}Z z)lYM9?v$1Nc(^$hk$-L;fM6mGf-TF0d1)-_US9@44+mL5(VoAxa|pj)_rI#fkB6YO zWh$1PJtNN|<?~Phjr_wU;g{@#sg|Ozz$;b7UC3yQ<&PZ%jR4TiLB=5hfRXaeok##e z)t7+U#n(%8$d<r|K2I)26%Xr{K*&%KTn@%6vu<t0E&#$VUvnYrE2v;)5UjclzShl` z3*e831OUcX-(1Qa)QX0M+hC&VK`7qE7Zc&hLjnNshR;KVN_AcbD-S|dkHQ_>`Af{u z?h8x}OO^nz(dVITwpu)_JPKD$hT=WEkOXvd?XeKC0ssb{@q6g2rE>gMB|}Ei;r4Aj z2X^$B`utX<!@z2<hsrWk>(XHZ1(7XV_^5$;3>_i>qFxV$$~?fTf`~tqc$$E(WCbvK z)To@x3`<6PH*4J*rtSeOSppJ1>pz|fm7hWoZ0lPN=EBxYfIp_lg#t;j`c=~5J_X=l zegX@e691W8D3j-($Gi9;B3x(23oHQOZJ&o)^kn*jy-yO+#rb!s^!}NZE=Q^zg-4ae zD_uCYckxmX)|mm|?_2icv5mRjr^cCfgf5+BX1bP~>AJthBoIpM9_dfwt*YWKJ1gXc zjR`<&DB)uuUeJv2gc^~*uBU0oc7BN2oEN;<Ie>vdfz#(s!JK2OXM;s@hkYK>?Gy>L z^?wm83I$LC*2EN9_cBN0SM_Qv5K3qb5leDmfIqZRdf~>%@$cw?5bxqJ5sGh-O?_2E z#Dpz&;IcEDM{cZ&=LLd^+YeY(=nY^<m&BFEiWRHs00et)IMBCKxN8IWNmX%cWiZ`w zut@rS0OtcZ+K^EOhzN)a#<TvpRI%|PaN7<)B)eLOS&aXt-`mx)Y1P7t1&XQwEV!w6 zmVF9dA<#($JuB1)OYMkt@e(Vp$3+^QzWFrfJ%4uXw<T0C{6%`)qAKz|W8qsB0Bv$> zu<yG}JgOX)s^j`iVfTImA8%4fN?jjBuc{H(;%dST0iZD{-C6)_Ru%coY62$XeW0!H zLNKo#CCfk)hoK;tXSyKVJF6}&X|1Zotue_AXFk^vJ?@RkFjP-QYp8F%PN&$lYQ*(h zBRU!O0F9Y%W&dfC5M{<P_=dRR{-qItR?+xFy;l-QD|C+P6(rEZF~w!LdCL?4n(~Xo z{hv&ydBcIDrn}e}?edgZs07=FSk(1`RfZPxX}xv#e71|vL-08ud{alp<EkQ8Y=+R& z$us~OlLfcDGo#Kvbu~b`hoWqIEVP{iab_{ZL_-AIAd?u9h=zpFeoI3_&=5<hj3jIh z!R(ME$wABxme@f|4nfHNCc<oH);d5xT>;pB2H#bS7uEzoUWq_x*Ehhl0#sg<m<SIj z=SeAmA3z2VsCUU)^~&@Z7XW!_x%G&P0O>-2O`T~?Yn+?#PY|tz$ULD&n_jPxM|PSe z0OS?W;zK6G0cM;G7A-{N2E)l<Cy_LrnVs52kO7510<ujP+EP0B!<`^{3y`*|k;cCn z;9-cwQUHudToT^hklH`!6gIn)>@+<iYz|Hj??s(GiA*|~dA}*SX_e;MlQSkAfXOk- uxRfIR7{}`4NqNKrKAzvzxK)R}2mBus@YH>+->oD70000<MNUMnLSTaV9~BG$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/icon_chaxun.png b/app/src/main/res/mipmap-xhdpi/icon_chaxun.png new file mode 100644 index 0000000000000000000000000000000000000000..a7b5c4fe5066d3e517ade0c4fe6057b3b92a2d35 GIT binary patch literal 2599 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 JPDHLkV1ijC0xJLj literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/icon_left.png b/app/src/main/res/mipmap-xhdpi/icon_left.png new file mode 100644 index 0000000000000000000000000000000000000000..cff3575bf3859d34f2832f5e34d518de4ce651a4 GIT binary patch literal 1492 zcmV;_1uOcAP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00001b5ch_0Itp) z=>Px)j!8s8RCr$PTU~4vRTTctY+Im(2DUBkE);=4h!}y0x>F0L28|`QiAn^CFDCGS zF(LY3(soN+LboLb<4@wx13dX4f%p?4;!h%tRCbmiE<Rw1K#R4zTeg3cLVtEUS7+K? zx`ohtXIt#FGmkUpe&0FYJ#+5NJu`$Ee$Wh$9}^<LhKj2T)Xc0EDnriw5L6=ElwyOI z8umZfl`fxQ0o;}0)kLTRVGV$#={jO?d@~sSU<{RkI_Cu=7={EWs*dbnj2$#WI9X$e zXs5r%aYz(jSOB>?TmpuZ2_gpkKulFgvYlmMy`m1>&7MGWnL6|sBS|LUxrEIlE3<=n z_N?xBjAcYS2JG!UL-vlYm?Mcncv`7(){FQcBtVg;eGx<KpHaad4fvc}MF>T0-Jb9f z0$$d}&CRi)wAhY$IkqIs$ur$(ZtWkXLFQt=FTa(SM@Rs<D*Pn~FX`Y+-K*3t^70a; zV<%U&dO^}V8pcD*vmvj|O@aIU&l?Cf-W)#1@Rd^Q+``KzCV(gOH$a61`qA%mBvX@@ zEFHT|HP?bS`-ax$&b497vjulR9s9YXt^IoJ0f4nAKGzanE^Yyeye)PX%jnR62{_>Q zIp5|bnFzb`1MS~NyJF=U)~jU;k(DW>!2WXf`o+sFeXDf;GUIuEZ(%17FSh`4Ws4h9 zhN6M0Dtqxvo$DJOf{C(u?NIl-jaT|~(aTHnkiQ@^1-kLdt<(PVJx}T<)wrzG6$W^? z`2`qV{S8!G9%t@lv+MI4-e6;|UI#XBw8N2~m15o$>aVX4beHHS1^lxF;GLP2^<O|? zUi|UwtPHSj0jmaBMbKIWtYy%84wxPfLPegi_Ij%a!-i0%>~}WLnCAd3cm^Cv1WdqI zzt4GeMhGxAcm{B9sF?mqP_Ax!22A}aG1DT!Yhz3;fO}79J*jloXz->M;PHyK<u;po zIi285D}dH8iQBT0J2RqbKe{lQ@)nRiVV3U9C&rsf0J$Q(6cRfHqQxTt2<_G1ZAr|Y zEfw7AS0C1{jol5>&J7N#(axTDVz-owkBHuzlpP^=b>wSe?1k~x_9<|^c~S(BD_e^p zNexpVz<ayE)V-4;fW|6Ug*SunUDAUz8!4u$0g0f;_7T(RCYe$IJrl+>Q;mvXS^+c> zimD@JjIm?s+zzG|K+gnEWE;Q^8x_Iy0*qur>W38qg>hO4Fp>$o0rp{XKY*y*U*kAF z-jX?O1Q-?}RP|pE*QW=~*=3qm0wfBfN@_T;&-L4Qvv1nBL7u>PZKhoY@CI(mw?Wb1 zc<ikVu)4!mci8F<Tis!+J8X4_|HtmIw$p1vleT6v;EjOK`3cYZJyAB>KJGerHPpXD z!`oWA5IJ*FzZ5-pq4(VRi@lHPd_!2q({Ubt6%jaOPpA{11t2=C)Ht>a3{Bg#v@Y7v z-5W2?o@2wd(mTHu{=T8BB^(_n1X!2ibJ=+b#RRAdHGrsi7@WPX_*|dy5~X7&dqTSa z`c%VM;+&05^86IIi%qw1I@mMf7W-AHb#36~6B59^C-MrZ?280=Cd+W0sx1ifk{Pkv zSQT}~C?3+&l?cy2Wk-Si_IJX4{VEQhxR!)w5^WFcbKKr}8i!O!01Zp_gbo6v-;2YE zpzc)}1qWvh)CaxGx{U-mcFa0&)BLP~StSy&b&3B3G@CW6a<G2&JPgECM52S}ydJy# zpTMv)hZLV{r-%>20%+iFPvm_9dsBpHvTYgYgMiQRmMD)Q0rX7J8Xv$%AgmB2oltv* zO8|B&waybpa19HfXM*>yT#DyD0d>d?A~%3}Mw~D(<^~uGK(Yl`M$egmcjZV06h}%+ u0CBphH^LHN>dndh^~lPA`>XfVWBV6esO<J{s+QjX0000<MNUMnLSTa7C%^9i literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/icon_menu_info.png b/app/src/main/res/mipmap-xhdpi/icon_menu_info.png new file mode 100644 index 0000000000000000000000000000000000000000..a5bb0e50d853078f3536986b6b47acceaf21806f GIT binary patch literal 23988 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%0AZRP>Q{Lz(i!Cm~;OR33o3 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 JPDHLkV1n9C#d-h$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/icon_menu_load.png b/app/src/main/res/mipmap-xhdpi/icon_menu_load.png new file mode 100644 index 0000000000000000000000000000000000000000..e9fd40af83f4bdd78d3fc32d6232d1989e906b59 GIT binary patch literal 17420 zcmYhi2T)U8)HO^G7@B|t1PKU&B2uJF2?z*0Du^f@LQz2hX-W+VMd?jYL8XYOfFMPr z351pqnnb17KtgXJgp!bu{Jih?eKY^eJ@?F+xn*XbeeYg-t-X`)Sef&kI(v$Rg@w=3 z!u0OR-1|R+o9pEK-Jz=RWMU1uYkr-jYDjYJWWnKWeA}3Xr8W~t_uxEP^8{KrhOn^k zcmK~|#RQZ+U|}&Swlp=q7w)#zwuWt3v5|r^A(Qsr3+%-|@6y0~ww!q9|L)@jF(lD| z+H(q7Uy6Lbq}<~}g}%P-SP@rj_Qq-C)W7!}g5N$)kPePqJu%LGt_1^wk{GoRx5MMs zpo@J`uK(zT8~WbMd0q`05pL|q=Q4Km8K7z~0{<#EgGlYFR}MJZ990hBs?}@3)TON3 zd!x)H>JMo}AFkr=Grxv<N0Mxv(_Kj)o6rWH_wy<oR!fM^VVB!_?2kVfMm=1>ZCA@N z*DJ53mrgt>joi1f`C#kaGCUDU+zqkMBp#nUA42WDiNVoQ$Ad0pBpxuSUEtP#XcqAY zBK+)MrDq?B;QX#nKsM^EwiI1o+D;a22#0o#Z;L3<M($1q4wgB7ujce0RS22?^2ed{ znA$c#XDK(pOV6FWvfvG+mjv@iOK3d;--KcY)IPu%0&Z(RR4mpSRV*Hwglhkb`w6`i zz!)4=X5~k{ud=Aj4%sUm3P1eXcWHay`o%A5McwT8y?)EBd#z1%@O68%1jL*@=NR>; ziKlw>%ecHiI^KUB`{zFUXD#2^JaDV64by3zvo?IRV7A1~%QyN+Z^xgxs6$`0cbk#> zz;cAGEw~KM#-aoz5{j((O`m4)pI=v$++WgTu-xGl5%+Q7PWLde3PXKIYlwS~t-Q3Y z<rJriXa=8lO)b~@Q}jA@>gbq$4b)w<)iLMYv)%{mLag8AyUJ8#CgtjmW;bg*X3Fcf z9;S|qNoJ3+$wi;9`7e(+0tG4WIsMtRW*-Ac>zI<(*&Kw=!!?y6I{y}JwiU}3!i)3c zl{;L-(mcWmD=uY)UOSr12iByCr}Q)!S&$3TbM1;lsmz%AYV}~|c$cBh!9tC`8TL4< z@IMudYlATo)rrT_J|M&Wp@LV|MUiN8#19<kb5bTL{Hv-c-zx44=Os%gLC37@*Jqk< zlHb9N<j%Tiyg214MAGb>(U4#hyNZ2Dpc?%#vU=K)c{YjfZ|obFXMqLXB1=`?o2-+L z1}iLg;AcS_^&JG7XN<c{_g9_V36I>}5NJ3iToov<W3C^s>YZ&p_$uhVL%*5leX3;H zLY=s&U>YXWgq1goD?{Qv_uYjLs#3~dK&)IN;gsAPboLOnixV6uGlN}WnvWt%zKybO zbSHWcyuRLa?X%1X><qz^stZ^uz<TvPuxNX$FFOWmFLn7Wg({ujP-Ai4RdwDR4`wKV zQj_=Bk;8L18UB3dE&dxyy=<(kydKlHSdQoYI0o&w&0clR`Jea5U=6iQG*d+^W8+2B zuj{+s!JDboRbw<}zR9nbP(G3~MfT%pKU|EKYzto%QEaPDr|S0So{Lufy8cZM#Yy*% zs@Sh7F|&1nd}#9|0#97{nk<A=>LM!|LicbMR0>^c;_)Lob#NAXr5yhxcxdML+pG3{ z?Gl72ou9ghT$9eE_~d;oB>7kXqwyup&mooLBeG$5cCBYz2$AmVQJE59`a4gm^RjcN zJs~?*L!SZLDJ}TSeb<9i8=pxND_JaAESl<im~-oY8U3UyKGvUE1PH}hnX~M0HECI? z5a}TwqHY3&U=0<|6Un962krBdI-lMrCl>`*_;vPdrQ=`$ha(`NrFh1t-0)5w)N#jw zTp{(8A+-`;?B-{yPl$sjjUwXHJR>^GI*oX<PthV6n}Qe4+~$t+))WVpv2UvByqdql z;ADyfpfdwyw&m?++Rz9qmqRs4hf}?ER6b~T7i^q#wX_Q=O1qK=Rg-JA;50lCh^qOC zE4w_I5J1ogx3cP;exmJLPBx?3<lC&=M$+O|BcOuyIFM=n50ke(?xM<Nnjb)?f)e;t zTzN-OA8%AeG!Fr+nu}eB8pkg4?=Ic&s&Y#V?o`Vd69zrF5c{~n$C{MR&WnKk!4Kh{ zf4qC{wDw^X%HHbiK=`BRLCeKB@aKD8)EqU#k*?9e_wDdMtcd)Q003_i3J`HiDdpAK zEIIDru5T;hqQclg>*$p%HpucD0>4D+eakmR`1~#}NM%4qMYs!aFVl%X>SwY8y)e42 zlIpAfJ9SGPywuY+s`p!)>=*)srrQVoaoIEQ6FB9be1oklwPhXo12NETpAk@q|CLzH z{|*)R6L0>{;m&eUJw`03#(`i+?ry3GA5;i_7uE~*de$})uzapr9fU1TNrW%ydPeAX zb@XhU8`q*c%_cn1KY)@~j?P0{v>_i-Jt_=)4De<%y_Yfehz3H7A2Cz_T8oozwvbVq z*S(n2&vC^;M4EcYc8OF|cb&h><xjp}bkEFd0Df9E3K?SYI;_fm`L@1$Y{|Rk;vQB) zjT=bGQ2(9+O4uz8+_vCQ--b4&iP-PRT2&R{)2}&hHkTzNgB^w|AWNG2W0+(Ku^4ZP zy43C@h-2rFQ>}dKiu_b*6XY52pKx3pi_w2RQ|I5kUgVHMDXFFkJ#)=eWBSGFrB&ZX zhqG7D1A;Iu$2_NX^*|RL`mHIi*|g^FJvQ3GvxYiDFn4qXB&E~&8aBPC-GWhV_fm`# z+`d5w0tg0+J4A^g=0I3Hu2Ww;+th8XOVE7+CfPC=e}S%x^84^`hODc~C26f0qpdWv zI`;w&eslsN$oy(;eYjX7h>dWk*4wa$Gk9@<L+a~?=hB5Sw`T^ca4X>s!0Kc&21dnc zIIw?X$76rF`wQ9<B$hi~#lCb&+yTf@%%iWW3>A?ps6McIb2>>1tTWuqg20X&YW)bj zCmTgH4Cy?I`)uk?xDDv^uj%a(%3_%;ivA72J_u-%?=Al^tmk-f9~kAp{gWM<3SD~} zK4h{Po47KHJ<|LQo55`Vb;CQ}N>OomFpcN|uo1r>bcO_@&x%7ZY!JKzqu2Y5?K~;Q z8TsrjJxw^s41TPSxLnb8oNV@y7WbL13jgAa*A=J*NEO;ch(IB&tjj@OhHFYxaRqz| z{fIge$1QVBqSi7)NL6UHlxJO>2Y*Kt`K<k-`-NEW%M$!M*H-}-7TaTUb_T6B|5_6j zNvwaIoHCLgMqdL#Bi6)C3ADBWN%!>cnpx`m6)A}a{j9W>l*Gd%fgro)FPxJcFXR-j zAM?YymUmyD?-BozQX0Cpt!_4GW_9f9|JS_Mnwo$4jQKdJ`3e3*#jk6)Vlrn)(dzv^ z99^@p5EMuGW~<jWJz}lj9cB>xUG&D6e!d-2Yn${J5kB2=s1mmvdQtS?jUQj$08i_v zQ5KOW?aCxd*{`Anj(Fd_?EY->puNd&!L^F4J7B-1=-f6;{!|FciZ;G>18p2_?e5nn zAL`*ey9NBwguAA)9>J>XYdm+&jCeW1_pH1@Kwr&diubQKaJ``=g0taohrZ=uXT}>B zx%Nxx@yYAiE&#)%<?!{&t4HsMD)RA&jQTDl1J)>q(M}G35_0E!oAi`^K-q<Ba)7I8 zlHAYJ+I!Sm8sSI5xnwTI#qZgec~{iO7Ez4ph8nPZ-$sdSZ}_x?on^(5aKBrhe~B|R z7)w%D=n7$^upe(9cTC-AQz|6?JxiTjz8E5RT*>Tziu!ZyQOlcWF1-dM=rI?G?Welt zEeX9n)-tG%?~gN0JL41X?N7>7ZWULY0*9Lo_bRLAm-5Aiyi1?%=;SQ!`Bua`_(Myh z#-|%dB)Su$*V_J~udG|p&jY~n8?^$jVX8lsf9#ZSiH13+N&II2Jv|tNxA|@$Itax= zc9Z8GLCCY97n^L|5s{~_%ps)>jS|x7Kb0XnK+k!R2idpyG`ufracr8ViD>yuO|>Za zh0f`S;T<h*Nxuy(k-4Kf5KG_;>mT)smx@-%><rr_cfKR#*DV#MX6}n4U8-#o!?DLk zgAps9*9H<dv~_|C(!9CHQR|-3wc^P$wR62_iid&u?fBGXdyiGUG3}a}jP1%qd39)! z9@-mzdpR!8g!h|-^QSwjK4ljmsR}&iY&J1g{|M3%XjA@Rz;D!f-4o<x(G|Q+Dl`<m zH~+3=BgELe)4Qrp-p0DBgxsM2LO|J7sc=kXs9Wl2G6aBhV&4Lfc<jwmI)6CMX~7%< zu)_HH8HX)i0lZUNyvgEFQ(nMc^vKzxZQWo5hCVUlUMViHGezxqQIjY9CrMA5%_k<A z)kI&l*5gj##s4OaE?*N7(!JKe_f9lW)LbGZj^5fab|({pCdOAU|E8x22*hd5a2Zl= z-Aajf34sy(2L{5^s*k%pxQ!Y4nV1)mcq6B${h3^n>$;n@2)oO}*k3kGHhXHgUs3gA zc5>|T?nI%=v_@LAvGg`lI*Bjh)lSEpAh3%Et*iT*Gd`hZEAr!7nx)u+rBcH0_k!q* ziMy)K+@sj*?n<rD_43nVn6n95WH(hMz)FURu9`li-=A`S|At>x(UegoD#&v<#&os~ z_xAD<@SvZE6zOWLO(4Ng02#cO%4epC%67cH(q}JjME8Iuz$#~)Rd|Twj~e%m?sko% znBdlT$^=J_j=fq>n`rO$jvMwYWK#^Wsv)0>Pp}?R8Jch(y1hlM8aj!d<EdDsw+K}A zE>D_R<$P)08&gK;jXB9`(Zw9B69nzNR;%zA)F9DrEOi!dIT#WXJ8TkIsO7}+=9Zut z=>n4MkpI^_#csMfqVR2;FEir8I$l35wM|=Mr{rv+Pr=bUKW`;s_cbuO|G*d8(<yVc z{e002g@Zde8TS{9%+xfcy!5I$wN%88mLfGXXmKtUr>c%ukkSs!GyzRYtaH{k$2F@{ zad8a~U!lODTWWiA&$7Auoh_h&BV@KjKU;<~BiwE0S!*#t;D$$gmu2|Ns$JaA`;-0V z>lJxR5we-5GF6AxO8+~J4f2S%s0^Q<Kqzsum9rO?GW>1tepKc(?uc;y;e7%N|9L_* zQ2s(goMyTc?(V!lZ4rNkA+^Nk?3Vj?^mW6cAke<(I|y_YURJ8`OkLN<kkNJ*>q-HP zeXE^{+ul8uOk3Kp{uJ!-E%bZh_l7+QIX+~Z2%o$WsYIry<&=b~oxY;}q0NVsVU!u{ zoNB){zQRYT+ahwmGd$%I`#t=Iqv{>&aD02E`dDel^R|)8OR4%7w0KY#qFPP#gnRkC zypVZCxbN#Wi!CbLc*|~0WJ=G~w9oe7w9>ph0Z&<EAt(F(3kAl&HLvJXF5@@b?jn0_ zJ#&m)eqi)|s>jZ#YAvTysk7gt%#Z+q2lK}(K-(umj{=aFiaBLY&DB0i`%l|TTmUnj z<ZT#0+XK4JB<@(D**7zoUGtNwnxM+~z#mcml^A13l)WCgG~AgH+?XbypI=AyfIo^S zf2w`aJ?+HIf(&MQyfWA+r`VA#NZ==J0Lev#@cRau;G=4Xr@ZWsj95Jf;_t>x&&tiB zJ!K*+kO~SM!rExif}X_sfjZt^=gikaaS%vwz2?cOUGfpXRevt**Br(9dt$(1BCH-9 z-tch6!-NJ;VExy68tc_`EM_$lg-eZnhI^K|pDsC?;c2wh1&Kr*NN0KD5B|`FFDo~# z8uxBD%b5I>am)<&sYY)f0qUZcyK5;(pO33&1c3AgfI4GsCc<6Q5HsD6d*9Dzu7r{# zZX99GEh>;E5v>&n?v+$EUBhwUe)te2>3cm-8{V{aMz+Vjjrw${P9=$)cSwtqV+sy| zyn<m>pmkC{>9n)2a3nf8yxBahGm<>ppC~GqzpTfb8h1@~(n0p?GgmVy;@KX-I!FE_ zg3OSMqI2aVb+eFeNiHeOD)Hw>ebwZ!U)qEHkF>Zcmk<^Hi$&B|;af6xPCI`~lsihK ze!iSLQrG=u0r~0ObDC_-oR_M#=|8#&A5rNYe&V57^K0tdRCxOgWEae|z{FTw<oi79 zT-(&iunIMbISalftAUS4TChYUTtRJwc3@OL*2ufiJJRs10Mt&{5RT-N=YA>cLr5Au zD*nib05BPvuQ0*Xs}<S+>Vv96ArU<v#T7a}gm&8jbZF+c7iN!(zxF<sY2(kTP8rR4 zab!sK^sB5J1q}hT<K)Aya}4#Rz4+9WXR3jNDV3qGE9p!Zc-71SQ(+A|28}x_;Vy%e z|GGM|Av^E&1G8HAG+A^lZ|6(!^3L<pC9%XSP$rL7mN3Ej7RnsnBOWe|JOpmOtiF=5 za?0hOptV&~;MoB~HWAGFqnqF9E;aJYmw`}}DUB+@!BWoRpd)K1_}{@DX}PSuIO4%` z<4<Mtz+_vc7HfJ|VsJJk<BC?5d4?cxA61PnBfTuz)xK3>5ah5!s+&!2BP6wBDx0R- zc4Q<-mTKQ%G1f25^+noytEY>45%D;r^c(&So5?0A-Rnvt!tE&~Js@~LPWAf%%A*s5 z4OKYEkYz~K;h!9KCHkQh&}F-<hG(Qmcj)KapCZmP`QQNFolt<tT`3mgn~5dD^sGE= zj`62sYa%7FDT$9S=vLz;*l}g6>eJ5RegNq|gGH^{V0g-fpcUQV;hvJR_H_-z5yjDp zWsiSU5sLC#8tQA_2R67^_l7f>N3SY##rXgbk{h0?zF_m4j*||0m3>3VP|`Exy3@k# zdx@OjhSk!BZbPm(wJj^46iH?|J~xxO_ZO5I#$3LMp)tF&q7c5l(Y8CYLyCvYgPRxu z$nKW%<2#qWD%&hmJB!+3^jAgg=V2kgbr2cja5&`^s72#x?`Vk6;U|+1%j1iMIM^Cx z!5n%^U(GtoTWXS@T5yeAY1;l>{;c|@w*joUCLuqbG<?B?b^!l_+7$=f<+)u0a1&z_ zOBp7D@8nbY8IIMYVhaJE*lw<zJsQAG2T5B1WwalzR6ma>DTL4m##<I!6(HpTyPae( zgc=E|x1SlEjP!)fm0{NR3llZl&lKeeEIHDq05XT_v=ObR_M_skMoOCcJR~pznx&1O z1esFlSyz$(H9awcN!mjR)?9bg<UUS%4k};amw!}C!wyu1UCK6bNzbfh{6<7M(wGL2 zOeWRWwbe}w{5CxBk>M7@9?5tDirTE)UlqFp_&vP?Ct}?;c5gtwhrS0NlmPdj5jXhG ztDMkqAq|zxyL#VJJqPm3(kEqbZ=&_U8mFKCkV_Kd%4YFdi3}$muF7&oPsisrb@&8u z#&EPXt=i5{QUBe<jUo|PERnwE>uN`>elkXZkq+BS0vYsF9Fu>1wnkMORoK+Ck`8y; zYE{U(+~(Exiu}pmLE<oR&J%p)?X;qDV34tXNBxux?zIV1yO%xpKUobFN1xqixr;Ar z#fn>=!D#XFx8C=9-gP(6KXM)L{%?V~&Kzw(5HnRQIt7Snh=Jxl1;p`%m;Yg1+ZjUR zRqX<Z?vW{YyXfc9s(#=50S1kk;L*~W(q?kxZ5x_$?mw94?Lhfiu$S;MMW+OQV($4# z(C4bgLWDHv1()9?t!I%c|4y;2%$fefo|jP;+9XEUTtrUhcUp${az?I=YBQ`WG0e?+ z<qJg`BDoom<JHENd>VaEcKp}H2JK<5^rC}+PufS1>k04ej=NpV{_y)>s7}*{eAJNu zBAm{nw^yEop4wcy+-{u0B^%Qw+qoFep*TB6{nW*HEc3euNbe${iQRGZ1t@atVc;K1 zPYA4lL25^S+xCY1);_#kl#Z1+{yDYO<P>61RD(O~Q<oc2g3J5h8FT?jkSTqCSlrgy zy=ePHXYO_pt77ws0ZZM){tX?}jd;fqccN1Hc+R#T)U{hn>O%s{X}pjmU2Li7VkYBg zpODxd{Cxlm+n>f{=4WNXx27?O-7mhbao%qZffz82zC?JF+eip7_<cx>c4Jn!Rh5#c ztK)9BU@iJuOBJ|nT_@y~!|xc7DV_uioW&T7m^}%;+giPnH1!1H$!{U>DFmsKq)&^h zERqN@){>-UiR<v~2}*U9Ge;aWpbdtt_3hLbZ3UQ5&wlg<%*mE|un(x`{On14n9Nn^ zlm(?htFOaJA-(g<Gu|$kBFRAG>0<yyZ;{!$qkVR}%eq^&b>2oGMtgc)Jt}s8jb8e5 zrcvrx_%h;-ce*~aJOtikak?nHRNn#DJkZ)SUpeW=(*9RA!x}ta9!9sGY&RAZ;m(lx z%_q>NEGRb%P=Hqf?fCXYe7_3!JosevRbbnOqkkp#rUGa&jInp$L8lKx{2E@^GaTGS z{z4GOMYat{?CX<8He7F<Bg6}}aSz=KSO6KE{e?Ro9tK`L5^8Id@@j8`Xo2sj5WOa? zE4~b7D47moHk((t4Bvu&C!)IN76v=?4<NNoYvc|852l=|LNmO#xF2SLg4dn1dOR=a z6KWKtQFV`W+STFlf8vbzNf|(C-3YovhONnAn|}K=WB6*%hvvH~&t?3wj4JI)n+|Z& zZK5+#V5N6}bNx?lBpC2sTw@#dCuvLX<;?}X?JWYGC7LUB)*<3IfkIfM^u`L8t02GX zi`*CNKMIe<FmrDNr$XX%=lb6gjJhq(Kd#fOm)3eVbT07{>AUWG`adv|#EgO-{S-SP zg8QB;a&R?AOEwfT6y8#7^<C5YjH%7Y@q2rVQ0f!wMAwHBH~qjGb+4$RRe9LX>`GLA zjhICik-`wE0%@H7>5=I#0KNSOw!tPImKGIh>~>p>?uO=}ACOZs5v2pTF)z}S!u#!a zt|Nv5vJ|1&bG92^6K@()ovOA<mEaN=TCRW7wL$2EkCu*YPj!UN2*f<8TWZYuZ7OmT z`y1!^boDJTgc$++#HnZh9(#_-FndXNj&j-@in1w^d!)Xl@=Lmc71~#}(WC#$bvAy^ ztF08a6mK_~<F``t|J*jr_||9lCocaz^k$^g{rEoDIF!_~1nuqPq<&>2KS$0SZ>%th z_R;NyEr>1juLIXYmF??8(5#ixTeyd<H!)#P@@bvK7b<8SjQ3o9o<SA*uCqZ!3}fDG zBaV1_P!d<(agcHFrZBEi%ywpcThu}7Fro+G*4J<i$D~I9*%&2%Vsceg&LQX_xh)zv z<}Rpu-`IDTLQh_iZ{J5<c4c6o1&pF}jSslUPgGUA3kC<;Py+^KMJ3GAAS*T*o)HW2 zHC8=*p#qG(reogzAZFC<xvRU?h@IyRq9?MSDx$v<hHw^~&{3J-fUUeXz1uep;!MQR zuPGCxS<n1}Xnv&3ML%Sz2_!Q{m|6i6LR~XQF@x`C_vQtESM;Bj*b{CKH|s84QGk;a z(Gn(xs2$nu`LJOVlW!A)msH>XT$+k>+QK&`?t`#@$s?ufO2>6C)e8F?zpV%+ZRw~Y zzT1)Wmvw{Y!)bB7bt=6_%^si^pilDN^Osm=!lES0CQ*V<xi7@2MY9AeDZSYBQWgd3 zx@=lkW-O!^!Q2;QS0<BC4=0veWWc%vru^s0j{=^iSJH~mCJPf($^8?ShuefiWq%m< zE&xUJ1pDL{JXC(tU7ws6lJEd|*Ja1HRi2=ol*+#po*8waG%Szfi0u_E+}#Eo>hikA z3%>B-xk<GHwur&E`};&CYbD;z-422FJYbxLjC;E;&Ll8oGhK&w)|#oc4br-ef|ZFq z5=4iamFPd5jbzam1aYn+_M+f``qzxh{4{r0HAHu{99^}iqanN)tM(2X3lz1w!GVnq zyo>*jU&t5j6R!pAwmfT?I(=~6iN3QHrqz+aL+O>JByLx7+DKx?>FP{45jY0>J5<wi z{M%c}!ugX=pa#FhIjY%Q`J>zN)$?G@C&5E;fegOPkVfQPl_SYpRd)o6SXULsvdJB^ zYfQS@hoCC~8$4scXR-=avq<UPP2dms(_YS?-HW2(Y>!xEq%FlWUhTwMo7Ko$c7?>e z&Xm`0s#T`;Q7bt~pKcF1^L>h~pj?NQdE|tMexBr*>j*Z?;HiCE+ib-S2yP+{a<aC% z0s3=EH3>bxVF|c6mD&5}DRzhf9Qij%4?y`i<&vPXM@Ft>0_4PdL|NEkh2=Y-7M2}q zB&3d4tOyY6z)@FCvFd!Nd9r(|g}XAyertjyyBUI90&)@jJx&;>RCTM5=1~jkrIYNJ z%<t~CEc(ox>ZH@Hc5gH6N<Z19R5P->WnyDmQ`sEV?i58^Y-@k$5X*ach4NYNpFN{f zK)0=;<C?Frpe*`q*fBi#anLu1dJblt=;B{rkz7K-*_dy3p(+M#Oe$HFV-ui2cYi#H zXOH*Zl^`0Zv;hn-D!an1HQm&hnVfTkeMoKPLdhDvivQxQ6}MlqwgVT@ll|>6$&F|+ z#1O8?2oZvsZk-`Uf*#zYu;1H%LF8Iq#Z3aU7fqQfEb<I=L1Ck*|9)lgf6&QI;Q9ak zBPX~BwyBoD5dmXwLW4^~<&t!9e5JbvUravS#d+R(yppP9@uq#(5nVsw!>o$XY6%ft zEcqcVV!e|uu;?4=;QIrRv7(%`+aY<n1;3&uqm0i3FUN#Fsir)!{;^t$EMc-*ww~<3 zwV*2(<ric1CqhhFgoy{CrD7I->vIvrw03Fz2NN%>mn+a{2k$G~RC9PTw#}rJdiUw< z)8I4A58&pBIMWR5?S+%nW!axGbUI>)tP8x}bPn6ZYiKgQ?pYsuWa+;n<!egar;U-5 zRSdAlf7K@<>3!Dg9;83akKH%eeJo94g20`B;Yt(SGw7T&jyEyX(~pyv(62c^p<WAX zRfe1m9*Ywj8sywi-!68`$r<M)+a9}IBt(;COPNr|6I=0_u4$6!-b&v9>t8Ypv8z~J z;MGW$?4yor_+c`@&_R1Km2q)abfbJF8FHL%J6Mw6#x;2P8FmZ!>3_}K<0@#;5pR_& zlZ2PmQF*PwqGsF+#;3oiVSO9Jf9@2hSG4=olba8N=i-by^?OiU$iEujp(tFo7QM9a zk+9+2o2iy<aTGG)<1z3YS=ZZGBk^@<A+2DSV7LajP%sQQAG{7W#AJO5=GV9WtU~FJ z>y3F;TWH_)B9{?DdBq}}_<6cbC3XIBC%PT~uxUk!8<eL;vBK*K_{AJ0!uDRBgna$r zdY>}SGeK*WGl_EuS?gv7rwwf3jp;sl^JdE*Yl#+Z=c3$8`p~o5I|<<R3uA4^IO%u2 zEv2i+E!*WruU~Kx$Q`pnXq__x*vl<VdcMZJP&MO9sl%U#*NZ4>a}mIQ@c4_5db+~@ zLKZ)UiW6EnjhScW#v+zVf2CBnVWW!7_s8{m;D>G4Fw1cCiAEQ3!08Cl-ifPmh~-1E zN)$(FuqgbI7~Wcbm+hcb*oVr9^$l94>DO7KY@|+C1d08dQ~4?VHWA&J-zxP(jO-UV z^n8k)Sromu7pL(-1fW(g)!XgM4GW50q_^O7+N57eEMr<djW5G(8t;KuC&SHM2i>|p z!#Z)h>IG|C1&;u_3AoOr^J=H!IO`Xhy!&}YIUDuFT+kS~YeNp7V!h4GCFb3`PcdF8 z(XxujdTr8~2zEp~Dl7el16`N9ysyXhJts_%c2HfwXusHc>`Rd_g>WZ8whg}Wvrqi} zQ@lNhlYXr-hV1?8?;2ntb=)D9ky*a@709}O_#R6wZuLfPd)0DGFDud`It7eH8V1>o zhucUl?&mlp1;NrC_UG1T!P~a@uG0V=QsM=zX<Ohw<R`=V{&COZsxs&s*(J>-Fns$T zX{_39193yMnR?lthB)#^L~1_%h1hEbeT-ET(PAl?vn_hkVWLm*QXVAb<D_FH>O5eA z+RLmfXiD6<u`v#{@)f*F1Kf>dqIZ}X`Ss{0PWpcQ=;ViK{{v2AeYCZq1LW}pQrbmj zB_(f!%oG4#<?boE<>GF*!WL+9_fsgK+e6Fh2KTGBqpxwI>?}uvOM6VoMbbe))(O+} z@z495!Z!lJ>%@OGZ(P%>fi@GD<x%R;4FruGyiv=U{PN7Ea=a~4W$0?ax;@Wir+W^c zlIc<^uvQcCd->x$5xFvXVPW*#l&_4Uv%zq*n(Af9Qt*H8v3;DnBneZ}=1Mj$88%|= zbuTV_<>+H|`v6NpyR@(F7s&n0_12f);a}R7fIaqzbQ>k^{<>%I@!4<o;sZ+uJn{QP zt=5AO;Pl>Xf-bsXCf*$na?HvJK2%(e!_H0#mYd5o7nTS-S4qkHu&XqBoX^=OCY=qv z@V<RE;_2~9C2sL+{7vsl6Puhc<IJ%c(c>wQ9OQqplW60aB%ZIVqlX-otbEoxx2-8< zMOs2cgF{}AqW@mtX0dKCW1&XjxPwxdlfkpTquKuP-33N#=_qRR5|pg=x5))pCu$lY z172LMHM3^?gMNSM)$e-0k<W79#yDyrD(Sk}RgNT9{Unh*4${3$_)E7w`CA=3#%#Px z_g1maC%9o5$nGvFj~wTIFmjsA$E?BR3*vU`!%kywH>*kQR~I;E0%tJoq?EVuQqZh3 z;KAW0M}7zEr4&YofVV1L8o8uS-T+&rX?vM6?jovXm%H~NJ~azI9N#-gb4K_|p23b~ zlb77*v@*_49ET8E=gZ<b+KhSxfJ$_0mEOxD-S{-TIiHaI3Oip+e!BCUn`hmxRUmtk z!qp`AoJG}IpAJ9jj{u%Omf^PxS<ZnI;-eeY+xGu$DKubDuS|!$fcZ0$z=IVCk?d%9 zf$6f*|A#C7a3*{D3N^@COynCx>=m)j6vdJMy%gZB5rLfnlV$~)hu`g=B%|8MInf8Z z<S#5r3)<m6ZXQsrnUF^P4zOsU*L#EUG?L6=a`!>f2QoFiI)KT1HX>>og!kK@mpl(4 zu(w@4t}PVD5{_=Yi2jzo*ZuZCubSH<0SvBA`9+r39SXW0ayy0AR{7S3+AjiYr2qSO zO4ok|ntGQ8usSC|vcA$QY>kA|CuHqgW)3Fm3I0(3;L)Yf@PJ>_#*k-(r!$R3gt=$1 z(xZ<1e#?Rs#aO+$GsFXo&a#4(Z?oIRzhGP>9w%+HK^k8Fe*D92GMa*N$BRdC*S$Uh z2VI31W)9{)ABrAQ+ST)8=PlKuxaLbwpZ9?@n!P(P6-$7-3+QKL9`t?@y42(Hr!!*x z+M!O7Q`WH~gd`#NU~e+=8swvv%ACO3m&1~1ZZch`VUDK|-5~Id`lpKpiHWDC>3+v= z1Ajn3;ZG+xW!MaVk}lg6)Ut@8*uSuuvCZ~yH42XV8o!iX^Dg#Z=>0n1qSCt$i8k&( zGWq^oDscX1Y0{Ubgxl;-b-X$~4I^Z-@7$tDhn-_Oo(VE{1DspEJ7n3vsYrVh@Lb{O z=YlhAK&LhEL>gfZKgnHhd9F+=zPo4Z4e%F6!tRW=ce$>OZs$ZBYw>Qw4=8S<<rW_g zpSa()*b$am-$yQB#V!qr|AQTJHZw|9ENtwvb=3{E6^=~F_xD|~iluw!KagGAPZU~+ zH$;0e&f#h|NgPlfv&kQ=*wXLa+hK2$Z|nVLe)pD><o+~h@u<kI#m=jWseTps4SHDp ztKz}S=>GP9_F-iNm!kl|+k)xut6rVG`%2PNiwqlAcjb+@m_ff#M5G`<!4;sU<+<=c z`T_EPtl?$+lQ@-`SNaVywbB$%)6xrpI|<0TiLM`t{|nTUA3THAox$x7QiKQi<i+(e z7e+YWA8NsLcCP5WYUp^kTGM!FY$aSjv2DAfW|efB*z;VJUge#s()OcG+M2$<fpJC# ze;M%4bTgP^Ob9fdIN2!S3RFCJi23nPlodPI@qs|ezF?GLWXv%pWKRILa;sPh)JqTz zIjw#cyg4+zk{iLXGLcv-J+CozLt4e0{wOIfoNW=rDE4NH50sl1E0hL}q$KbNB4>@e zY9&p=*0p;B=%j(4?j_~YD2TSc&J91wi{Bc@HR%`aiGU+%w~<cHO+BmjqUaEQig5~~ zex|VyDgB4|7qXlg@tAp1E5{#Ip*im^WjJpJ$;zB2oJZ-e!5nV?luA0082%5N^UN6E zC2YiEtzi*qB;a|TBRa`HkL#6>kCo`L2{?b1x5<ussf3z;B)ma_L_Cz8yC_fEzsBqA zx>NRU*(0(!{)TzCk{#-q-a6(F=DGtPMUpau%VAEpR>SO%F2M{G(g11$0)D8l>DRcd z*i`o4&+DCj&5;vz10_?@3^-(I{$)|j%%AhD?dI<OEbV}Wi=U=md#Apk7?C!;V*~m; zW37~XwWs2IlommF-OlUt9S$be3r%<UeZb)<WJXJo?i_vTvg=doQUxaSc=rtfYxS52 zX7-N~tdA=OTt!soFwry}KZEa~$szrz5HVeFJyvTG7X{qEvg!ISt#YVh!bAz4Q!CvU zo*(dordRq|I@C>28T+5){>mx*#e_n~uwdh<fGoYDbJ@FItsnlK8)JRA&LiBML5m&t zbZ-0m^{qhky6$Zm1LiTJed<e3N=vE=H`%`R74Z_SK0Nw6_%WBgj`N{2ISpyj_<xNa zZ7hh2F&)qC0a)xe+>`CNJ>oOcO)J1Y)2pj*Aw4CrU`~yq6BNC2gIAiFT$f-iK0|d` zW`*(vxF0f2N%@$opk#8fwLuhYsh$|>Xuw?iP#x;%l}<T9_&q8|U+DT)LAa<4s(gz} z^+VTFQQhN5&idW|)caW_Bqe~R4`a?`3Dtc$jX0I!-5n|^$w+z$6||0wO}s`}relxI zukAw7U1DXqCy8UVPFIwp^>CC_EVGz~2|#~ub+TH*JEvV*QRe2$8RHnbbohI+j}fV* zUlFe&Hl(oAQXXwYg0FK65YB`H{$uN7^HAiT;_+y-??M-BXl&Dem*gpx6u+&RzWMj^ z@tAadDIZVI32vdfTm2O~Fn4=+jx`tJz^T03yz!2Z=@w|5mKzdJb_AZ^f54zipnT)0 zpP2vExCxKf0%4T`g;%~V{Hi9OK`iP&{C{|MIgb0IcGtF=kz&%U!R*T<7OnytjXBiK z2es0i0F><PV#3jP<0k@FEIMsTuiCW{9?*qyzU3U^4P~7`NaR?%vD;eq4)J}s?U0io z>JLmt;dgO=yCLNE@gt<T^Ztc)x5iR~1OkZc(UhPr`hd;nYH|#7@#UT4x4ckPX55Hc zw_9z(jwk+|f6s9QQ0O3GgJi8?Nf@oq-`|c{q0f~1h>a812${3Y%CA{cv}%WU3WS0> z>C$!Qajz>8QVkErZfy+*Km8qo#svmrm*aTFO)|6D<^PD>!79FFWL%2GJ@>2*eKwRj zjpg&gyF4>iT?wy#!ok-8+jh_{#ql6UXp^M4oFHn4!vB030oBi%mvXBl10FNkyP?1I zm-<O#P-HN@91&3tJUXAyM+M#;FU__+vZ-Fpq&5{D&=vvY^PXzvh6!u!EZY+xIfMU8 z`3kXeg$D%G@D*z8WbmZ$eU44=aO`2FZC^G_DJ8wIrmb<_Vw^aIrzjse!K%s~vRP?2 z6JujNXdjXV>*eyS`b_?|UgDzKv+AEyC(5Dg10BZj5<I0QB+#r;Xj{p~VWbk?`SwNR zyyx+D_>?F|>=^5u_Q`=}orMVSZoH0>TjsQN{-Y@+iW9npwBsd+1wS!{lQZ3hU`hz= z<g-!7;BmTS$m)&ToB|I}`R8F5GtgZ$$3)SRfpfyu_~4acgTwC%SCT@Cf)wF*a}Oua zQ8?#DWJCJ}=o-+UX3W>sJ3&=l-gGW;Gl`cuAMI`#c*PkhW~b8r=6N=$Ms(dfz6b*; zI`QVNm4w$Lq9FCsQ0BmR29tg>w*^*t+`Rjc7P1sfr~V@v=MLE(73qJn*Qe%`jg*|j zH-jnmP4FQ&n6}$n-#5-&*SrESU?_<0Ut0dM-##8O^y<KO#u6a{r1P+EMbB;WFWb=q zLI8EI40oP_Lp)DPD*q3kCIjL?EFERD%v<EK_gptqJ@tgAshuh=PqF7LCA(Z@3dfRQ zYNwDMzAM8gp?9NnwCXT}aWAEirbL}Y9r+(oIu_`Ui6$WAsJ`+(=U4nf#NhdvM&{rE zM`EC-PM)sx`ec>#hf@kiFKp4;{0&QIp;R;0X<C>S9V)VoJyAvKkR$Bn_1J9Ug0|q^ zAmn3Q^)XtU$B)MC%)F0*-NCARGtUeFR@Vr$r``%@c->!|R-LZ6=ph}|vhV{ro4EaM zs5W(H^1rzqx2R}n)<(3`RwY13Wu$bZeHAqOJ8Hd71?}<zt?!Q5=ilN39`n@+HP#+Z zZ?${=FO<;NUXC-ms~>LrndQ{FR+8-DV&=-@_&&KAd>Sx^gE+c;P@0K#rAchj82Qwn zQ;%;yhSy;Jtt`RzX$?xFiNbFMqmW(N;5tCThO=b%T|=_e76yS<<Q=H<*I)npwEu_u zYDw7qhn=4~W#e_8$&6a&QT9PJVhHB6^$qEP=<n=yTQHciJH8*4yi&VOvCDOco5I2x z_s%l2Sk8PrpN9J9D)Vi+ONH<;9d%FNAayHoJ9?P{X08ml9;~#UsE5T-%j3=8)Mx9Z z&eVB?rNW0X+Ems#MPw1C>oY@}cPT|ZfAf%YvPiv9BFb39Xibm<r^50XGjFEa!}~ao zz478VQ8vF{nYi!K?6?OLh{c<^nF5TK3QQv6d2f7saG}1288JsBZ_$2rpydr@=KkT$ z$7)LaJs*fgj8U2IS`hM=fqTQN!n{%6u8c#9w2wFq=hT}H3onPZ1FSyhhFc0825XC& zE*^*RlE_;)Hsk49k*~Irpxc5$EzBpzn|?e_u*X@^Y8p?wY)`ifbq7A${KB`Kz{j&K zYC_%*c_N6fd~g%{>j#3&ztMj@D5jh7-~1!jRbPDr^XR$uvbM1tLSp9cvqQk(d&u<Z zV)mJXJwbcBm!9S>dD3FY`>Z4K+J38odR_@Sp?K^rV>*FDVd?6YoZDfEq-?bZm?#D$ zE1a7jX}(<4ci7PLrN?x}LxO~H9U1U@13s{=wY&zXY#fSNZ@%GjcvPv@@_Vx=C=-4* zvE!=L#O0B9*12!7Ju@1Upa-cZBD>NFEd7aRf3+OrenasTKRdw8=q|jF(~Kte%Xnzh zkEK=2XN4zS{!+V+#9K6h?eT6;fy7xVzr<5+z84~mwDZiNGZYD_-R;}&@sZ>Ybkk3B zc91@hPFmzk1DbjvU)!jcdukG5C&?+o;A7RZ(q@*>m5prb2fiy6W9XG+--Tn+5mp=( zK36IO2w0qvr#&_jLB+|wnq1t$#7t1clnu;<-uj5ZL^=a&!s}T6{24@Ov7KEysc%-C zNLz?&ctmVfW6E?VO7!#9CWPGTQ5nj>9`86zxJ!0Wt6<G`GCkrXym#PX><hQ7aCllk zTe@Bu>!J|s(RUf<-*(5F*xT#6Xiptz0iX{tlDiQUD0HLnR6lE?VN80H@Kx|dK@STd zHw_dfJm(o|0i|T8ghILPREPW0W5v;Ot&XxiE9#`i$m`0M*7UtWppc}v@K(u<P=Wmt z{Ti#7m+YRTQcBG9C#NB|%Y{WQ5Q2M~BK~(?1b?wsM+>gJK&7j)S?Sq`_t3wdE-X&^ zj?opx0{d&yRva7w#^>qZxnrwW{;TOo(}vZvzDb|FFZmk^m^iLoump!4jrIe(*r7|m z<Gr-Rgb5ElrY{XacU7J&9FlJil0Ys=0YQa$F#B%-{E{R-{?3|4!hee&n|UWesP{iq zdSMt^*VuNz36)?aGg&OkQ4L$4zkT=aohB<ozO<tiy|<O6oL20OZ#y*!j`046`@VX8 zcJypqn*EWBd7EH6O8>$J!wp=R?0#)5Z3TQGDU+OS=oD#q#rsMx;Om37el*X6<|O7Y z<`5A_93n(~g?V;<LBDR20TvN+7GWx9nV$|6@wg4okifsxOLC*l_|y>lwQBn#1o~)< z#9qWrT8{ek(bwu8OH=iO^`AzOc2SZYU(T&B<O7|!m+~I=5hcr2HRsMBG^>?^-*6+B za(2I|ervIfqn4NXcY3|Sev{g+uBFFw0d41n?8XUku`o{t*Cgo0|Nl;V_NDWbx7Pg? zU1i%=Jj<n@8aOlW8&*U%wf7vsuW-BFyCGx!P~w6k)t(smHICIz(W!;~!)JRNSUsq9 z{Z{@+Lq~T=Kx@y3unS;RXLwTiJ{wJ7=0F6oID$ZywBrRK$tx49CHhtc7nrs%8*3M1 zSf`zq1SPp-K7%tz$l8pc^y-tl2NZC<tE|-XRsrUtoJ3}6b|FmKa@<+?LZ86T*5zOc z<@Ew68oYnJQg(V2MZg|W4W=`ug6Q`I%EEShW;`f=L26D<KMKIr5epzO6K~Cqrg-(m z%>ChOodrv=R8Fk}6AB9>2@oy@#QF$$W3hyrTebnF<DeI8gT*g6?yCA;&vkruaqi-v zSfH#V=ZCN{!N+BI=h*Y&Y3XJX?2Fe9Yhm|38pmnF`J+Ync7N*q0L<vVxEDxJfQF;V zQD>j_hWx!VP7`v}pJy@5&~4^~k8p$pKmD_DTH%Rsa}aoDDA*Q3aSxoS`K!J!v7tbH z_Uh=K3vXs{!HG1+Jx6I);a*;xIT30)xk3|F@5U8FSx)JqP)i{Q@w`92blsY~riIe4 z@4lmNz@1ckx@kLRhWat5tzjP0&x-^5x-+SFkyAy<=ej{8&GwFzi8SnS2yb|1D{$_g z%DG_7YtE11_rMk9yUCGvU^VB2qKheZ?cc!3Dq{oi_`F>dC^CPXL*wHl0B)8>3YT`o z)$XJk!ygSCIATLjhs->LOI}W>Jlhj{pWM6hbeg29bwqAw&4%-r1qUkQeZ3b=j!u=p z%#pI*M1<~6h*6tilDK!2xAG3L>4J9oyQxWYv+dEblQLiab;0B%BcGi3;wra`vatu> zm>u7pq<;!GpYd9aO2V({Vv^MbT6^-e(#hXL!ADZvL<yWCKW3oT=#l@XUmG4KVy*f% zZ1i|Ub53a5bR&oMHhN5VSsgFYu;hH@9$F2PO&-jAZqlw|A+9iVjb-vFRB$o>|6D}I zHFI8y<(6ilx!-#*H9xh}6*Ez-B413omA_STad3QRsVc<iwBb<DggheiCDGwdvo%tw z)s*ZC;m$GV?a-x^RX<^A^}f~LN&BLycg7yQ34)b9S`Y?{opEd$5>|U(H2*h$=>4$% zH-p^<I0^t)?p0(BQ9N}!RxNL$*uYcKG9YW`Z<9AEN3RRek}Xhp8TRub^&|R+-XISr zd2QnUQ+28J*~TBSQ^i+yZE)GSffm${ZJz(N<!8=2Fb=Ga)|K`x!{fG2`e0BS4p~6- zKoEbV@ryLnx0o}QZL&W&jjvTy_b8oZnE>a9f?M~UUByhA;<w{}kMC^G(S^d6Qne2F zHRW3S{vKZdk9$dWf}*;#Z#Cw^X6>nJaDwWSOWrGz`<r0Sj%B(uW-d2QW!d|nw>{*C zn^DH2(&p2M!O3U6htBU*P)~nF8y|35QfMcM2=F?)X53xlEYoWys;opE20!0vHg*A_ z8-wM(md|S^<^yK*5Q}!f@2TRA<(Zu2Fr!M!Yl*_3@bh2-Sm&R6nk!!tN=5hnHBzah zOxVvufz&k_XocfQ)bi3n9mb8lW2bO+(5LOSKu@<`lK0^`6UszEyR0G10z^M*H*W0^ z)aSnFt}~n)DcZd`7&c)fTc#sC{NV$EugD^UIvUrVz4_VV98khSZ7_6E-46xc4XqRg z-t5j_=Q^oSAC>SgHou3B%N&WvWA$5f6eQ(0E-dpM-`4Tv&#>I*X8htVSq|)xl;fZB zfm?ob)3jQIsmiJ}h^PiA3+O9boYKm9gs==eqMkeBqW0yaC#=vWu7wwM-c3VPB99Ox z=@)2N(SGGRMCFOk@9R*sSoiCVQuwi(XaZF$tycP}O6Uu7&C1{<&MN$4<qVZN8|qV_ zir?<|<Of5aIu-7<$pC0pjj>)A%>yd<JlJzijH8dUY)Gu;2Z{B{-kU|aTRrZTo0ur6 ztp1^)Z{zAWpBgO*6MdE6wDnXD!R!gu^u|rAAdkW4kVew(Kl`8>Y)b4w>5$@O1NaUt zAnVHlhU}Uf3VE);!*k;wR>xKJ=r${iP@&_zLXv{6-pdqj&5kY}jvB2f7-#pi*BLcf zP};FSn6TY*EI5-Im=<LNS^5(B)0Xy~5^29ss+V8X)z0J!QX^zSCeg;ljt`(LQ`SFT zzMT4(*>XC!53+W6U%yQqnQ@84S3T{^zMmF;X*p+2))R@sH7RjP5xJq1iaC-~wG%c; zf+k(`+%PmDa)ZSZ8CtC)TDr*Ry=x0Mt9+qCEvv+TLKJ2;o%E7PlzF3WsvUCHMxkqU zE(GZ06zyL2ya4Mne|QFTOopKhRC-%K$E;qIE^+sN_c_Z{Y=6g!qEq9wdV~CB%|S;( zs{3Nf6umq!1NggYCnfK>p`<ldwBp}$gE@BijxX_U`@0-3FGDSk3dR+{1DN37gr;Hx zRLOe>CJPQG1UZeZCifJYUzxEYbwWI?4d1tn-`Q3*#Fuhj;<Y$()wl(?I&FRRN#f#B zl!$}c`Af=@qAU`sfh(Zrr$M#l#+Tr3ciJ(y9|`s%`W{aUzLc{|tZy}lLWdqfgQX}a z?4GEA8ZUUGiY!CdaAO*E77V2x_6~I=&Q+-Y&f?ik{&IWb@~wH?5P)NE@vns>_Z=Z# zB_FZVqOg(2`KNHWAY*)L|4q4kHTg*qz8h`x>GIPo-zgI9^G!qdx8GFH-ao9MEGD{) z!fRFgz*tcb#3!#}H$8GVz~papG+tV3Bp}UyB2dd<p~8UTj{Uj`jN>d8d$|c@(`;b{ z$q7sT0yjVBo{WWC)=;l^kg7b*j9O$qs~;<6gQ^r7E~?I*s24kNDpP=jRoBg@>jBYM z!*kq-MoB8u=D**7$1iV>y7{S!CgX4NahJ?*!(QhUs)-)l@iLmN(APAi)=TkPMjpOA z43_GG(<S6|RfHVQr0;oI`1ICZv@ohY5==ZNAd#|GA5Pc=-nR7Gi~|IEY@Z*gp>8vT zbB8#&lJWj0Swm3ZJuobizwT>Em7v#Ax_+&cV0*s|-|M4Hfno%2c~v&p<6c*jqliF= z38YUzEvtLaoB_~i@O)=1Vx8>azK=Ok7*tX_dCX)>GqS4!N80C2IRB|1k?)SRYd()< zvnQYf2K@%QLXS8HNh}Cuwo!O2ZtE8k|1!GT(6Hv#oOK;*>s2^Kwkjxtb2;x!qRjBy z;99-?z6c@1q4L!al4%+eYQ^_EmCDxHt&`PmjBP}46YL%QQX?fPJLRf&T|qvvy<7wt z<PrHDJ>aBe;;813e8rm2lAbcrc#plK>ljNGba}+zc<YiUL0?>ZU%(i;b${YKcq<^i zd_@zoX+QIB6L=l=WI-p%o`i{85pyzMs8g}%vV~9K&e~#q;S<$O>hFM`xTasIvtGzx zJ&N{)sa&Mlc`Lu5X2$j&NrI@({4(k{x<9d2sPY0x%Pj&Irz#1UsD|;gsJ79;b+)U3 z5yIfnwS@8M9a%%PI`5&tbXF7ArOtobW@m`hB~K4xP5e&tEr<kPEqWku?3vG&GqeR> zJIBHuMVPcqJ;zC4+o$Qq*oep~e*RS;VwxC>zYJJ@486JNpPzR)vfo<b5xp8?o1sSX zU@^}xdl|fc_FnpDy^MvK=s)HGs)ozS5w?Z%#DhBl`?7l9hHJpB#qA^3sp<MPhGGMF z%eIFyc}1fh{?O4(j@_#g+hAHIPI}6S>51*qk@3yGVCPq(B?3oJ?{aod_#KwU_5SHp zb(Tz9;jHap4G>uw-9J5?l0nTb0;!(T^&HZdgABw1uF_iC&_C(&?GG7KfncZk3*mkO zS~1q)J*+qxNMix1M{f`?8n~XGs?-`1%!sRIsPkitqRQ6xGK)^@Q3g(mf#)^06IGUP z!vDVjMFYD0iviyk#Q2*I=7VZD^~U7~VnM{fht|jgAukd%ne^Ut8&I=HDSS~U4cqd! zbJ$yfuyA5;Lt)L7_?*uaZ;0WId#+9JuQ)okG}LgAKk0oi^S}&yTxiG%YC!`5XT#Ha zBpVm#sd2$2NDF3qm<P=b;#)4kH|plOXbtAQ>5zNY<DK1y9=Vwul%Re=DnhntgES=E zeSnY`Viw+-4Cf#T7#IuBvl)a3e1e-bk_&A^gM1ys>LBsV&jx}A268S2lx%to=HNAg zx?mHB-E2JQsQwa5>w)$$U@;IRjuXEzoWr7iLjcdY7Ww;(g%GBky#|uM=jyp2|6=Zd zf65o~sp@(72X{sTxJdOm$WC%__M$*?G+<&|5n_KGSmO}I9Rdx7FIK{pn2E#8k9qKd z*jLYOu_nlqxK;01qdLD>xX4ejiSP6ed#DN83V#-u2j^q96O$IK;sw6IXAF4Qd+nXi z2G)$v{j>Q9T+XSePZb0Ft)@->{+&<l3$ibW%Dy0$Z(opq_6yJVAl9e>XoXO4(QB}2 zZ+KChxUVo125`wm13cte46F}`a~VsQVp;=bXzYvwgAI!F^iR0VM}0>vfX{4HRXdMo zewL5sr#@H@%U%26=Y_t&avoMUu-E#d#Qp4z_K)hJc$Gh&ojc_%IpUe}WQ?Ewh3Ail zKlqcE#V{v@VniLNunF63EVH5C2#6^OQ0%EsLnj3-acuY(zT`(b%V#zu={a7-x5nGD zkwydm`s)o}_yVuO=KAD;PxaF}!98=T_=$Zb5-;v;Dfll4;$yym5&D{s=40o!8;9fZ zc>IOmzScz@yRj6eB)%nE{zc*K=gH!kpYU1wk<DTu0fP#L15?<Os9w)!h{iu#ye@Nr z6<6v#MC_7&Lsu;**%ZH3wSOSXywP6$lta>=ICtTC**>&qUyvdnjlVC*LZ`!-Y<@@< z#Ge2B#LLI_Z;~Is<EbtRRFb!#W#E<64Rowzt9OMD6>tN8s}a{J-!tCi-!W4Dr{!e) z3--tHDxcL|b$?NLBQVaX2g=8v^m%Wy-~Oz^hZbai_Gf?i*%xGg_Gjbye}C}>k8gPA Qa{vGU07*qoM6N<$g8VK-i2wiq literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/icon_menu_unload.png b/app/src/main/res/mipmap-xhdpi/icon_menu_unload.png new file mode 100644 index 0000000000000000000000000000000000000000..e5804d4fa67b141230a4d6c9b925e22ab21ad12f GIT binary patch literal 22781 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/icon_right.png b/app/src/main/res/mipmap-xhdpi/icon_right.png new file mode 100644 index 0000000000000000000000000000000000000000..b83788546781015710d83b89ac1461d2a1dcf8a3 GIT binary patch literal 2149 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 b9|8Xd{LbvF2nYrH00000NkvXXu0mjf_^cJT literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..28d4b77f9f036a47549d47db79c16788749dca10 GIT binary patch literal 2884 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..9287f5083623b375139afb391af71cc533a7dd37 GIT binary patch literal 5914 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�(p-{x$&=IACIfoAR<Nvvu>!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@<pC<8PLRXJuvO4y>xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5<Pf8lV3fF#Ppu>Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@<t56P}GC(ea zcuDo~%vU?vTqAIp#flPNMI2`5;t8&98^HQwmsAsoPNK_fx^Bggb1WVe*N(RqH8#4x zCQN_rN*!W39u4A)O3%B(eX4-oO~1PlFj1j%A~@Wj>9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`<bqO>pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0x<PZ)*(STjdw~o@Rw-Or2Ax?U!if0^R7qyS!JDYN`R9pBUrvi5{Lgqu za0I&Zd*A54UPC}|lJz-2f!1VYM+A-ElFU{V`W)8LtCk5Mx|)Il)$QH*gA63%JZFt} zGq@eFEWXJ~R>Ps?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeN<ek%udeE*tim(T?PyxRjZ^lIknLzS6Fbvpe_110000002i;2E&u=k literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..aa7d6427e6fa1074b79ccd52ef67ac15c5637e85 GIT binary patch literal 3844 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 G0001O&w8c+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..9126ae37cbc3587421d6889eadd1d91fbf1994d4 GIT binary patch literal 7778 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/raw/error.mp3 b/app/src/main/res/raw/error.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ebe720e96ce6f6b65498583e34fe7bb9fd964291 GIT binary patch literal 31533 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 Fe*oT^d};sy literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..4e93138 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ +<resources xmlns:tools="http://schemas.android.com/tools"> + <!-- Base application theme. --> + <style name="Base.Theme.Astrak" parent="Theme.Material3.DayNight.NoActionBar"> + <!-- Customize your dark theme here. --> + <!-- <item name="colorPrimary">@color/my_dark_primary</item> --> + </style> +</resources> \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..34bcf89 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <color name="black">#FF000000</color> + <color name="white">#FFFFFFFF</color> + <color name="blue">#387BE7</color> + <color name="empty_color">#F2F3F5</color> +</resources> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..bfe27fb --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ +<resources> + <string name="app_name">AS-TRAK-2</string> + <!-- TODO: Remove or change this placeholder text --> + <string name="hello_blank_fragment">Hello blank fragment</string> +</resources> \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..7f42339 --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,53 @@ +<resources xmlns:tools="http://schemas.android.com/tools"> + <!-- Base application theme. --> + <style name="Base.Theme.Astrak" parent="Theme.Material3.DayNight.NoActionBar"> + <!-- Customize your light theme here. --> + <item name="colorPrimary">@color/blue</item> + <item name="android:windowBackground">#F2F3F5</item> + </style> + + <style name="Theme.Astrak" parent="Base.Theme.Astrak" /> + <style name="TabRadioButton"> + <item name="android:layout_width">0dp</item> + <item name="android:letterSpacing">0.2</item> + <item name="android:layout_weight">1</item> + <item name="android:layout_height">match_parent</item> + <item name="android:gravity">center</item> + <item name="android:button">@null</item> + <item name="android:drawablePadding">2dp</item> + <item name="android:textColor">#000000</item> + <item name="android:textSize">20sp</item> + <!-- <item name="android:drawablePadding">5dp</item> --> + </style> + <style name="text_info"> + <item name="android:textSize">18sp</item> + <item name="android:gravity">center</item> + <item name="android:textColor">@color/black</item> + <item name="android:background">@drawable/select_bg</item> + </style> + <style name="text_title"> + <item name="android:textSize">18sp</item> + <item name="android:gravity">center</item> + <item name="android:textColor">@color/black</item> + </style> + <style name="dialog_style" parent="@android:style/Theme.Dialog"> + <!-- 边框 --> + <item name="android:windowFrame">@null</item> + <!-- 是否浮现在activity之上 --> + <item name="android:windowIsFloating">true</item> + <!-- 半透明 --> + <item name="android:windowIsTranslucent">true</item> + <!-- 无标题 --> + <item name="android:windowNoTitle">true</item> + <item name="android:background">@android:color/transparent</item> + <!-- 背景透明 --> + <item name="android:windowBackground">@android:color/transparent</item> + <!-- 模糊 --> + <item name="android:backgroundDimEnabled">true</item> + <!-- 遮罩层 --> + <item name="android:backgroundDimAmount">0.5</item> + + <!--对话框动画--> +<!-- <item name="android:windowAnimationStyle">@style/dialog_anim_bottom2top</item>--> + </style> +</resources> \ No newline at end of file diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..fa0f996 --- /dev/null +++ b/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + Sample backup rules file; uncomment and customize as necessary. + See https://developer.android.com/guide/topics/data/autobackup + for details. + Note: This file is ignored for devices older that API 31 + See https://developer.android.com/about/versions/12/backup-restore +--> +<full-backup-content> + <!-- + <include domain="sharedpref" path="."/> + <exclude domain="sharedpref" path="device.xml"/> +--> +</full-backup-content> \ No newline at end of file diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + Sample data extraction rules file; uncomment and customize as necessary. + See https://developer.android.com/about/versions/12/backup-restore#xml-changes + for details. +--> +<data-extraction-rules> + <cloud-backup> + <!-- TODO: Use <include> and <exclude> to control what is backed up. + <include .../> + <exclude .../> + --> + </cloud-backup> + <!-- + <device-transfer> + <include .../> + <exclude .../> + </device-transfer> + --> +</data-extraction-rules> \ No newline at end of file diff --git a/app/src/test/java/com/example/as_trak/ExampleUnitTest.java b/app/src/test/java/com/example/as_trak/ExampleUnitTest.java new file mode 100644 index 0000000..8924c99 --- /dev/null +++ b/app/src/test/java/com/example/as_trak/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.example.as_trak; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..16f2923 --- /dev/null +++ b/build.gradle @@ -0,0 +1,4 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { +id 'com.android.application' version '8.1.2' apply false +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..3e927b1 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ed6c31e --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Feb 10 09:30:13 CST 2025 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..a0bb124 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,31 @@ +pluginManagement { + repositories { + maven{url"https://jitpack.io"} + maven{url'https://maven.aliyun.com/repository/releases'} + maven{url'https://maven.aliyun.com/repository/jcenter'} + maven{url'https://maven.aliyun.com/repository/google'} + maven{url'https://maven.aliyun.com/repository/central'} + maven{url'https://maven.aliyun.com/repository/gradle-plugin'} + maven{url'https://maven.aliyun.com/repository/public'} + google() + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + maven{url"https://jitpack.io"} + maven{url'https://maven.aliyun.com/repository/releases'} + maven{url'https://maven.aliyun.com/repository/jcenter'} + maven{url'https://maven.aliyun.com/repository/google'} + maven{url'https://maven.aliyun.com/repository/central'} + maven{url'https://maven.aliyun.com/repository/gradle-plugin'} + maven{url'https://maven.aliyun.com/repository/public'} + google() + mavenCentral() + } +} + +rootProject.name = "as-trak" +include ':app'