第一次提交

This commit is contained in:
jjLv 2025-07-25 16:00:59 +08:00
parent 8c41eebcdc
commit 5dbdc6786e
92 changed files with 2609 additions and 0 deletions

View File

@ -0,0 +1,44 @@
/*
* Copyright (C) 2025 xuexiangjys(xuexiangjys@163.com)
*
* 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
*
* http://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.
*
*/
package com.bonus.canteen;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.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.bonus.canteen", appContext.getPackageName());
}
}

View File

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.easydarwin.easypusher">
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 用于访问wifi网络信息wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 这个权限用于获取wifi的获取权限wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读取权限用户写入离线定位数据 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<!-- 授予录音权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera"
android:required="true"/>
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<!-- 开机自启的权限-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_READ" />
<uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_WRITE" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<!-- SD卡读取权限用户写入离线定位数据-->
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<!--9.0后前台服务需要申请权限-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.SEND_SMS"
tools:ignore="PermissionImpliesUnsupportedChromeOsHardware" />
<uses-permission android:name="android.permission.RECEIVE_SMS"
tools:ignore="PermissionImpliesUnsupportedChromeOsHardware" />
<!--进程杀死-->
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<application
android:name="com.bonus.canteen.SmartCanteenApp"
android:allowBackup="false"
android:icon="@drawable/ic_login_logo"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:requestLegacyExternalStorage="true"
android:roundIcon="@drawable/ic_login_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="DiscouragedApi,LockedOrientationActivity"
tools:replace="android:allowBackup">
<activity
android:name="com.bonus.canteen.activity.SplashActivity"
android:configChanges="keyboardHidden|keyboard"
android:theme="@style/AppTheme.Launch.App"
android:windowSoftInputMode="adjustPan|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 当前使用的activity-->
<activity
android:name="com.bonus.canteen.activity.LoginActivity"
android:configChanges="keyboardHidden|keyboard"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.bonus.canteen.activity.SampleRetentionRecordDetailsActivity"
android:configChanges="keyboardHidden|keyboard"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.bonus.canteen.activity.SampleRetentionRecordActivity"
android:configChanges="keyboardHidden|keyboard"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.bonus.canteen.activity.ParamSettingsActivity"
android:configChanges="keyboardHidden|keyboard"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.bonus.canteen.activity.MainActivity"
android:configChanges="keyboardHidden|keyboard"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- Webview拦截提示弹窗-->
<activity
android:name="com.bonus.canteen.core.webview.WebViewInterceptDialog"
android:screenOrientation="landscape"
android:theme="@style/DialogTheme" />
<!-- applink的中转页面 -->
<activity
android:name="com.bonus.canteen.core.XPageTransferActivity"
android:configChanges="keyboardHidden|keyboard"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!--屏幕自适应设计图-->
<meta-data
android:name="design_width_in_dp"
android:value="1440" />
<meta-data
android:name="design_height_in_dp"
android:value="800" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.bonus.face.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<service android:name="org.eclipse.paho.android.service.MqttService" />
<!-- 开机自启广播-->
<receiver android:name="com.bonus.canteen.receiver.BootReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter android:priority="1005">
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="org.easydarwin.easypusher.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
</application>
</manifest>

View File

@ -0,0 +1,107 @@
软件许可及服务协议
【重要须知】
 
【XXXX有限公司】如下简称“####”)在此特别提醒用户认真阅读、充分理解本《软件许可及服务协议》(下称“本协议”)。用户应认真阅读、充分理解本协议中各条款,特别涉及免除或者限制####责任、争议解决和法律适用的条款。免除或者限制责任的条款将以粗体标识,您需要重点阅读。请您审慎阅读并选择接受或不接受本协议(未成年人应在法定监护人陪同下阅读)。您的下载、安装、使用本软件以及账号获取和登录等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。
 
####有权修订本协议,更新后的协议条款将公布于官网或软件,自公布之日起生效。用户可重新下载安装本软件或网站查阅最新版协议条款。在####修改本协议条款后,如果用户不接受修改后的条款,请立即停止使用####提供的“####”软件和服务,用户继续使用####提供的“####”软件和服务将被视为已接受了修改后的协议。
 
一、总则
 
1.1. 本协议是您(如下也称“用户”)与####及其运营合作单位(如下简称“合作单位”)之间关于用户下载、安装、使用####“####”软件(下称“本软件”)以及使用####相关服务所订立的协议。
 
1.2. 本软件及服务是####提供的安装在包括但不限于移动智能终端设备上的软件和服务,为使用该智能终端的用户提供绑定、操作智能产品等服务等。
 
1.3. 本软件及服务的所有权和运营权均归####所有。
 
二、软件授权范围
 
2.1. ####就本软件给予用户一项个人的、不可转让、不可转授权以及非独占性的许可。
 
2.2. 用户可以为非商业目的在单一台移动终端设备上安装、使用、显示、运行本软件。但用户不得为商业运营目的安装、使用、运行本软件,不可以对本软件或者本软件运行过程中释放到任何终端设备内存中的数据及本软件运行过程中客户端与服务器端的交互数据进行复制、更改、修改、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经授权的第三方工具/服务接入本软件和相关系统。如果需要进行商业性的销售、复制和散发,例如软件预装和捆绑,必须获得####的书面授权和许可。
 
2.3. 用户不得未经####许可,将本软件安装在未经####明示许可的其他终端设备上包括但不限于机顶盒、游戏机、电视机、DVD机等。
 
2.4. 用户可以为使用本软件及服务的目的复制本软件的一个副本,仅用作备份。备份副本必须包含原软件中含有的所有著作权信息。
 
2.5. 除本《协议》明示授权外,####未授权给用户其他权利,若用户使用其他权利时须另外取得####的书面同意。
 
三、软件的获取、安装、升级
 
3.1. 用户应当按照####的指定网站或指定方式下载安装本软件产品。谨防在非指定网站下载本软件,以免移动终端设备感染能破坏用户数据和获取用户隐私信息的恶意程序。如果用户从未经####授权的第三方获取本软件或与本软件名称相同的安装程序,####无法保证该软件能够正常使用,并对因此给您造成的损失不予负责。
 
3.2. 用户必须选择与所安装终端设备相匹配的本软件版本,否则,由于软件与设备型号不相匹配所导致的任何软件问题、设备问题或损害,均由用户自行承担。
 
3.3. 为了改善用户体验、完善服务内容,####有权不时地为您提供本软件替换、修改、升级版本,也有权为替换、修改或升级收取费用,但将收费提前征得您的同意。本软件为用户默认开通“升级提示”功能,视用户使用的软件版本差异,####提供给用户自行选择是否需要开通此功能。软件新版本发布后,####不保证旧版本软件的继续可用。
 
四、使用规范
 
4.1. 用户在遵守法律及本《协议》的前提下可依本《协议》使用本软件及服务,用户不得实施如下行为:
 
4.1.1. 删除本软件及其他副本上一切关于版权的信息,以及修改、删除或避开本软件为保护知识产权而设置的技术措施;
4.1.2. 对本软件进行反向工程,如反汇编、反编译或者其他试图获得本软件的源代码;
4.1.3. 通过修改或伪造软件运行中的指令、数据,增加、删减、变动软件的功能或运行效果,或者将用于上述用途的软件、方法进行运营或向公众传播,无论这些行为是否为商业目的;
4.1.4. 使用本软件进行任何危害网络安全的行为,包括但不限于:使用未经许可的数据或进入未经许可的服务器/账户;未经允许进入公众网络或者他人操作系统并删除、修改、增加存储信息;未经许可企图探查、扫描、测试本软件的系统或网络的弱点或其它实施破坏网络安全的行为; 企图干涉、破坏本软件系统或网站的正常运行故意传播恶意程序或病毒以及其他破坏干扰正常网络信息服务的行为伪造TCP/IP数据包名称或部分名称
4.1.5. 用户通过非####公司开发、授权或认可的第三方兼容软件、系统登录或使用本软件及服务,或制作、发布、传播上述工具;
4.1.6. 未经####书面同意,用户对软件及其中的信息擅自实施包括但不限于下列行为:使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版,建立镜像站点、擅自借助本软件发展与之有关的衍生产品、作品、服务、插件、外挂、兼容、互联等;
4.1.7. 利用本软件发表、传送、传播、储存违反当地法律法规的内容;
4.1.8. 利用本软件发表、传送、传播、储存侵害他人知识产权、商业秘密等合法权利的内容;
4.1.9. 利用本软件批量发表、传送、传播广告信息及垃圾信息;
4.1.10. 其他以任何不合法的方式、为任何不合法的目的、或以任何与本协议许可使用不一致的方式使用本软件和####提供的其他服务;
4.2. 信息发布规范
 
4.2.1.您可使用本软件发表属于您原创或您有权发表的观点看法、数据、文字、信息、用户名、图片、照片、个人信息、音频、视频文件、链接等信息内容。您必须保证,您拥有您所上传信息内容的知识产权或已获得合法授权,您使用本软件及服务的任何行为未侵犯任何第三方之合法权益。
4.2.2.您在使用本软件时需遵守当地法律法规要求。
4.2.3.您在使用本软件时不得利用本软件从事以下行为,包括但不限于:
 
4.2.3.1.制作、复制、发布、传播、储存违反当地法律法规的内容;
 
4.2.3.2.发布、传送、传播、储存侵害他人名誉权、肖像权、知识产权、商业秘密等合法权利的内容;
 
4.2.3.3.虚构事实、隐瞒真相以误导、欺骗他人;
 
4.2.3.4.发表、传送、传播广告信息及垃圾信息;
 
4.2.3.5.从事其他违反当地法律法规的行为。
 
4.2.4. 未经####许可,您不得在本软件中进行任何诸如发布广告、销售商品的商业行为。
 
4.3.您理解并同意:
 
4.3.1. ####会对用户是否涉嫌违反上述使用规范做出认定,并根据认定结果中止、终止对您的使用许可或采取其他依本约定可采取的限制措施;
4.3.2. 对于用户使用许可软件时发布的涉嫌违法或涉嫌侵犯他人合法权利或违反本协议的信息,####会直接删除;
4.3.3. 对于用户违反上述使用规范的行为对第三方造成损害的,您需要以自己的名义独立承担法律责任,并应确保####免于因此产生损失或增加费用;
4.3.4.若用户违反有关法律规定或协议约定,使####遭受损失,或受到第三方的索赔,或受到行政管理机关的处罚,用户应当赔偿####因此造成的损失和(或)发生的费用,包括合理的律师费、调查取证费用。
五、服务风险及免责声明
 
5.1. 用户必须自行配备移动终端设备上网和使用电信增值业务所需的设备,自行负担个人移动终端设备上网或第三方(包括但不限于电信或移动通信提供商)收取的通讯费、信息费等有关费用。如涉及电信增值服务的,我们建议您与您的电信增值服务提供商确认相关的费用问题。
 
5.2. 用户因第三方如通讯线路故障、技术问题、网络、移动终端设备故障、系统不稳定性及其他各种不可抗力原因而遭受的一切损失,####及合作单位不承担责任。
 
5.3. 本软件同大多数互联网软件一样,受包括但不限于用户原因、网络服务质量、社会环境等因素的差异影响,可能受到各种安全问题的侵扰,如他人利用用户的资料,造成现实生活中的骚扰;用户下载安装的其它软件或访问的其他网站中含有“特洛伊木马”等病毒,威胁到用户的终端设备信息和数据的安全,继而影响本软件的正常使用等等。用户应加强信息安全及使用者资料的保护意识,要注意加强密码保护,以免遭致损失和骚扰。
 
5.4. 因用户使用本软件或要求####提供特定服务时,本软件可能会调用第三方系统或第三方软件支持用户的使用或访问,使用或访问的结果由该第三方提供,####不保证通过第三方系统或第三方软件支持实现的结果的安全性、准确性、有效性及其他不确定的风险,由此若引发的任何争议及损害,####不承担任何责任。
 
5.5. ####特别提请用户注意,####为了保障公司业务发展和调整的自主权,####公司拥有随时修改或中断服务而不需通知用户的权利,####行使修改或中断服务的权利不需对用户或任何第三方负责。
 
5.6. 除法律法规有明确规定外,我们将尽最大努力确保软件及其所涉及的技术及信息安全、有效、准确、可靠,但受限于现有技术,用户理解####不能对此进行担保。
 
5.7. 由于用户因下述任一情况所引起或与此有关的人身伤害或附带的、间接的经济损害赔偿,包括但不限于利润损失、资料损失、业务中断的损害赔偿或其他商业损害赔偿或损失,需由用户自行承担:
 
5.7.1.使用或未能使用许可软件;
5.7.2.第三方未经许可的使用软件或更改用户的数据;
5.7.3.用户使用软件进行的行为产生的费用及损失;
5.7.4.用户对软件的误解;
5.7.5.非因####的原因引起的与软件有关的其他损失。
5.8. 用户与其他使用软件的用户之间通过软件进行的行为,因您受误导或欺骗而导致或可能导致的任何人身或经济上的伤害或损失,均由过错方依法承担所有责任。
 
六、知识产权声明
 
6.1. ####是本软件的知识产权权利人。本软件的一切著作权、商标权、专利权、商业秘密等知识产权,以及与本软件相关的所有信息内容(包括但不限于文字、图片、音 频、视频、图表、界面设计、版面框架、有关数据或电子文档等)均受您所在当地法律法规和相应的国际条约保护,####享有上述知识产权。
 
6.2 未经####书面同意,用户不得为任何商业或非商业目的自行或许可任何第三方实施、利用、转让上述知识产权,####保留追究上述行为法律责任的权利。
 
七、协议变更
 
7.1. ####有权在必要时修改本协议条款,协议条款一旦发生变动,将会在相关页面上公布修改后的协议条款。如果不同意所改动的内容,用户应主动取消此项服务。如果用户继续使用服务,则视为接受协议条款的变动。
 
7.2. ####和合作公司有权按需要修改或变更所提供的收费服务、收费标准、收费方式、服务费及服务条款。####在提供服务时,可能现在或日后对部分服务的用户开始收取一定的费用如用户拒绝支付该等费用,则不能在收费开始后继续使用相关的服务。####和合作公司将尽最大努力通过电邮或其他方式通知用户有关的修改或变更。

View File

@ -0,0 +1,70 @@
####尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的 服务,####会按照本隐私权政策的规定使用和披露您的个人信息。但####将以高 度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下 ####不会将这些信息对外披露或向第三方提供。####会不时更新本隐私权政策 。 您在同意####服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私 权政策属于####服务使用协议不可分割的一部分。
1. 适用范围
a) 在您注册####帐号时,您根据####要求提供的个人注册信息;
b) 在您使用####网络服务,或访问####平台网页时,####自动接收并记 录的您的浏览器和计算机上的信息包括但不限于您的IP地址、浏览器的类型、使用的语言、访 问日期和时间、软硬件特征信息及您需求的网页记录等数据;
c) ####通过合法途径从商业伙伴处取得的用户个人数据。
您了解并同意,以下信息不适用本隐私权政策:
a) 您在使用####平台提供的搜索服务时输入的关键字信息;
b) ####收集到的您在####发布的有关信息数据,包括但不限于参与活动、成交 信息及评价详情;
c) 违反法律规定或违反####规则行为及####已对您采取的措施。
2. 信息使用
a) ####不会向任何无关第三方提供、出售、出租、分享或交易您的个人信息,除非事先 得到您的许可,或该第三方和####(含####关联公司)单独或共同为您提供服务 ,且在该服务结束后,其将被禁止访问包括其以前能够访问的所有这些资料。
b) ####亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播您的个人信息。 任何####平台用户如从事上述活动,一经发现,####有权立即终止与该用户的服 务协议。
c) 为服务用户的目的,####可能通过使用您的个人信息,向您提供您感兴趣的信息,包 括但不限于向您发出产品和服务信息,或者与####合作伙伴共享信息以便他们向您发送 有关其产品和服务的信息(后者需要您的事先同意)。
3. 信息披露 在如下情况下,####将依据您的个人意愿或法律的规定全部或部分的披露您的个人信息
a) 经您事先同意,向第三方披露;
b) 为提供您所要求的产品和服务,而必须和第三方分享您的个人信息;
c) 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;
d) 如您出现违反中国有关法律、法规或者####服务协议或相关规则的情况,需要向第三 方披露;
e) 如您是适格的知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方 处理可能的权利纠纷;
f) 在####平台上创建的某一交易中,如交易任何一方履行或部分履行了交易义务并提出 信息披露请求的,####有权决定向该用户提供其交易对方的联络方式等必要信息,以促 成交易的完成或纠纷的解决。
g) 其它####根据法律、法规或者网站政策认为合适的披露。
4. 信息存储和交换 ####收集的有关您的信息和资料将保存在####及(或)其关联公司的服务器上, 这些信息和资料可能传送至您所在国家、地区或####收集信息和资料所在地的境外并在 境外被访问、存储和展示。
5. Cookie的使用
a) 在您未拒绝接受cookies的情况下####会在您的计算机上设定或取用cookies 以便您能登录或使用依赖于cookies的####平台服务或功能。####使用cookies 可为您提供更加周到的个性化服务,包括推广服务。
b) 您有权选择接受或拒绝接受cookies。 您可以通过修改浏览器设置的方式拒绝接受cookies。但如果您选择拒绝接受cookies则您可能 无法登录或使用依赖于cookies的####网络服务或功能。
c) 通过####所设cookies所取得的有关信息将适用本政策。
6. 信息安全
a) ####帐号均有安全保护功能,请妥善保管您的用户名及密码信息。####将通 过对用户密码进行加密等安全措施确保您的信息不丢失,不被滥用和变造。尽管有前述安全措施 ,但同时也请您注意在信息网络上不存在“完善的安全措施”。
b) 在使用####网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方 披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情 形下向他人提供。如您发现自己的个人信息泄密,尤其是####用户名及密码发生泄露, 请您立即联络####客服,以便####采取相应措施。
7. 接入的第三方SDK说明
a) 友盟统计SDK(com.umeng)
使用目的: 统计应用运营数据
使用范围: 应用运营数据统计
8. 敏感信息收集说明
我们的产品集成友盟+SDK友盟+SDK需要收集您的设备Mac地址、唯一设备识别码IMEI/android ID/IDFA/OPENUDID/GUID、SIM 卡 IMSI 信息)以提供统计分析服务,并通过地理位置校准报表数据准确性,提供基础反作弊能力。

View File

@ -0,0 +1,21 @@
{
"Code": 0,
"Data": [
{
"title": "微信公众号",
"content": "<a href=\"https://t.1yb.co/71xZ\">获取更多资讯内容,欢迎微信搜索公众号:「我的Android开源之旅」</a>"
},
{
"title": "关于作者",
"content": "点击关注作者,了解最新动态!<br /><a href=\"https://github.com/xuexiangjys\"><font color=\"#800080\">Github</font></a><br />\n<a href=\"https://www.zhihu.com/people/xuexiangjys/posts\"><font color=\"#0000FF\">知乎</font></a><br />\n<a href=\"https://juejin.im/user/598feef55188257d592e56ed/posts\"><font color=\"#000000\">掘金</font></a><br /><a href=\"https://www.jianshu.com/u/6bf605575337\"><font color=\"#FF0000\">简书</font></a><br />\n<a href=\"https://segmentfault.com/blog/openAndroidX\"><font color=\"#008000\">思否</font></a><br />\n<a href=\"https://space.bilibili.com/483850585/video\"><font color=\"#FFA500\">哔哩哔哩</font></a><br />\n<a href=\"https://www.toutiao.com/c/user/token/MS4wLjABAAAAqD0Pe01AhT2Hgi3w7HzboVuq57gntoAJJURwAkM3Elv0-EA9WSKUSy1DujIYLAEm/\"><font color=\"#FF0000\">今日头条</font></a>"
},
{
"title": "赞助作者",
"content": "你的打赏是我维护的动力,<a href=\"https://gitee.com/xuexiangjys/Resource/blob/master/doc/sponsor.md\"><font color=\"#800080\">点击此处支持我吧!</font></a>"
},
{
"title": "QQ交流群",
"content": "<a href=\"https://qm.qq.com/cgi-bin/qm/qr?k=i1rhgvRxlJRlJzigL0QemICtkk0H6g3J\">XUI开源交流1号群</a><br /><a href=\"https://qm.qq.com/cgi-bin/qm/qr?k=_0IhSCvLxdsgxAIBtTXr__bwsxZl4Eva\">XUI开源交流2号群</a><br /><a href=\"https://qm.qq.com/cgi-bin/qm/qr?k=GRVNTA4ehFuIUhQwqiZkjqYeQoxRBqCI\">AndroidGitHub开源交流群</a><br /><a href=\"https://qm.qq.com/cgi-bin/qm/qr?k=0OHp7jgMiF9SsfrzmOaxcauxMP9fZjc3\">XUpdate官方交流群</a>"
}
]
}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="?attr/colorAccent" />
<item android:state_selected="true" android:color="?attr/colorAccent" />
<item android:state_enabled="false" android:color="@color/xui_btn_disable_color" />
<item android:color="?attr/colorAccent" />
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<!--有公司logo-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item android:drawable="@color/xui_config_color_white" />
<item android:bottom="@dimen/xui_config_app_logo_bottom">
<bitmap
android:gravity="center"
android:src="@drawable/ic_splash_show" />
</item>
<item android:bottom="@dimen/xui_config_company_logo_bottom">
<bitmap
android:gravity="bottom"
android:src="@drawable/ic_canteen" />
</item>
</layer-list>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item android:drawable="?attr/xui_config_color_splash_bg"/>
<item android:bottom="?attr/xui_config_app_logo_bottom">
<bitmap
android:gravity="center"
android:src="?attr/xui_config_splash_app_logo"/>
</item>
<item android:bottom="?attr/xui_config_company_logo_bottom">
<bitmap
android:gravity="bottom"
android:src="?attr/xui_config_splash_company_logo"/>
</item>
</layer-list>

View File

@ -0,0 +1,34 @@
<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:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeWidth="1"
android:strokeColor="#00000000">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
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="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#F4F4F4"/>
<stroke
android:width="1.5dp"
android:color="#F6F6F6"/> <!-- 浅灰色 -->
<corners android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"/>
</shape>

View File

@ -0,0 +1,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#F4F4F4"/>
<stroke
android:width="1.5dp"
android:color="#F6F6F6"/> <!-- 浅灰色 -->
<corners android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
</shape>

View File

@ -0,0 +1,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#60ffffff"/>
<stroke
android:width="1.5dp"
android:color="#9ddedc"/> <!-- 浅灰色 -->
<corners android:radius="10dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#409eff"/>
<corners android:radius="10dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/app_color_grey"/>
<corners android:radius="10dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/color_dark_green"/>
<corners android:radius="10dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#13aa34"/>
<corners android:radius="10dp"/>
</shape>

View File

@ -0,0 +1,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/color_dark_green"/>
<corners android:radius="10dp"/>
<stroke android:color="@color/white"
android:width="1dp"/>
</shape>

View File

@ -0,0 +1,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white"/>
<stroke
android:width="1.5dp"
android:color="#D4D4D4"/> <!-- 浅灰色 -->
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white"/>
<corners android:radius="10dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#409eff"/>
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#E2951E"/>
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/app_color_theme_2"/>
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/xui_transparent"/>
<stroke
android:width="1.5dp"
android:color="#FF5722"/> <!-- 浅灰色 -->
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white"/>
<stroke
android:width="1.5dp"
android:color="#D4D4D4"/> <!-- 浅灰色 -->
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/xui_transparent"/>
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:elevation="8dp">
<solid android:color="@color/app_color_grey" />
<corners android:radius="50dp"/>
</shape>

View File

@ -0,0 +1,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/xui_transparent"/>
<stroke
android:width="1.5dp"
android:color="#D4D4D4"/> <!-- 浅灰色 -->
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#dedede" />
<corners android:radius="50dp"/>
</shape>

View File

@ -0,0 +1,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:elevation="8dp">
<solid android:color="@color/xui_transparent" />
<corners android:radius="75dp"/>
</shape>

View File

@ -0,0 +1,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#709A9A9A"/>
<stroke
android:width="1dp"
android:color="#D6D6D6"/> <!-- 浅灰色 -->
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,10 @@
<!-- res/drawable/edittext_border.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 设置边框颜色和宽度 -->
<stroke
android:width="2dp"
android:color="#DBDBDB" /> <!-- 边框颜色 -->
<!-- 设置圆角(可选) -->
<corners android:radius="8dp" /> <!-- 圆角半径 -->
<!-- 设置背景颜色(可选) -->
</shape>

View File

@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white"/>
<corners android:radius="5dp"/>
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M869.03,393.85a54.14,54.14 0,0 1,54.14 54.14v467.74a54.14,54.14 0,0 1,-54.14 54.14H154.97a54.14,54.14 0,0 1,-54.14 -54.14V447.98a54.14,54.14 0,0 1,54.14 -54.14h714.07m0,-54.14H154.97a108.27,108.27 0,0 0,-108.27 108.27v467.74a108.27,108.27 0,0 0,108.27 108.27h714.07a108.27,108.27 0,0 0,108.27 -108.27V447.98a108.27,108.27 0,0 0,-108.27 -108.27z"
android:fillColor="#000000"/>
<path
android:pathData="M817.87,362.72h-54.14v-56.84a251.74,251.74 0,1 0,-503.47 0v56.84h-54.14v-56.84a305.87,305.87 0,1 1,611.75 0z"
android:fillColor="#000000"/>
<path
android:pathData="M438.64,520.53m71.46,0l3.79,0q71.46,0 71.46,71.46l0,3.79q0,71.46 -71.46,71.46l-3.79,0q-71.46,0 -71.46,-71.46l0,-3.79q0,-71.46 71.46,-71.46Z"
android:fillColor="#000000"/>
<path
android:pathData="M483.04,567.63m28.15,0l1.35,0q28.15,0 28.15,28.15l0,204.37q0,28.15 -28.15,28.15l-1.35,0q-28.15,0 -28.15,-28.15l0,-204.37q0,-28.15 28.15,-28.15Z"
android:fillColor="#000000"/>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="1024"
android:viewportWidth="1024" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000000" android:pathData="M640,542.72c76.8,-44.8 128,-128 128,-217.6 0,-140.8 -115.2,-256 -256,-256s-256,108.8 -256,249.6c0,96 51.2,172.8 128,217.6 -166.4,51.2 -281.6,204.8 -288,384 0,25.6 12.8,38.4 32,38.4s32,-12.8 32,-32c6.4,-192 160,-345.6 352,-345.6s345.6,153.6 352,345.6c0,19.2 12.8,32 32,32s32,-12.8 32,-32c-6.4,-179.2 -121.6,-332.8 -288,-384zM320,318.72c0,-108.8 83.2,-192 192,-192s192,83.2 192,192 -83.2,192 -192,192 -192,-83.2 -192,-192z"/>
</vector>

View File

@ -0,0 +1,29 @@
<!--
~ Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#8a8a8a"
android:pathData="M595.71,526.11l-205.44,-197.28c-8.86,-10.43 -7.5,-25.97 3.02,-34.69 10.53,-8.74 26.24,-7.36 35.09,3.07l205.42,197.28c8.86,10.43 7.5,25.97 -3.01,34.69S604.56,536.56 595.71,526.11z" />
<path
android:fillColor="#8a8a8a"
android:pathData="M390.26,695.68l205.44,-197.28c8.86,-10.43 24.56,-11.81 35.09,-3.09 10.53,8.74 11.87,24.27 3.02,34.69l-205.44,197.28c-8.85,10.43 -24.56,11.81 -35.09,3.07C382.75,721.66 381.39,706.13 390.26,695.68z" />
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

View File

@ -0,0 +1,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white"/>
<stroke
android:width="1.5dp"
android:color="#E2E2E2"/> <!-- 浅灰色 -->
<corners android:radius="5dp"/>
</shape>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 设置背景颜色 -->
<solid android:color="#00FFFFFF" />
<!-- 设置边框颜色和宽度 -->
<stroke
android:width="2dp"
android:color="#FF0000" />
<!-- 设置圆角半径 -->
<corners android:radius="5dp" />
</shape>

View File

@ -0,0 +1,47 @@
<!--
~ Copyright (C) 2025 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:id="@+id/dish_item_linear_layout"
android:background="@drawable/btn_border_bg_10_dark_green"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/tv_dish_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:layout_marginStart="@dimen/config_margin_10dp"
android:layout_marginEnd="@dimen/config_margin_10dp"
android:gravity="center"
android:text="小肉包"
android:textColor="@color/white"
android:textSize="22sp" />
<TextView
android:id="@+id/tv_keep_sample_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/config_margin_10dp"
android:layout_marginEnd="@dimen/config_margin_10dp"
android:layout_weight="2"
android:gravity="center"
android:text="未留样"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2025 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:background="#F4F4F4">
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:columnWidth="200dp"
android:gravity="center"
android:padding="5dp"
android:layout_weight="1"
tools:listitem="@layout/activity_dish_item"
android:id="@+id/dish_list_view"/>
</LinearLayout>

View File

@ -0,0 +1,260 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F4F4F4"
android:orientation="vertical">
<include layout="@layout/activity_title"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/config_margin_20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="所属食堂:"/>
<TextView
android:id="@+id/canteen_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="样品重量:"/>
<TextView
android:id="@+id/weight"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/config_margin_10dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="档口:"/>
<TextView
android:id="@+id/stall_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="入柜时间:"/>
<TextView
android:id="@+id/entryCabinetTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/config_margin_10dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="餐次:"/>
<TextView
android:id="@+id/meal_time_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="离柜时间:"/>
<TextView
android:id="@+id/leaveCabinetTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/config_margin_10dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="菜品名称:"/>
<TextView
android:id="@+id/dish_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="在柜时长:"/>
<TextView
android:id="@+id/duration_in_the_cabinet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/config_margin_10dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="存放状态:"/>
<TextView
android:id="@+id/storage_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="是否违规:"/>
<TextView
android:id="@+id/is_violation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/config_margin_10dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="所在留样柜:"/>
<TextView
android:id="@+id/cabinet_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="打印时间:"/>
<TextView
android:id="@+id/printing_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/config_margin_10dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="留样人:"/>
<TextView
android:id="@+id/sample_keeper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="样品照片:"/>
<ImageView
android:id="@+id/sample_photo"
android:layout_width="300dp"
android:layout_height="300dp"
android:contentDescription="样品照片" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2025 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#F4F4F4"
android:orientation="horizontal">
<TextView
android:id="@+id/canteen_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/stall_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/meal_time_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/dish_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/storage_status"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/duration_in_the_cabinet"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:textColor="#000000"
android:textSize="20sp" />
<HorizontalScrollView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fillViewport="true">
<TextView
android:id="@+id/printing_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:textColor="#000000"
android:textSize="20sp" />
</HorizontalScrollView>
<TextView
android:id="@+id/operation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="10dp"
android:textColor="@color/color_dark_green"
android:textSize="20sp" />
</LinearLayout>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2025 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F4F4F4"
android:orientation="vertical">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/keep_sample_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"
tools:listitem="@layout/activity_keep_sample_item" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/machine_root_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/activity_title"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="10dp">
<com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
android:id="@+id/canteen_spinner"
style="@style/Material.SpinnerStyle"
android:layout_height="50dp"
android:enabled="false"
android:minWidth="200dp" />
<com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
android:id="@+id/stall_spinner"
style="@style/Material.SpinnerStyle"
android:layout_height="50dp"
android:layout_marginStart="10dp"
android:minWidth="200dp" />
<com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
android:id="@+id/storage_status_spinner"
style="@style/Material.SpinnerStyle"
android:layout_height="50dp"
android:layout_marginStart="@dimen/config_margin_10dp"
android:minWidth="200dp" />
<EditText
android:layout_width="150dp"
android:layout_height="50dp"
android:editable="false"
android:layout_marginLeft="@dimen/config_margin_10dp"
android:layout_marginRight="@dimen/config_margin_10dp"
android:background="@drawable/edittext_border_white"
android:hint="请选择日期"
android:id="@+id/mac_query_time"
/>
</LinearLayout>
<LinearLayout
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:padding="10dp">
<Button
android:id="@+id/mac_query"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:background="@drawable/btn_border_bg_10_dark_green"
android:text="@string/query" />
<Button
android:id="@+id/mac_reset"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:background="@drawable/btn_border_bg_10_dark_green"
android:text="@string/reset" />
</LinearLayout>
</LinearLayout>
<include layout="@layout/activity_keep_sample_title" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<include layout="@layout/activity_keep_sample_list" />
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2025 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:background="#F4F4F4">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="食堂"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="档口"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="餐次"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="菜品名称"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="存放状态"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="在柜时长"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="打印时间"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="操作"
android:textSize="20sp"
android:textColor="#000000"
android:gravity="center"
android:padding="10dp"/>
</LinearLayout>

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_login_bg"
android:orientation="vertical">
<LinearLayout
android:layout_width="500dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="50dp"
android:background="@drawable/btn_border_bg_10_60ffffff"
android:orientation="vertical">
<ImageView
android:layout_gravity="center"
android:layout_width="120dp"
android:layout_height="120dp"
android:contentDescription="@string/image_desc"
android:src="@drawable/ic_login_logo"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="28sp"
android:layout_marginTop="10dp"
android:textFontWeight="1000"
android:text="@string/app_name"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="30dp"
android:orientation="horizontal"
android:background="@drawable/edit_text_bg"
android:padding="10dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_person_input"
android:contentDescription="@string/image_desc" />
<EditText
android:id="@+id/et_username"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:maxLength="20"
android:text="13866134935"
android:hint="@string/please_enter_username"
android:inputType="textPersonName"
android:background="@android:color/transparent"
android:paddingLeft="10dp"
android:autofillHints="" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="horizontal"
android:background="@drawable/edit_text_bg"
android:padding="10dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_password_input"
android:contentDescription="@string/image_desc" />
<EditText
android:id="@+id/et_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:autofillHints=""
android:background="@android:color/transparent"
android:hint="@string/please_enter_password"
android:layout_marginRight="5dp"
android:inputType="textPassword"
android:paddingLeft="10dp"
android:text="Bonus$2028" />
<ImageView
android:id="@+id/check_password"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_eye_close"
android:contentDescription="@string/image_desc" />
</LinearLayout>
<com.xuexiang.xui.widget.layout.XUIButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/login"
android:textColor="@color/white"
android:textSize="18sp"
android:backgroundTint="#006e6b"
android:id="@+id/btn_login"/>
<TextView
android:id="@+id/tv_forget_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="@string/forgot_password"
android:visibility="gone"
android:textColor="@color/color_blue"
tools:ignore="RtlHardcoded" />
</LinearLayout>
</FrameLayout>

View File

@ -0,0 +1,231 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/xui_config_color_background_pressed"
android:orientation="vertical">
<include layout="@layout/activity_title"
android:id="@+id/title"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:layout_marginStart="20dp"
android:textSize="28sp"/>
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="智小样"
android:textSize="28sp"/>
<LinearLayout
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:layout_gravity="center_vertical">
<Button
android:id="@+id/sampleRetentionRecord"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/btn_border_bg_10_dark_green"
android:text="@string/sampleRetentionRecord" />
<Button
android:id="@+id/setting"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="150dp"
android:layout_height="40dp"
android:visibility="gone"
android:layout_marginStart="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/btn_border_bg_10_dark_green"
android:text="@string/setting" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/config_margin_20dp"
android:padding="10dp">
<com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
android:id="@+id/canteen_spinner"
android:minWidth="250dp"
android:enabled="false"
style="@style/Material.SpinnerStyle" />
<com.xuexiang.xui.widget.spinner.materialspinner.MaterialSpinner
android:id="@+id/stall_spinner"
android:minWidth="250dp"
style="@style/Material.SpinnerStyle"
android:layout_marginStart="10dp"/>
<Button
android:layout_width="150dp"
android:layout_height="40dp"
android:text="搜索"
android:layout_marginStart="@dimen/config_margin_20dp"
android:id="@+id/search"
android:background="@drawable/btn_border_bg_10_dark_green"/>
<Button
android:layout_width="150dp"
android:layout_height="40dp"
android:text="刷新"
android:layout_marginStart="@dimen/config_margin_20dp"
android:id="@+id/refresh"
android:background="@drawable/btn_border_bg_10_dark_green"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_margin="20dp"
android:padding="15dp"
android:background="@drawable/btn_border_bg_10_whitee"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/collectSamplePhotos"
android:textFontWeight="800"
android:textSize="22sp"/>
<SurfaceView
android:id="@+id/take_photo_surface_view"
android:layout_width="450dp"
android:layout_height="450dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:src="@drawable/ic_person_photo"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/pleaseSelectTheDishOnTheRightFirst"
android:textFontWeight="800"
android:layout_marginTop="10dp"
android:gravity="center"
android:textSize="22sp"/>
</LinearLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:layout_margin="20dp"
android:padding="15dp"
android:background="@drawable/btn_border_bg_10_whitee"
android:orientation="vertical">
<TextView
android:id="@+id/pleaseSelectTheDishesForSampleRetention"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pleaseSelectTheDishesForSampleRetention"
android:textFontWeight="800"
android:textSize="22sp"/>
<EditText
android:id="@+id/dish_name_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:autofillHints="username"
android:inputType="textPersonName"
android:layout_below="@+id/pleaseSelectTheDishesForSampleRetention"
android:padding="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_border"
android:hint="@string/pleaseEnterTheNameOfTheDish"/>
<LinearLayout
android:id="@+id/dish_item_list"
android:layout_width="match_parent"
android:layout_below="@+id/dish_name_edit_text"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="horizontal">
<include layout="@layout/activity_dish_list" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_weight="1">
<TextView
android:layout_width="75dp"
android:layout_height="wrap_content"
android:textSize="25sp"
android:text="重量:"
android:layout_gravity="center_vertical"
android:textFontWeight="800"/>
<TextView
android:id="@+id/tv_weight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25sp"
android:layout_gravity="center_vertical"
android:textFontWeight="800"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25sp"
android:text="g"
android:layout_gravity="center_vertical"
android:textFontWeight="800"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="end">
<Button
android:id="@+id/setToZero"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="30dp"
android:visibility="gone"
android:background="@drawable/btn_border_bg_10_dark_green"
android:text="@string/setToZero" />
<Button
android:id="@+id/peel"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:visibility="gone"
android:layout_marginEnd="30dp"
android:background="@drawable/btn_border_bg_10_dark_green"
android:text="@string/peel" />
<Button
android:id="@+id/keepASample"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:layout_marginStart="30dp"
android:enabled="false"
android:layout_marginEnd="10dp"
android:background="@drawable/btn_border_bg_10_dark_gray"
android:text="@string/theWeightDoesNotMeetTheStandard" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,263 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F4F4F4"
android:orientation="vertical">
<include layout="@layout/activity_title"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="IP地址"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/ip_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#7E7E7E" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="MQTT地址"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/mqtt_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#7E7E7E" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="MQTT用户名"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/mqtt_user_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#7E7E7E" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="MQTT密码"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/mqtt_pass_word"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#7E7E7E" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="人脸引擎APP_ID"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/app_id"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#7E7E7E" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="人脸引擎APP_KEY"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/app_key"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#7E7E7E" />
<LinearLayout
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="wrap_content"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="人脸引擎对比度:"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/face_pass_rate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#7E7E7E" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/config_margin_10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="照片路径前缀:"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/photo_prefix"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#7E7E7E" />
</LinearLayout>
<TextView
android:id="@+id/save_btn"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_gravity="right|bottom"
android:layout_marginEnd="15dp"
android:layout_marginBottom="15dp"
android:background="@drawable/btn_border_bg_10_dark_green"
android:gravity="center"
android:text="@string/save"
android:textColor="@color/white"
android:textSize="22sp" />
</FrameLayout>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@color/color_dark_green"
android:orientation="vertical">
<TextView
android:id="@+id/page_back"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_marginStart="15dp"
android:layout_marginTop="15dp"
android:visibility="gone"
android:text="@string/back"
android:gravity="center"
android:textSize="22sp"
android:textColor="@color/white"
android:background="@drawable/btn_border_bg_10_dark_green_stroke"
/>
<TextView
android:id="@+id/page_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textFontWeight="1000"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="30sp"/>
<TextView
android:id="@+id/time_show"
android:layout_width="320dp"
android:layout_height="match_parent"
android:textColor="@color/white"
android:layout_gravity="right"
android:gravity="center"
android:textFontWeight="800"
android:textSize="30sp"
tools:ignore="RtlHardcoded" />
</FrameLayout>

View File

@ -0,0 +1,13 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="600dp"
android:layout_height="600dp"
android:layout_gravity="center"
android:background="#80000000">
<ImageView
android:id="@+id/photo_view"
android:layout_width="600dp"
android:layout_gravity="center"
android:layout_height="600dp"
android:background="@color/xui_transparent"
android:scaleType="fitCenter"/>
</FrameLayout>

View File

@ -0,0 +1,57 @@
<!--
~ Copyright (C) 2025 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:padding="15dp"
android:background="#60ffffff"
android:orientation="vertical">
<TextView
android:id="@+id/setting"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="设置"
android:textColor="@color/white"
android:textSize="22sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.2dp"
android:background="#E9E9E9" />
<TextView
android:id="@+id/reboot"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="重启APP"
android:textColor="@color/white"
android:textSize="22sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.2dp"
android:background="#E9E9E9" />
<TextView
android:id="@+id/exitApp"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="退出程序"
android:textColor="@color/white"
android:textSize="22sp" />
</LinearLayout>

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<resources>
<string-array name="adBlockUrl">
<item>ubmcmm.baidustatic.com</item>
<item>gss1.bdstatic.com/</item>
<item>cpro2.baidustatic.com</item>
<item>cpro.baidustatic.com</item>
<item>lianmeng.360.cn</item>
<item>nsclick.baidu.com</item>
<item>caclick.baidu.com/</item>
<item>jieaogd.com</item>
<item>publish-pic-cpu.baidu.com/</item>
<item>cpro.baidustatic.com/</item>
<item>hao61.net/</item>
<item>cpu.baidu.com/</item>
<item>pos.baidu.com</item>
<item>cbjs.baidu.com</item>
<item>cpro.baidu.com</item>
<item>images.sohu.com/cs/jsfile/js/c.js</item>
<item>union.sogou.com/</item>
<item>sogou.com/</item>
<item>5txs.cn/</item>
<item>liuzhi520.com/</item>
<item>yhzm.cc/</item>
<item>jieaogd.com</item>
<item>a.baidu.com</item>
<item>c.baidu.com</item>
<item>mlnbike.com</item>
<item>alipays://platformapi</item>
<item>alipay.com/</item>
<item>jieaogd.com</item>
<item>vipshop.com</item>
<item>bayimob.com</item>
</string-array>
<string-array name="grid_titles_entry">
<item>美食</item>
<item>甜点</item>
<item>烧烤</item>
<item>夜宵</item>
<item>水果</item>
<item>药品</item>
<item>蔬菜</item>
<item>跑腿</item>
</string-array>
<!-- 修改这里的图标 -->
<array name="grid_icons_entry">
<item>@color/app_color_theme_1</item>
<item>@color/app_color_theme_2</item>
<item>@color/app_color_theme_3</item>
<item>@color/app_color_theme_4</item>
<item>@color/app_color_theme_5</item>
<item>@color/app_color_theme_6</item>
<item>@color/app_color_theme_7</item>
<item>@color/app_color_theme_8</item>
</array>
</resources>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<color name="colorPrimary">#299EE3</color>
<color name="colorPrimaryDark">#299EE3</color>
<color name="color_dark_green">#006e6b</color>
<color name="colorAccent">#299EE3</color>
<color name="config_color_select_bg">#FFF1F1F1</color>
<!--Toast可自定义喜欢的颜色-->
<color name="toast_default_text_color" tools:ignore="PrivateResource">@color/xui_config_color_white</color>
<color name="toast_error_color" tools:ignore="PrivateResource">@color/xui_config_color_red</color>
<color name="toast_info_color" tools:ignore="PrivateResource">@color/colorAccent</color>
<color name="toast_success_color" tools:ignore="PrivateResource">#388E3C</color>
<color name="toast_warning_color" tools:ignore="PrivateResource">@color/xui_config_color_waring</color>
<color name="toast_normal_tint_color" tools:ignore="PrivateResource">#353A3E</color>
<color name="app_color_theme_1">#EF5362</color> <!-- Grapefruit -->
<color name="app_color_theme_2">#FE6D4B</color> <!-- Bittersweet -->
<color name="app_color_theme_3">#FFCF47</color> <!-- Sunflower -->
<color name="app_color_theme_4">#9FD661</color> <!-- Grass -->
<color name="app_color_theme_5">#3FD0AD</color> <!-- Mint -->
<color name="app_color_theme_6">#2BBDF3</color> <!-- Aqua -->
<color name="app_color_theme_7">#5A9AEF</color> <!-- Blue Jeans -->
<color name="app_color_theme_8">#AC8FEF</color> <!-- Lavender -->
<color name="app_color_theme_9">#EE85C1</color> <!-- Pink Rose -->
<color name="app_color_grey">#9A9A9A</color> <!-- Pink Rose -->
<color name="selector_tab_text_color">#FE6D4B</color> <!-- Pink Rose -->
<color name="app_color_button_1">#A75A02</color>
<color name="app_color_button_2">#C1830C</color>
</resources>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="config_margin_horizontal">24dp</dimen>
<dimen name="config_margin_4dp">4dp</dimen>
<dimen name="config_margin_5dp">5dp</dimen>
<dimen name="config_margin_6dp">6dp</dimen>
<dimen name="config_margin_8dp">8dp</dimen>
<dimen name="config_margin_10dp">10dp</dimen>
<dimen name="config_margin_12dp">12dp</dimen>
<dimen name="config_margin_14dp">14dp</dimen>
<dimen name="config_margin_16dp">16dp</dimen>
<dimen name="config_margin_18dp">18dp</dimen>
<dimen name="config_margin_20dp">20dp</dimen>
<dimen name="config_margin_24dp">24dp</dimen>
<dimen name="config_margin_30dp">30dp</dimen>
<dimen name="config_margin_40dp">40dp</dimen>
<dimen name="config_padding_4dp">4dp</dimen>
<dimen name="config_padding_5dp">5dp</dimen>
<dimen name="config_padding_6dp">6dp</dimen>
<dimen name="config_padding_8dp">8dp</dimen>
<dimen name="config_padding_10dp">10dp</dimen>
<dimen name="config_padding_12dp">12dp</dimen>
<dimen name="config_padding_14dp">14dp</dimen>
<dimen name="config_padding_16dp">16dp</dimen>
<dimen name="config_padding_18dp">18dp</dimen>
<dimen name="config_padding_20dp">20dp</dimen>
<dimen name="config_padding_24dp">24dp</dimen>
<dimen name="config_padding_30dp">30dp</dimen>
</resources>

View File

@ -0,0 +1,56 @@
<resources>
<string name="app_name">智慧食堂</string>
<string name="app_browser_name">通用浏览器</string>
<string name="more">更多</string>
<string name="keyboard">键盘</string>
<string name="not_logged_in">未登录</string>
<string name="back">返回</string>
<string name="save">保存</string>
<string name="start_time">开始时间</string>
<string name="end_time">结束时间</string>
<string name="canteen_manual_input">补菜</string>
<string name="num_1">1</string>
<string name="num_2">2</string>
<string name="num_3">3</string>
<string name="num_4">4</string>
<string name="num_5">5</string>
<string name="num_6">6</string>
<string name="num_7">7</string>
<string name="num_8">8</string>
<string name="num_9">9</string>
<string name="num_0">0</string>
<string name="num_point">.</string>
<string name="num_add">+</string>
<string name="num_clear">清除</string>
<string name="wait_for_payment">等待支付</string>
<string name="please_enter_username">请输入用户名</string>
<string name="image_desc">图标注释</string>
<string name="please_enter_password">请输入登录密码</string>
<string name="forgot_password">忘记密码?</string>
<string name="login">登录</string>
<string name="num_reduction">-</string>
<string name="lab_yes"></string>
<string name="lab_no"></string>
<string name="lab_open_third_app">第三方APP</string>
<string name="sampleRetentionRecord">留样记录</string>
<string name="sampleRetentionRecordDetails">留样记录详情</string>
<string name="exit">退出</string>
<string name="hello">您好,</string>
<string name="collectSamplePhotos">留样照片采集</string>
<string name="pleaseSelectTheDishOnTheRightFirst">请先选择右侧菜品</string>
<string name="pleaseSelectTheDishesForSampleRetention">请选择留样样品</string>
<string name="pleaseEnterTheNameOfTheDish">请输入菜品名称</string>
<string name="keepASample">留样</string>
<string name="theWeightDoesNotMeetTheStandard">重量不达标</string>
<string name="peel">去皮</string>
<string name="query">查询</string>
<string name="reset">重置</string>
<string name="please_select_date">请选择日期</string>
<string name="setToZero">置零</string>
<string name="setting">设置</string>
</resources>

View File

@ -0,0 +1,83 @@
<resources>
<!-- 拓展主题 theme. -->
<style name="XUITheme" parent="XUIBaseTheme">
<!--设置默认窗口的动画样式-->
<item name="android:windowAnimationStyle">@style/WindowAnimStyle</item>
</style>
<!-- Base application theme. -->
<style name="AppTheme" parent="XUITheme.Tablet.Big">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="xui_actionbar_height">?actionBarSize</item>
</style>
<style name="AppTheme.Launch">
<item name="xui_config_color_splash_bg">@color/xui_config_color_white</item>
<item name="xui_config_app_logo_bottom">@dimen/xui_config_app_logo_bottom</item>
<item name="xui_config_company_logo_bottom">@dimen/xui_config_company_logo_bottom</item>
<item name="android:windowBackground">@drawable/xui_config_bg_splash</item>
<item name="android:windowFullscreen">true</item>
</style>
<!--窗体背景,这个背景能在第一时间显示, 避免启动时白屏,黑屏问题-->
<style name="AppTheme.Launch.App">
<!--TODO 注意修改图标-->
<item name="xui_config_splash_app_logo">@drawable/ic_splash_app_logo_xui</item>
<item name="xui_config_splash_company_logo">@drawable/ic_login_logo</item>
</style>
<style name="TabText.Explain">
<item name="android:textColor">@color/selector_tab_text_color</item>
<item name="android:textSize">?attr/xui_config_size_explain_text</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<!--DialogTheme用于将Activity作为Dialog的主题-->
<style name="DialogTheme" parent="XUITheme.Tablet.Big">
<!--设置dialog的背景此处为系统给定的透明值-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--Dialog的windowFrame框为无-->
<item name="android:windowFrame">@null</item>
<!--无标题-->
<item name="android:windowNoTitle">true</item>     
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否半透明-->
<item name="android:windowIsTranslucent">true</item>
<!--是否有覆盖-->
<item name="android:windowContentOverlay">@null</item>
<!--设置Activity出现方式-->
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<!--背景是否模糊显示-->
<item name="android:backgroundDimEnabled">true</item>
</style>
<style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout">
<item name="tabIndicatorColor">?attr/colorAccent</item>
<item name="tabIndicatorHeight">2dp</item>
<item name="tabPaddingStart">12dp</item>
<item name="tabPaddingEnd">12dp</item>
<item name="tabTextAppearance">@style/TabText</item>
<item name="tabSelectedTextColor">?attr/colorAccent</item>
<item name="tabTextColor">@color/xui_config_color_gray_6</item>
</style>
<style name="buttonStyle_selected">
<item name="android:textColor">#FE6D4B</item>
<item name="android:background">#FFFFFF</item>
<item name="android:textSize">16sp</item>
<item name="android:padding">16dp</item>
</style>
<style name="buttonStyle_unSelected">
<item name="android:textColor">#FFFFFF</item>
<item name="android:background">#FE6D4B</item>
<item name="android:textSize">16sp</item>
<item name="android:padding">8dp</item>
</style>
</resources>

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<resources>
<!--放一些组件的样式-->
<style name="WindowAnimStyle" parent="@android:style/Animation">
<item name="android:activityOpenEnterAnimation">@anim/xpage_slide_in_right</item>
<item name="android:activityOpenExitAnimation">@anim/xpage_slide_out_left</item>
<item name="android:activityCloseEnterAnimation">@anim/xpage_slide_in_left</item>
<item name="android:activityCloseExitAnimation">@anim/xpage_slide_out_right</item>
</style>
<style name="Container">
<item name="android:paddingStart">?attr/xui_config_content_spacing_horizontal</item>
<item name="android:paddingEnd">?attr/xui_config_content_spacing_horizontal</item>
</style>
<style name="InfoItem" parent="Container">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">50dp</item>
<item name="sLeftViewMarginLeft">10dp</item>
<item name="sRightViewMarginRight">0dp</item>
<item name="sRightIconMarginRight">0dp</item>
<item name="sLeftIconMarginLeft">0dp</item>
<item name="sLeftTextSize">?attr/xui_config_size_content_text</item>
<item name="sLeftTextColor">@color/xui_config_color_title_text</item>
<item name="sCenterTextColor">@color/xui_config_color_black</item>
<item name="sRightTextColor">@color/xui_config_color_explain_text</item>
<item name="sRightTextSize">?attr/xui_config_size_content_text</item>
</style>
<style name="InfoItem.Account">
<item name="sLeftViewWidth">110dp</item>
<item name="sLeftViewGravity">left_center</item>
<item name="sCenterViewGravity">left_center</item>
<item name="sCenterViewMarginLeft">25dp</item>
<item name="sRightTextSize">?attr/xui_config_size_content_text</item>
<item name="sRightViewMarginRight">10dp</item>
<item name="sRightIconRes">@drawable/icon_arrow_right_grey</item>
</style>
<style name="InfoItem.Account.NoEdit">
<item name="sRightIconRes">@null</item>
</style>
<style name="RadiusImageView.Circle">
<item name="android:scaleType">centerCrop</item>
<item name="riv_is_circle">true</item>
<item name="riv_border_width">0dp</item>
</style>
<style name="RadiusImage">
<item name="android:scaleType">centerCrop</item>
<item name="riv_border_width">0dp</item>
<item name="riv_corner_radius">5dp</item>
</style>
<style name="PullDownStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="srlEnableOverScrollDrag">true</item>
<item name="srlEnablePureScrollMode">true</item>
</style>
<style name="ScrollViewStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:overScrollMode">never</item>
</style>
<style name="SuperButton.Primary.Login">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">40dp</item>
<item name="android:layout_marginStart">50dp</item>
<item name="android:layout_marginEnd">50dp</item>
<item name="sCornersRadius">20dp</item>
<item name="sSelectorNormalColor">?attr/colorAccent</item>
<item name="sSelectorPressedColor">?attr/colorAccent</item>
<item name="android:textColor">@color/xui_config_color_white</item>
</style>
<style name="XUILayout">
<item name="xui_borderWidth">0dp</item>
<item name="xui_radius">8dp</item>
<item name="xui_shadowElevation">6dp</item>
<item name="android:background">@color/xui_config_color_white</item>
</style>
<!--TabLayout-->
<style name="TabText" parent="TextAppearance.Design.Tab">
<item name="android:textColor">@color/selector_tab_text_color</item>
<item name="android:textSize">?attr/xui_config_size_content_text</item>
</style>
</resources>

View File

@ -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>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-files-path
name="my_images"
path="Pictures/" />
</paths>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2020 xuexiangjys(xuexiangjys@163.com)
~
~ 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
~
~ http://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.
~
-->
<network-security-config>
<!-- 暂时解决Android9.0上加载http的图片问题 -->
<base-config cleartextTrafficPermitted="true" >
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>