소스 검색

first commit

master
“wxx” 2 달 전
커밋
25cf124b53
100개의 변경된 파일2686개의 추가작업 그리고 0개의 파일을 삭제
  1. +15
    -0
      DeviceDinder/.gitignore
  2. +3
    -0
      DeviceDinder/.idea/.gitignore
  3. +116
    -0
      DeviceDinder/.idea/codeStyles/Project.xml
  4. +6
    -0
      DeviceDinder/.idea/compiler.xml
  5. +6
    -0
      DeviceDinder/.idea/encodings.xml
  6. +20
    -0
      DeviceDinder/.idea/gradle.xml
  7. +8
    -0
      DeviceDinder/.idea/misc.xml
  8. +6
    -0
      DeviceDinder/.idea/vcs.xml
  9. +1
    -0
      DeviceDinder/app/.gitignore
  10. +77
    -0
      DeviceDinder/app/build.gradle
  11. BIN
      DeviceDinder/app/config/platform.keystore
  12. BIN
      DeviceDinder/app/config/test.release.keystore.jks
  13. +21
    -0
      DeviceDinder/app/proguard-rules.pro
  14. BIN
      DeviceDinder/app/release/Devicedinder_V0.0.1.20230626-release.apk
  15. +20
    -0
      DeviceDinder/app/release/output-metadata.json
  16. +26
    -0
      DeviceDinder/app/src/androidTest/java/com/telpo/devicedinder/ExampleInstrumentedTest.java
  17. +63
    -0
      DeviceDinder/app/src/main/AndroidManifest.xml
  18. +47
    -0
      DeviceDinder/app/src/main/java/com/telpo/devicedinder/AlipayActivity.java
  19. +43
    -0
      DeviceDinder/app/src/main/java/com/telpo/devicedinder/BindApplication.java
  20. +136
    -0
      DeviceDinder/app/src/main/java/com/telpo/devicedinder/IMEIAndSNActivity.java
  21. +502
    -0
      DeviceDinder/app/src/main/java/com/telpo/devicedinder/MainActivity.java
  22. +22
    -0
      DeviceDinder/app/src/main/java/com/telpo/devicedinder/TelpoLinkBroadcastReceiver.java
  23. +30
    -0
      DeviceDinder/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
  24. BIN
      DeviceDinder/app/src/main/res/drawable/alipay.png
  25. BIN
      DeviceDinder/app/src/main/res/drawable/back.png
  26. +9
    -0
      DeviceDinder/app/src/main/res/drawable/bg_circle_alipay_selector.xml
  27. +8
    -0
      DeviceDinder/app/src/main/res/drawable/bg_circle_selector.xml
  28. BIN
      DeviceDinder/app/src/main/res/drawable/binder.jpg
  29. +5
    -0
      DeviceDinder/app/src/main/res/drawable/custom_click_effect.xml
  30. +170
    -0
      DeviceDinder/app/src/main/res/drawable/ic_launcher_background.xml
  31. +30
    -0
      DeviceDinder/app/src/main/res/drawable/ic_launcher_foreground.xml
  32. BIN
      DeviceDinder/app/src/main/res/drawable/logo.png
  33. BIN
      DeviceDinder/app/src/main/res/drawable/offline.png
  34. +7
    -0
      DeviceDinder/app/src/main/res/drawable/shape_pressed.xml
  35. +7
    -0
      DeviceDinder/app/src/main/res/drawable/shape_un_pressed.xml
  36. +9
    -0
      DeviceDinder/app/src/main/res/drawable/svg_back.xml
  37. +21
    -0
      DeviceDinder/app/src/main/res/layout/activity_alipay.xml
  38. +89
    -0
      DeviceDinder/app/src/main/res/layout/activity_imei_and_sn.xml
  39. +174
    -0
      DeviceDinder/app/src/main/res/layout/activity_main.xml
  40. +6
    -0
      DeviceDinder/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  41. +6
    -0
      DeviceDinder/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  42. BIN
      DeviceDinder/app/src/main/res/mipmap-hdpi/ic_launcher.webp
  43. BIN
      DeviceDinder/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
  44. BIN
      DeviceDinder/app/src/main/res/mipmap-mdpi/ic_launcher.webp
  45. BIN
      DeviceDinder/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
  46. BIN
      DeviceDinder/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
  47. BIN
      DeviceDinder/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
  48. BIN
      DeviceDinder/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
  49. BIN
      DeviceDinder/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
  50. BIN
      DeviceDinder/app/src/main/res/mipmap-xxhdpi/qr_logo.png
  51. BIN
      DeviceDinder/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
  52. BIN
      DeviceDinder/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
  53. +7
    -0
      DeviceDinder/app/src/main/res/values-night/themes.xml
  54. +11
    -0
      DeviceDinder/app/src/main/res/values/colors.xml
  55. +10
    -0
      DeviceDinder/app/src/main/res/values/strings.xml
  56. +9
    -0
      DeviceDinder/app/src/main/res/values/themes.xml
  57. +13
    -0
      DeviceDinder/app/src/main/res/xml/backup_rules.xml
  58. +19
    -0
      DeviceDinder/app/src/main/res/xml/data_extraction_rules.xml
  59. +17
    -0
      DeviceDinder/app/src/test/java/com/telpo/devicedinder/ExampleUnitTest.java
  60. +5
    -0
      DeviceDinder/build.gradle
  61. +21
    -0
      DeviceDinder/gradle.properties
  62. BIN
      DeviceDinder/gradle/wrapper/gradle-wrapper.jar
  63. +6
    -0
      DeviceDinder/gradle/wrapper/gradle-wrapper.properties
  64. +185
    -0
      DeviceDinder/gradlew
  65. +89
    -0
      DeviceDinder/gradlew.bat
  66. +16
    -0
      DeviceDinder/settings.gradle
  67. +17
    -0
      TelpoLinkAndroid/.gitignore
  68. +3
    -0
      TelpoLinkAndroid/.idea/.gitignore
  69. +32
    -0
      TelpoLinkAndroid/.idea/assetWizardSettings.xml
  70. BIN
      TelpoLinkAndroid/.idea/caches/build_file_checksums.ser
  71. +6
    -0
      TelpoLinkAndroid/.idea/compiler.xml
  72. +17
    -0
      TelpoLinkAndroid/.idea/deploymentTargetDropDown.xml
  73. +46
    -0
      TelpoLinkAndroid/.idea/encodings.xml
  74. +29
    -0
      TelpoLinkAndroid/.idea/gradle.xml
  75. +145
    -0
      TelpoLinkAndroid/.idea/jarRepositories.xml
  76. +6
    -0
      TelpoLinkAndroid/.idea/kotlinc.xml
  77. +9
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_gesture_imageview_jar.xml
  78. +10
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_iotaidl_release_aar.xml
  79. +9
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_pinyin4j_2_5_0_jar.xml
  80. +9
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_reactor_core_3_3_17_RELEASE_jar.xml
  81. +9
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_tuicontact_libs_tinypinyin_2_0_1_jar.xml
  82. +15
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml
  83. +11
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_annotation_annotation_1_2_0.xml
  84. +12
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_0_0_aar.xml
  85. +16
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_3_1_aar.xml
  86. +13
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_3_1_aar.xml
  87. +11
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml
  88. +12
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml
  89. +12
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml
  90. +13
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml
  91. +11
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml
  92. +11
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml
  93. +11
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_0_1_aar.xml
  94. +9
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3.xml
  95. +9
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_1.xml
  96. +16
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml
  97. +16
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_core_core_1_5_0_aar.xml
  98. +12
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml
  99. +12
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml
  100. +0
    -0
      TelpoLinkAndroid/.idea/libraries/Gradle__androidx_datastore_datastore_1_0_0_aar.xml

+ 15
- 0
DeviceDinder/.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

+ 3
- 0
DeviceDinder/.idea/.gitignore 파일 보기

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

+ 116
- 0
DeviceDinder/.idea/codeStyles/Project.xml 파일 보기

@@ -0,0 +1,116 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<codeStyleSettings language="XML">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
</code_scheme>
</component>

+ 6
- 0
DeviceDinder/.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>

+ 6
- 0
DeviceDinder/.idea/encodings.xml 파일 보기

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

+ 20
- 0
DeviceDinder/.idea/gradle.xml 파일 보기

@@ -0,0 +1,20 @@
<?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="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="Embedded JDK" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

+ 8
- 0
DeviceDinder/.idea/misc.xml 파일 보기

@@ -0,0 +1,8 @@
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" 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>

+ 6
- 0
DeviceDinder/.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>

+ 1
- 0
DeviceDinder/app/.gitignore 파일 보기

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

+ 77
- 0
DeviceDinder/app/build.gradle 파일 보기

@@ -0,0 +1,77 @@
plugins {
id 'com.android.application'
}

android {
namespace 'com.telpo.devicedinder'
compileSdk 33

defaultConfig {
applicationId "com.telpo.devicedinder"
minSdk 26
targetSdk 33
versionCode 1
versionName "1.0.19"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
archivesBaseName("Devicedinder_${versionName}")
}

signingConfigs {

/* debug {
keyAlias 'IoTTestKey'
keyPassword 'test1234'
storeFile file('config/test.release.keystore.jks')
storePassword 'admin1234'
}

release {
keyAlias 'IoTTestKey'
keyPassword 'test1234'
storeFile file('config/test.release.keystore.jks')
storePassword 'admin1234'
}*/
//系统应用调试
debug {
keyAlias 'platform'
keyPassword '123456'
storeFile file('config/platform.keystore')
storePassword '123456'
}

release {
keyAlias 'platform'
keyPassword '123456'
storeFile file('config/platform.keystore')
storePassword '123456'
}
}


buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_16
targetCompatibility JavaVersion.VERSION_16
}
}

dependencies {

implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'com.blankj:utilcodex:1.31.1'
implementation 'com.google.zxing:core:3.3.3' // 引入库
implementation 'com.google.android.gms:play-services-location:19.0.1'
}

BIN
DeviceDinder/app/config/platform.keystore 파일 보기


BIN
DeviceDinder/app/config/test.release.keystore.jks 파일 보기


+ 21
- 0
DeviceDinder/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

BIN
DeviceDinder/app/release/Devicedinder_V0.0.1.20230626-release.apk 파일 보기


+ 20
- 0
DeviceDinder/app/release/output-metadata.json 파일 보기

@@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.telpo.devicedinder",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1,
"versionName": "V0.0.1.20230626",
"outputFile": "Devicedinder_V0.0.1.20230626-release.apk"
}
],
"elementType": "File"
}

+ 26
- 0
DeviceDinder/app/src/androidTest/java/com/telpo/devicedinder/ExampleInstrumentedTest.java 파일 보기

@@ -0,0 +1,26 @@
package com.telpo.devicedinder;

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.telpo.devicedinder", appContext.getPackageName());
}
}

+ 63
- 0
DeviceDinder/app/src/main/AndroidManifest.xml 파일 보기

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:sharedUserId="android.uid.system">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />

<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
tools:ignore="ProtectedPermissions" />

<application
android:name=".BindApplication"
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.AppCompat.Light.NoActionBar"
tools:targetApi="31">

<activity
android:name=".AlipayActivity"
android:exported="true">

</activity>

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

<activity
android:name=".IMEIAndSNActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver android:name=".TelpoLinkBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1000">
<action android:name="PUT_IOT_CONNECTION_STATUS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>

</application>

</manifest>

+ 47
- 0
DeviceDinder/app/src/main/java/com/telpo/devicedinder/AlipayActivity.java 파일 보기

@@ -0,0 +1,47 @@
package com.telpo.devicedinder;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class AlipayActivity extends AppCompatActivity {

private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alipay);
button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

ComponentName componentName = new ComponentName("com.eg.android.AlipayGphone", "com.alipay.watch.ui.MainActivity");
// 这里是 包名 以及 页面类的全称
Intent intent = new Intent();
//
intent.setComponent(componentName);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

}
});

}

/**
* {@inheritDoc}
* <p>
* Dispatch onPause() to fragments.
*/
@Override
protected void onPause() {
super.onPause();
finish();
}
}

+ 43
- 0
DeviceDinder/app/src/main/java/com/telpo/devicedinder/BindApplication.java 파일 보기

@@ -0,0 +1,43 @@
package com.telpo.devicedinder;

import android.app.Activity;
import android.app.Application;
import android.content.ContentProvider;
import android.os.Build;

public class BindApplication extends Application {

/**
* Called when the application is starting, before any activity, service,
* or receiver objects (excluding content providers) have been created.
*
* <p>Implementations should be as quick as possible (for example using
* lazy initialization of state) since the time spent in this function
* directly impacts the performance of starting the first activity,
* service, or receiver in a process.</p>
*
* <p>If you override this method, be sure to call {@code super.onCreate()}.</p>
*
* <p class="note">Be aware that direct boot may also affect callback order on
* Android {@link Build.VERSION_CODES#N} and later devices.
* Until the user unlocks the device, only direct boot aware components are
* allowed to run. You should consider that all direct boot unaware
* components, including such {@link ContentProvider}, are
* disabled until user unlock happens, especially when component callback
* order matters.</p>
*/
@Override
public void onCreate() {
super.onCreate();
}

private static boolean isMainActivity =false;

public static boolean isIsMainActivity() {
return isMainActivity;
}

public static void setIsMainActivity(boolean isMainActivity) {
BindApplication.isMainActivity = isMainActivity;
}
}

+ 136
- 0
DeviceDinder/app/src/main/java/com/telpo/devicedinder/IMEIAndSNActivity.java 파일 보기

@@ -0,0 +1,136 @@
package com.telpo.devicedinder;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.PhoneUtils;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;

public class IMEIAndSNActivity extends AppCompatActivity {

private TextView imei_tv, sn_tv;
private ImageView imei_iv, sn_iv;
private long exitTime = 0;
private int clickCount = 0;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imei_and_sn);

initView();
}

private void initView() {
imei_tv = findViewById(R.id.imei_tv);
sn_tv = findViewById(R.id.sn_tv);
imei_iv = findViewById(R.id.imei_iv);
sn_iv = findViewById(R.id.sn_iv);

imei_iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((System.currentTimeMillis() - exitTime) > 3000) {
exitTime = System.currentTimeMillis();
clickCount = 0; // 重置点击计数
} else {
clickCount++;
if (clickCount == 4) {
// 连续点击5次的逻辑
clickCount = 0; // 重置点击计数
// startActivity(new Intent(IMEIAndSNActivity.this,IMEIAndSNActivity.class));
//设置跳转的页面
}
}
}
});

initData();
}

public void btnBack(View view) {
finish();
}

private void initData() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
String imei = PhoneUtils.getIMEI();
String sn= PhoneUtils.getSerial();

imei_tv.setText("IMEI: "+ imei);
sn_tv.setText("SN: "+ sn);

if (imei.isEmpty()) {
LogUtils.e("获取 imei 失败");
} else {
BarCodeEncoder barCodeEncoder = new BarCodeEncoder();
Bitmap barCode = barCodeEncoder.creatBarcode(imei, 600, 200);
imei_iv.setImageBitmap(barCode);
}
if (sn.isEmpty()) {
LogUtils.e("获取 sn 失败");
} else {
BarCodeEncoder barCodeEncoder = new BarCodeEncoder();
Bitmap barCode = barCodeEncoder.creatBarcode(sn, 600, 200);
sn_iv.setImageBitmap(barCode);
}
}

public class BarCodeEncoder {
private static final int WHITE = 0x00000000;
private static final int BLACK = 0xFF000000;

private static BarcodeFormat barcodeFormat= BarcodeFormat.CODE_128;

//生成条形码
public static Bitmap creatBarcode(String contents, int desiredWidth,int desiredHeight) {
MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix result=null;
try {
result = writer.encode(contents, barcodeFormat, desiredWidth,
desiredHeight);
} catch (WriterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int width = result.getWidth();
int height = result.getHeight();
int[] pixels = new int[width * height];
// All are 0, or black, by default
for (int y = 0; y < height; y++) {
int offset = y * width;
for (int x = 0; x < width; x++) {
pixels[offset + x] = result.get(x, y) ? BLACK : WHITE;
}
}
Bitmap bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
}

}
}

+ 502
- 0
DeviceDinder/app/src/main/java/com/telpo/devicedinder/MainActivity.java 파일 보기

@@ -0,0 +1,502 @@
package com.telpo.devicedinder;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;

import android.Manifest;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.blankj.utilcode.util.CollectionUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.PermissionUtils;
import com.blankj.utilcode.util.PhoneUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationCallback;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationResult;
import com.google.android.gms.location.LocationServices;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE = 5364168;
private String url = "https://static.cos.zqycloud.com/zqwkt?scanChildImei=";
private String imei = "";
private ImageView img_qr_code, img_qr_code_b;
private static final int LOCATION_PERMISSION_REQUEST_CODE = 100;
private FusedLocationProviderClient fusedLocationProviderClient;
private LocationCallback locationCallback;
public static String[] permissions = {
"android.permission.READ_PHONE_STATE"};
private BroadcastReceiver broadcastReceiver;
private LocationRequest locationRequest;

private LinearLayout c_port_layout, b_port_layout;
private LinearLayout lin_code_tip, lin_code_tip2;

private long exitTime = 0;
private int clickCount = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img_qr_code = findViewById(R.id.img_qr_code);
img_qr_code_b = findViewById(R.id.img_qr_code_b);
c_port_layout = findViewById(R.id.c_port_layout);
b_port_layout = findViewById(R.id.b_port_layout);
lin_code_tip = findViewById(R.id.lin_code_tip);
lin_code_tip2 = findViewById(R.id.lin_code_tip2);
BindApplication.setIsMainActivity(true);

img_qr_code.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((System.currentTimeMillis() - exitTime) > 3000) {
exitTime = System.currentTimeMillis();
clickCount = 0; // 重置点击计数
} else {
clickCount++;
if (clickCount == 4) {
// 连续点击5次的逻辑
clickCount = 0; // 重置点击计数
startActivity(new Intent(MainActivity.this,IMEIAndSNActivity.class));
}
}
}
});

img_qr_code_b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((System.currentTimeMillis() - exitTime) > 3000) {
exitTime = System.currentTimeMillis();
clickCount = 0; // 重置点击计数
} else {
clickCount++;
if (clickCount == 4) {
// 连续点击5次的逻辑
clickCount = 0; // 重置点击计数
startActivity(new Intent(MainActivity.this,IMEIAndSNActivity.class));
}
}
}
});

/*broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// 在这里处理接收到的广播消息
if (intent.getAction().equals("aciton_silence_preiod")) {
Log.i(getClass().getSimpleName(), "onReceive: aciton_silence_preiod");
finish();//收到激活的广播,自动关闭当前页面
}
}
};*/

String activate = Settings.System.getString(MainActivity.this.getContentResolver(), "Activate");
if (TextUtils.isEmpty(activate) || activate.equals("0")) {
getActivateHandel.sendEmptyMessageDelayed(1, 10 * 1000);
}

int prot = Settings.System.getInt(getContentResolver(), "notification_icon_show", 0);

/*if (prot == 0) {
c_port_layout.setVisibility(View.VISIBLE);
b_port_layout.setVisibility(View.GONE);
getQrCode();
} else {
c_port_layout.setVisibility(View.GONE);
b_port_layout.setVisibility(View.VISIBLE);*/
getQrCodeB();
// }

updateUi();

//在Android中,您可以使用ConnectivityManager类来检测设备是否连接到网络。以下是一个示例代码片段,展示如何使用ConnectivityManager来检测网络连接状态:
//
//```java
//// 获取ConnectivityManager实例
//ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//
//// 检查网络连接状态
//NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
//if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
// // 设备已连接到网络
// // 执行相关操作
//} else {
// // 设备未连接到网络
// // 执行相关操作
//}
//```
//
//在上面的代码中,首先获取ConnectivityManager的实例。然后,通过调用getActiveNetworkInfo()方法获取当前活动的网络信息。如果返回的NetworkInfo对象不为空且已连接,说明设备已连接到网络。
//
//请注意,为了执行网络连接状态的检查,您需要在AndroidManifest.xml文件中添加以下权限:
//
//```xml
//<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
//```
//
//这将允许应用程序访问网络状态信息。
//
//希望这对您有帮助!如果您有任何其他问题,请随时提问。
/*

fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);

// 创建位置请求
locationRequest = new LocationRequest();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(5000); // 5秒钟获取一次位置

// 创建位置回调
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
if (locationResult == null) {
Log.i(getClass().getSimpleName(), "onLocationResult: locationResult null");
return;
}
for (Location location : locationResult.getLocations()) {
// 处理获取到的位置信息
double latitude = location.getLatitude(); // 获取纬度
double longitude = location.getLongitude(); // 获取经度
float accuracy = location.getAccuracy(); // 获取精度
// 处理获取到的位置信息
Log.i(getClass().getSimpleName(), "onLocationChanged: 获取纬度:" + latitude + ",获取经度:" + longitude + ",获取精度:" + accuracy);
}
}
};

// 检查位置权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
// 有位置权限,开始请求位置更新
Log.i(getClass().getSimpleName(), "onCreate:有位置权限 ");
fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, null);
} else {
// 请求位置权限
Log.i(getClass().getSimpleName(), "onCreate:请求位置权限 ");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_PERMISSION_REQUEST_CODE);
}*/

}

//判断是否进行过网络连接
private void updateUi() {
String deviceSecret = Settings.System.getString(MainActivity.this.getContentResolver(), "deviceSecret");
if (TextUtils.isEmpty(deviceSecret)) {
// lin_code_tip.setVisibility(View.VISIBLE);
lin_code_tip2.setVisibility(View.VISIBLE);
getActivateHandel.sendEmptyMessageDelayed(2, 10 * 1000);
} else {
// lin_code_tip.setVisibility(View.GONE);
lin_code_tip2.setVisibility(View.GONE);
}
}

private Handler getActivateHandel = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
if (msg.what == 1) {
String activate = Settings.System.getString(MainActivity.this.getContentResolver(), "Activate");
if (TextUtils.isEmpty(activate)) {
getActivateHandel.sendEmptyMessageDelayed(1, 10 * 1000);
} else {
Log.e("activate ===================", activate);
if (activate.equals("1")) {
MainActivity.this.finish();
} else {
getActivateHandel.sendEmptyMessageDelayed(1, 10 * 1000);
}
}
}else if (msg.what == 2){
updateUi();
}
}
};

@Override
protected void onDestroy() {
super.onDestroy();
// 停止位置更新
getActivateHandel.removeMessages(1);
}

private void setOffLineUi() {
Log.i(getClass().getSimpleName(), "setOffLineUi: ");
runOnUiThread(() -> {
if (img_qr_code != null) {
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.offline, null);
img_qr_code.setBackground(drawable);
}
});
}

private void getQrCode() {

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
/*imei = PhoneUtils.getIMEI();
// deviceName = "864316050000001";
if (imei.isEmpty()) {
LogUtils.e("获取 deviceName 失败");
} else {
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
String content = url + imei;
Bitmap qrCode = qrCodeEncoder.createQRCode(content, 600, 600);
img_qr_code.setImageBitmap(qrCode);
}*/

imei = PhoneUtils.getIMEI();
if (imei.isEmpty()) {
LogUtils.e("获取 deviceName 失败");
} else {
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
String content = "https://toolkit.diegodad.com/sns/Spirit?id=";//https://toolkit.diegodad.com/sns/Spirit?id=imei,rfid,iccid,XXJ,rfid获取不到默认是空字符串,没插卡iccid也是空字符串
String iccid = "";
String rfid="";
if (hasSimCard()) {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
iccid = telephonyManager.getSimSerialNumber();
rfid="";
content = content + imei + ","+rfid +"," + iccid+",XXJ";
} else {
content = content + imei + ","+rfid +"," + iccid+",XXJ";
}
Bitmap qrCode = qrCodeEncoder.createQRCode(content, 600, 600);
img_qr_code.setImageBitmap(qrCode);
}
}

private void getQrCodeB() {

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
imei = PhoneUtils.getIMEI();
if (imei.isEmpty()) {
LogUtils.e("获取 deviceName 失败");
} else {
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
String content = "https://toolkit.diegodad.com/sns/Spirit?id=";//https://toolkit.diegodad.com/sns/Spirit?id=imei,rfid,iccid,XXJ,rfid获取不到默认是空字符串,没插卡iccid也是空字符串
String iccid = "";
String rfid="";
if (hasSimCard()) {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
iccid = telephonyManager.getSimSerialNumber();
rfid="";
content = content + imei + ","+rfid +"," + iccid+",XXJ";
} else {
content = content + imei + ","+rfid +"," + iccid+",XXJ";
}
Bitmap qrCode = qrCodeEncoder.createQRCode(content, 600, 600);
img_qr_code_b.setImageBitmap(qrCode);
}
}

/**
* 判断是否包含SIM卡
*
* @return 状态
*/
public boolean hasSimCard() {
int simState = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getSimState();
boolean result = true;
switch (simState) {
case TelephonyManager.SIM_STATE_ABSENT:
case TelephonyManager.SIM_STATE_UNKNOWN:
result = false; // 没有SIM卡
LogUtils.d("no sim card");
break;
}
return result;
}

private void initPermission() {
PermissionUtils.permission(permissions)
.callback(new PermissionUtils.FullCallback() {
@SuppressLint("MissingPermission")
@Override
public void onGranted(@NonNull List<String> granted) {

// 我们要求权限必须全部通过
if (!granted.containsAll(CollectionUtils.newArrayList(permissions))) {
ToastUtils.showShort("权限必须全部通过");
} else {
// 在权限都获取后,开始初始化
getIotStatus();
}
}

@Override
public void onDenied(@NonNull List<String> deniedForever, @NonNull List<String> denied) {

}
}).request();
}

Handler handler;

private void getIotStatus() {
if (handler == null) {
handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//提示获取IOT平台状态失败
ToastUtils.showShort("获取IOT平台状态失败");
setOffLineUi();

}
}, 5000);
}

/*Intent intent = new Intent("GET_IOT_CONNECTION_STATUS");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, pendingIntent);
Log.i(getClass().getSimpleName(), "sendIotStatus: GET_IOT_CONNECTION_STATUS");*/
/*
Intent broadcastIntent = new Intent("GET_IOT_CONNECTION_STATUS");
broadcastIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
sendBroadcast(broadcastIntent);
*/

Log.i(getClass().getSimpleName(), "getIotStatus:send 170 ");
Intent intent = new Intent();
intent.setAction("GET_IOT_CONNECTION_STATUS");
intent.setPackage("com.telpo.monitorservice");
sendBroadcast(intent);

}

public void btnBack(View view) {
finish();
}

public class QRCodeEncoder {
private final int WHITE = 0xFFFFFFFF;
private final int BLACK = 0xFF000000;

// 生成二维码
public Bitmap createQRCode(String content, int width, int height) {
try {
// 创建二维码
QRCodeWriter writer = new QRCodeWriter();
// 设置二维码的参数
Map hints = new HashMap<>();
// 设置字符编码
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
// 生成二维码
BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
// 获取二维码的宽度和高度
int[] pixels = new int[width * height];
// 按照二维码的算法,逐个生成二维码的图片,两个for循环是图片横列扫描的结果
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * width + x] = BLACK;
} else {
pixels[y * width + x] = WHITE;
}
}
}
// 生成二维码图片
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
// return addLogo(bitmap, BitmapFactory.decodeResource(getResources(), R.mipmap.qr_logo));
} catch (WriterException e) {
e.printStackTrace();
return null;
}
}

/**
* 在二维码中间添加Logo图案
*/
private static Bitmap addLogo(Bitmap src, Bitmap logo) {
if (src == null) {
return null;
}
if (logo == null) {
return src;
}
//获取图片的宽高
int srcWidth = src.getWidth();
int srcHeight = src.getHeight();
int logoWidth = logo.getWidth();
int logoHeight = logo.getHeight();
if (srcWidth == 0 || srcHeight == 0) {
return null;
}
if (logoWidth == 0 || logoHeight == 0) {
return src;
}
//logo大小为二维码整体大小的1/5
float scaleFactor = srcWidth * 1.0f / 5 / logoWidth;
Bitmap bitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888);
try {
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(src, 0, 0, null);
canvas.scale(scaleFactor, scaleFactor, srcWidth / 2, srcHeight / 2);
canvas.drawBitmap(logo, (srcWidth - logoWidth) / 2, (srcHeight - logoHeight) / 2, null);
canvas.save();
canvas.restore();
} catch (Exception e) {
bitmap = null;
e.getStackTrace();
}
return bitmap;
}
}
}

+ 22
- 0
DeviceDinder/app/src/main/java/com/telpo/devicedinder/TelpoLinkBroadcastReceiver.java 파일 보기

@@ -0,0 +1,22 @@
package com.telpo.devicedinder;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.util.Log;

import com.blankj.utilcode.util.LogUtils;

public class TelpoLinkBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
LogUtils.e("TelpoLink接受到广播" + action);
if (action != null) {
if (action.equals("PUT_IOT_CONNECTION_STATUS")){
Log.i(getClass().getSimpleName(), "onReceive: PUT_IOT_CONNECTION_STATUS");
}
}
}
}

+ 30
- 0
DeviceDinder/app/src/main/res/drawable-v24/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>

BIN
DeviceDinder/app/src/main/res/drawable/alipay.png 파일 보기

Before After
Width: 328  |  Height: 545  |  Size: 119KB

BIN
DeviceDinder/app/src/main/res/drawable/back.png 파일 보기

Before After
Width: 256  |  Height: 320  |  Size: 5.6KB

+ 9
- 0
DeviceDinder/app/src/main/res/drawable/bg_circle_alipay_selector.xml 파일 보기

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="20dp" />
<solid android:color="@color/blue2"/>
</shape>
</item>
</selector>

+ 8
- 0
DeviceDinder/app/src/main/res/drawable/bg_circle_selector.xml 파일 보기

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="@color/blue1"/>
</shape>
</item>
</selector>

BIN
DeviceDinder/app/src/main/res/drawable/binder.jpg 파일 보기

Before After
Width: 650  |  Height: 650  |  Size: 27KB

+ 5
- 0
DeviceDinder/app/src/main/res/drawable/custom_click_effect.xml 파일 보기

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/shape_un_pressed" />
</selector>

+ 170
- 0
DeviceDinder/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>

+ 30
- 0
DeviceDinder/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>

BIN
DeviceDinder/app/src/main/res/drawable/logo.png 파일 보기

Before After
Width: 288  |  Height: 288  |  Size: 11KB

BIN
DeviceDinder/app/src/main/res/drawable/offline.png 파일 보기

Before After
Width: 24  |  Height: 24  |  Size: 599B

+ 7
- 0
DeviceDinder/app/src/main/res/drawable/shape_pressed.xml 파일 보기

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#E4E4E4"/>

</shape>

+ 7
- 0
DeviceDinder/app/src/main/res/drawable/shape_un_pressed.xml 파일 보기

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#FFFFFF"/>

</shape>

+ 9
- 0
DeviceDinder/app/src/main/res/drawable/svg_back.xml 파일 보기

@@ -0,0 +1,9 @@
<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="#FF000000"
android:pathData="M624.8,204 L585.2,164.5 219.6,530.2 585.2,895.9 624.8,856.3 298.7,530.2Z"/>
</vector>

+ 21
- 0
DeviceDinder/app/src/main/res/layout/activity_alipay.xml 파일 보기

@@ -0,0 +1,21 @@
<?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"
tools:context=".AlipayActivity"
android:background="@drawable/alipay">

<Button
android:id="@+id/button"
android:layout_width="262px"
android:layout_height="68px"
android:text="立即开通"
android:textColor="@color/white"
android:background="@drawable/bg_circle_alipay_selector"
android:layout_marginBottom="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

+ 89
- 0
DeviceDinder/app/src/main/res/layout/activity_imei_and_sn.xml 파일 보기

@@ -0,0 +1,89 @@
<?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="match_parent"
android:orientation="vertical">

<LinearLayout
android:id="@+id/top_colllogs_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">

<FrameLayout
android:layout_width="50dp"
android:layout_height="match_parent"
android:onClick="btnBack">

<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/svg_back" />

</FrameLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:gravity="center"
android:text="设备信息"
android:textColor="@color/black"
android:textSize="25sp"
android:textStyle="bold" />
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#D1D1D1" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">

<TextView
android:id="@+id/imei_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:text="IMEI:"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold" />

<ImageView
android:id="@+id/imei_iv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp" />

<TextView
android:id="@+id/sn_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:layout_marginTop="30dp"
android:layout_marginRight="60dp"
android:text="SN:"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold" />

<ImageView
android:id="@+id/sn_iv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp" />

</LinearLayout>

</LinearLayout>

+ 174
- 0
DeviceDinder/app/src/main/res/layout/activity_main.xml 파일 보기

@@ -0,0 +1,174 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity">

<LinearLayout
android:id="@+id/top_colllogs_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">

<FrameLayout
android:layout_width="50dp"
android:layout_height="match_parent"
android:onClick="btnBack">

<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/svg_back" />
</FrameLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:gravity="center"
android:text="设备绑定"
android:textColor="@color/black"
android:textSize="25sp"
android:textStyle="bold" />
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#D1D1D1" />

<LinearLayout
android:id="@+id/c_port_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:orientation="vertical">

<LinearLayout
android:id="@+id/lin_logo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey"
android:gravity="center_horizontal"
android:orientation="vertical">

<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginTop="10dp"
android:background="@drawable/bg_circle_selector"
android:gravity="center"
android:text="1"
android:textColor="@color/white" />

<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:text="@string/str_tv_select2" />

<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="10dp"
android:src="@mipmap/qr_logo" />
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#FFFFFF" />

<LinearLayout
android:id="@+id/lin_code"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey"
android:gravity="center_horizontal"
android:orientation="vertical">

<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginTop="10dp"
android:background="@drawable/bg_circle_selector"
android:gravity="center"
android:text="2"
android:textColor="@color/white" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/str_tv_bind" />

<ImageView
android:id="@+id/img_qr_code"
android:layout_width="160dp"
android:layout_height="160dp" />

<LinearLayout
android:id="@+id/lin_code_tip"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/str_tv_tip"
android:textColor="@color/red"/>

</LinearLayout>

</LinearLayout>

</LinearLayout>

<LinearLayout
android:id="@+id/b_port_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"
android:gravity="center"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_tv_bind_b2" />

<ImageView
android:id="@+id/img_qr_code_b"
android:layout_width="160dp"
android:layout_height="160dp"
android:layout_marginTop="10dp" />

<LinearLayout
android:id="@+id/lin_code_tip2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/str_tv_tip"
android:textColor="@color/red"/>

</LinearLayout>

</LinearLayout>

</LinearLayout>

+ 6
- 0
DeviceDinder/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>

+ 6
- 0
DeviceDinder/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>

BIN
DeviceDinder/app/src/main/res/mipmap-hdpi/ic_launcher.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-mdpi/ic_launcher.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-xhdpi/ic_launcher.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-xxhdpi/qr_logo.png 파일 보기

Before After
Width: 70  |  Height: 70  |  Size: 3.4KB

BIN
DeviceDinder/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp 파일 보기

Before After

BIN
DeviceDinder/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp 파일 보기

Before After

+ 7
- 0
DeviceDinder/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.DeviceDinder" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your dark theme here. -->
<!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
</style>
</resources>

+ 11
- 0
DeviceDinder/app/src/main/res/values/colors.xml 파일 보기

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="grey">#CCCCCCCC</color>
<color name="grey1">#6CCCCCCC</color>
<color name="blue">#FF0000FF</color>
<color name="blue1">#FF00CCFF</color>
<color name="blue2">#1677FF</color>
<color name="red">#E3170D</color>
</resources>

+ 10
- 0
DeviceDinder/app/src/main/res/values/strings.xml 파일 보기

@@ -0,0 +1,10 @@
<resources>
<string name="app_name">设备绑定</string>
<string name="str_tv_title_guide">设备绑定</string>
<string name="str_tv_select">搜索小程序\"中企微课堂\"</string>
<string name="str_tv_select2">搜索小程序\"迪爸工具箱\"</string>
<string name="str_tv_bind">扫码绑定学习机</string>
<string name="str_tv_bind_b">扫码绑定激活</string>
<string name="str_tv_bind_b2">微信扫码绑定设备</string>
<string name="str_tv_tip">确保设备联网正常</string>
</resources>

+ 9
- 0
DeviceDinder/app/src/main/res/values/themes.xml 파일 보기

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

<style name="Theme.DeviceDinder" parent="Base.Theme.DeviceDinder" />
</resources>

+ 13
- 0
DeviceDinder/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>

+ 19
- 0
DeviceDinder/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>

+ 17
- 0
DeviceDinder/app/src/test/java/com/telpo/devicedinder/ExampleUnitTest.java 파일 보기

@@ -0,0 +1,17 @@
package com.telpo.devicedinder;

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);
}
}

+ 5
- 0
DeviceDinder/build.gradle 파일 보기

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

+ 21
- 0
DeviceDinder/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

BIN
DeviceDinder/gradle/wrapper/gradle-wrapper.jar 파일 보기


+ 6
- 0
DeviceDinder/gradle/wrapper/gradle-wrapper.properties 파일 보기

@@ -0,0 +1,6 @@
#Thu Mar 21 15:07:12 CST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip

+ 185
- 0
DeviceDinder/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" "$@"

+ 89
- 0
DeviceDinder/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

+ 16
- 0
DeviceDinder/settings.gradle 파일 보기

@@ -0,0 +1,16 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "DeviceDinder"
include ':app'

+ 17
- 0
TelpoLinkAndroid/.gitignore 파일 보기

@@ -0,0 +1,17 @@
# Project exclude paths
/.gradle/
/build/
/tuicallkit/build/
/tuicallkit/build/intermediates/javac/debug/classes/
/tuichat/build/
/tuichat/build/intermediates/javac/debug/classes/
/tuicontact/build/
/tuicontact/build/intermediates/javac/debug/classes/
/tuiconversation/build/
/tuiconversation/build/intermediates/javac/debug/classes/
/tuicore/build/
/tuicore/build/intermediates/javac/debug/classes/
/tuigroup/build/
/tuigroup/build/intermediates/javac/debug/classes/
/tuisearch/build/
/tuisearch/build/intermediates/javac/debug/classes/

+ 3
- 0
TelpoLinkAndroid/.idea/.gitignore 파일 보기

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

+ 32
- 0
TelpoLinkAndroid/.idea/assetWizardSettings.xml 파일 보기

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WizardSettings">
<option name="children">
<map>
<entry key="vectorWizard">
<value>
<PersistentState>
<option name="children">
<map>
<entry key="vectorAssetStep">
<value>
<PersistentState>
<option name="values">
<map>
<entry key="assetSourceType" value="FILE" />
<entry key="outputName" value="svg_back" />
<entry key="sourceFile" value="C:\Users\Dell\Downloads\返回.svg" />
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</component>
</project>

BIN
TelpoLinkAndroid/.idea/caches/build_file_checksums.ser 파일 보기


+ 6
- 0
TelpoLinkAndroid/.idea/compiler.xml 파일 보기

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

+ 17
- 0
TelpoLinkAndroid/.idea/deploymentTargetDropDown.xml 파일 보기

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="$USER_HOME$/.android/avd/Pixel_2_API_30.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2022-05-26T03:21:07.570503Z" />
</component>
</project>

+ 46
- 0
TelpoLinkAndroid/.idea/encodings.xml 파일 보기

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/app/libs/pinyin4j-2.5.0.jar" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/ContentObserver" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/ContentObserver/CallLogsContentObserver.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/ContentObserver/ContactsContentObserver.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/ContentObserver/SmssContentObserver.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/android" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/android/ContactsMainActivity.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/android/TelephonyService.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/android/Utils.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/calllogfragment" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/calllogfragment/CallLogsFragment.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/contactsfragment" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/contactsfragment/AddContactsActivity.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/contactsfragment/AlphabetScrollBar.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/contactsfragment/PinyinUtils.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/contactsfragment/WhiteListFragment.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/dialfragment" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/model/dialfragment/EndActivity.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/model/dialfragment/FrequentContactsFragment.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/smsfragment" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/smsfragment/ChatActivity.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/contacts/smsfragment/SmsFragment.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/java/com/telpo/alink/phone/custome/telactivity/PhoneReceiver.java" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/activity_telpo_contacts.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/add_contacts.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/calllogs_indicator.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/calllogs_list_item.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/chat_activtity.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/chat_list_item_receive.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/chat_list_item_send.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/contacts_indicator.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/contacts_list_item.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/contacts_list_item_dub.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/dial_indicator.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_calllogs.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_contacts.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_dial.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/sms_indicator.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/sms_list_item.xml" charset="GBK" />
<file url="file://$PROJECT_DIR$/app/src/main/res/layout/smsfragment.xml" charset="GBK" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

+ 29
- 0
TelpoLinkAndroid/.idea/gradle.xml 파일 보기

@@ -0,0 +1,29 @@
<?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="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="11" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/tuicallkit" />
<option value="$PROJECT_DIR$/tuichat" />
<option value="$PROJECT_DIR$/tuicommunity" />
<option value="$PROJECT_DIR$/tuicontact" />
<option value="$PROJECT_DIR$/tuiconversation" />
<option value="$PROJECT_DIR$/tuicore" />
<option value="$PROJECT_DIR$/tuigroup" />
<option value="$PROJECT_DIR$/tuiofflinepush" />
<option value="$PROJECT_DIR$/tuisearch" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

+ 145
- 0
TelpoLinkAndroid/.idea/jarRepositories.xml 파일 보기

@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven3" />
<option name="name" value="maven3" />
<option name="url" value="http://mvnrepo.alibaba-inc.com/mvn/repository" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="http://maven.aliyun.com/nexus/content/repositories/releases/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven2" />
<option name="name" value="maven2" />
<option name="url" value="http://maven.aliyun.com/nexus/content/repositories/snapshots" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven4" />
<option name="name" value="maven4" />
<option name="url" value="http://mvnrepo.alibaba-inc.com/nexus/content/repositories/snapshots" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository" />
<option name="name" value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository" />
<option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/android/m2repository/" />
</remote-repository>
<remote-repository>
<option name="id" value="$USER_HOME$/Library/Android/sdk/extras/m2repository" />
<option name="name" value="$USER_HOME$/Library/Android/sdk/extras/m2repository" />
<option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/m2repository/" />
</remote-repository>
<remote-repository>
<option name="id" value="$USER_HOME$/Library/Android/sdk/extras/google/m2repository" />
<option name="name" value="$USER_HOME$/Library/Android/sdk/extras/google/m2repository" />
<option name="url" value="file:$USER_HOME$/Library/Android/sdk/extras/google/m2repository/" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenLocal" />
<option name="name" value="MavenLocal" />
<option name="url" value="file:$USER_HOME$/.m2/repository/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven13" />
<option name="name" value="maven13" />
<option name="url" value="http://mvnrepo.alibaba-inc.com/nexus/content/repositories/releases" />
</remote-repository>
<remote-repository>
<option name="id" value="maven15" />
<option name="name" value="maven15" />
<option name="url" value="http://maven.aliyun.com/repositories/snapshots" />
</remote-repository>
<remote-repository>
<option name="id" value="maven14" />
<option name="name" value="maven14" />
<option name="url" value="http://maven.aliyun.com/repositories/releases/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven3" />
<option name="name" value="maven3" />
<option name="url" value="http://maven.aliyun.com/nexus/content/repositories/releases" />
</remote-repository>
<remote-repository>
<option name="id" value="maven6" />
<option name="name" value="maven6" />
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://maven.aliyun.com/nexus/content/repositories/releases/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven2" />
<option name="name" value="maven2" />
<option name="url" value="https://maven.aliyun.com/nexus/content/repositories/snapshots/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven6" />
<option name="name" value="maven6" />
<option name="url" value="http://developer.huawei.com/repo/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven3" />
<option name="name" value="maven3" />
<option name="url" value="https://maven.aliyun.com/repository/google" />
</remote-repository>
<remote-repository>
<option name="id" value="maven4" />
<option name="name" value="maven4" />
<option name="url" value="https://maven.aliyun.com/repository/central" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://maven.aliyun.com/repository/releases" />
</remote-repository>
<remote-repository>
<option name="id" value="maven5" />
<option name="name" value="maven5" />
<option name="url" value="https://maven.aliyun.com/repository/gradle-plugin" />
</remote-repository>
<remote-repository>
<option name="id" value="maven2" />
<option name="name" value="maven2" />
<option name="url" value="https://maven.aliyun.com/repository/jcenter" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven6" />
<option name="name" value="maven6" />
<option name="url" value="https://maven.google.com" />
</remote-repository>
<remote-repository>
<option name="id" value="maven7" />
<option name="name" value="maven7" />
<option name="url" value="https://jitpack.io" />
</remote-repository>
</component>
</project>

+ 6
- 0
TelpoLinkAndroid/.idea/kotlinc.xml 파일 보기

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.6.21" />
</component>
</project>

+ 9
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_gesture_imageview_jar.xml 파일 보기

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Gradle: C./Users/huangb/Downloads/studyproject/TelpoLinkAndroid/app/libs/gesture-imageview.jar">
<CLASSES>
<root url="jar://$PROJECT_DIR$/app/libs/gesture-imageview.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 10
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_iotaidl_release_aar.xml 파일 보기

@@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="Gradle: C./Users/huangb/Downloads/studyproject/TelpoLinkAndroid/app/libs/iotaidl-release.aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/12652cb3ec11559926325f1c32ef071d/jetified-iotaidl-release/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/12652cb3ec11559926325f1c32ef071d/jetified-iotaidl-release/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 9
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_pinyin4j_2_5_0_jar.xml 파일 보기

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Gradle: C./Users/huangb/Downloads/studyproject/TelpoLinkAndroid/app/libs/pinyin4j-2.5.0.jar">
<CLASSES>
<root url="jar://$PROJECT_DIR$/app/libs/pinyin4j-2.5.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 9
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_app_libs_reactor_core_3_3_17_RELEASE_jar.xml 파일 보기

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Gradle: C./Users/huangb/Downloads/studyproject/TelpoLinkAndroid/app/libs/reactor-core-3.3.17.RELEASE.jar">
<CLASSES>
<root url="jar://$PROJECT_DIR$/app/libs/reactor-core-3.3.17.RELEASE.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 9
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__C__Users_huangb_Downloads_studyproject_TelpoLinkAndroid_tuicontact_libs_tinypinyin_2_0_1_jar.xml 파일 보기

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Gradle: C./Users/huangb/Downloads/studyproject/TelpoLinkAndroid/tuicontact/libs/tinypinyin-2.0.1.jar">
<CLASSES>
<root url="jar://$PROJECT_DIR$/tuicontact/libs/tinypinyin-2.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 15
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml 파일 보기

@@ -0,0 +1,15 @@
<component name="libraryTable">
<library name="Gradle: androidx.activity:activity:1.2.4@aar">
<ANNOTATIONS>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/44df0c61241eb04d6ac366552b94a085/jetified-activity-1.2.4/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/44df0c61241eb04d6ac366552b94a085/jetified-activity-1.2.4/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/44df0c61241eb04d6ac366552b94a085/jetified-activity-1.2.4/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.2.4/2572345ff3e71e4e97140b01423cb80765b5b3e5/activity-1.2.4-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 11
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_annotation_annotation_1_2_0.xml 파일 보기

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: androidx.annotation:annotation:1.2.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.2.0/57136ff68ee784c6e19db34ed4a175338fadfde1/annotation-1.2.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.2.0/8945212022e5276658ab7864714ced3553ea724a/annotation-1.2.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 12
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_0_0_aar.xml 파일 보기

@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.annotation:annotation-experimental:1.0.0@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/993444cf1c9ca35c4d3abf4ec2ff67a9/jetified-annotation-experimental-1.0.0/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/993444cf1c9ca35c4d3abf4ec2ff67a9/jetified-annotation-experimental-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation-experimental/1.0.0/2408f6cb8f31ffabdd88e1365f82914c251e44dc/annotation-experimental-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 16
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_3_1_aar.xml 파일 보기

@@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: androidx.appcompat:appcompat:1.3.1@aar">
<ANNOTATIONS>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/01602633dde794bf3454c1b514d7d3f8/appcompat-1.3.1/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/01602633dde794bf3454c1b514d7d3f8/appcompat-1.3.1/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/01602633dde794bf3454c1b514d7d3f8/appcompat-1.3.1/res" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/01602633dde794bf3454c1b514d7d3f8/appcompat-1.3.1/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat/1.3.1/45a346a05e7ff27a01c59452379c5939cbb53c03/appcompat-1.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 13
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_3_1_aar.xml 파일 보기

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Gradle: androidx.appcompat:appcompat-resources:1.3.1@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e06e7ffa1eb3df813de00353d7289220/jetified-appcompat-resources-1.3.1/AndroidManifest.xml" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e06e7ffa1eb3df813de00353d7289220/jetified-appcompat-resources-1.3.1/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e06e7ffa1eb3df813de00353d7289220/jetified-appcompat-resources-1.3.1/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat-resources/1.3.1/fa1169a9b404f7e905756330af6d13e27dcee50e/appcompat-resources-1.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 11
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml 파일 보기

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: androidx.arch.core:core-common:2.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/b3152fc64428c9354344bd89848ecddc09b6f07e/core-common-2.1.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/80ac2d7c8e6400ce2fbc663cd1a7e1cbef38c4b8/core-common-2.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 12
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml 파일 보기

@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.arch.core:core-runtime:2.1.0@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0ca9f6bd70e3c41e040b342bca9d1f33/core-runtime-2.1.0/AndroidManifest.xml" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0ca9f6bd70e3c41e040b342bca9d1f33/core-runtime-2.1.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-runtime/2.1.0/f19886651c9946b39f83d8c184fd0e2ce9f43c16/core-runtime-2.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 12
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml 파일 보기

@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.asynclayoutinflater:asynclayoutinflater:1.0.0@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ea35e22bbd7cec78aa805ff6fe03b3ce/asynclayoutinflater-1.0.0/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ea35e22bbd7cec78aa805ff6fe03b3ce/asynclayoutinflater-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.asynclayoutinflater/asynclayoutinflater/1.0.0/ac4d50701fce5c88dcc514f58e695cd32f05134c/asynclayoutinflater-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 13
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml 파일 보기

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Gradle: androidx.cardview:cardview:1.0.0@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/864b39fc2027b87e972e0086fc4ff715/cardview-1.0.0/AndroidManifest.xml" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/864b39fc2027b87e972e0086fc4ff715/cardview-1.0.0/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/864b39fc2027b87e972e0086fc4ff715/cardview-1.0.0/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.cardview/cardview/1.0.0/c9f3ce7ca74ad2c978230f4094ba6804c5166f9c/cardview-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 11
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml 파일 보기

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: androidx.collection:collection:1.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/1f27220b47669781457de0d600849a5de0e89909/collection-1.1.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/bae67b0019fbb38498198fcc2d0282a340b71c5b/collection-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 11
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml 파일 보기

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: androidx.constraintlayout:constraintlayout:1.1.3@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6d927b6aae7844154b8c699b5c0710c5/constraintlayout-1.1.3/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6d927b6aae7844154b8c699b5c0710c5/constraintlayout-1.1.3/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6d927b6aae7844154b8c699b5c0710c5/constraintlayout-1.1.3/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 11
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_0_1_aar.xml 파일 보기

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: androidx.constraintlayout:constraintlayout:2.0.1@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0b0ff6f5f285d6921217294c42fb2317/constraintlayout-2.0.1/AndroidManifest.xml" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0b0ff6f5f285d6921217294c42fb2317/constraintlayout-2.0.1/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0b0ff6f5f285d6921217294c42fb2317/constraintlayout-2.0.1/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 9
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3.xml 파일 보기

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Gradle: androidx.constraintlayout:constraintlayout-solver:1.1.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.constraintlayout/constraintlayout-solver/1.1.3/54abe9ffb22cc9019b0b6fcc10f185cc4e67b34e/constraintlayout-solver-1.1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 9
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_1.xml 파일 보기

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="Gradle: androidx.constraintlayout:constraintlayout-solver:2.0.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.constraintlayout/constraintlayout-solver/2.0.1/30988fe2d77f3fe3bf7551bb8a8b795fad7e7226/constraintlayout-solver-2.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

+ 16
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml 파일 보기

@@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: androidx.coordinatorlayout:coordinatorlayout:1.1.0@aar">
<ANNOTATIONS>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a9c6ad5f9804419c3c2e5636dfd6b830/coordinatorlayout-1.1.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a9c6ad5f9804419c3c2e5636dfd6b830/coordinatorlayout-1.1.0/AndroidManifest.xml" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a9c6ad5f9804419c3c2e5636dfd6b830/coordinatorlayout-1.1.0/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a9c6ad5f9804419c3c2e5636dfd6b830/coordinatorlayout-1.1.0/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.coordinatorlayout/coordinatorlayout/1.1.0/a15529ac349d76a872ae5ef42b84c320c456cd7f/coordinatorlayout-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 16
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_core_core_1_5_0_aar.xml 파일 보기

@@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: androidx.core:core:1.5.0@aar">
<ANNOTATIONS>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/06250eb1355238b5f605b0dca26b3a9f/core-1.5.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/06250eb1355238b5f605b0dca26b3a9f/core-1.5.0/AndroidManifest.xml" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/06250eb1355238b5f605b0dca26b3a9f/core-1.5.0/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/06250eb1355238b5f605b0dca26b3a9f/core-1.5.0/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.core/core/1.5.0/b59df19e06f42e39b6d6ee97b2a1e42fd7c88204/core-1.5.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 12
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml 파일 보기

@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.cursoradapter:cursoradapter:1.0.0@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b286ba0ae927ad9c0e470e240aca52b1/cursoradapter-1.0.0/AndroidManifest.xml" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b286ba0ae927ad9c0e470e240aca52b1/cursoradapter-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.cursoradapter/cursoradapter/1.0.0/1e323083b41c31fd4d45510dfce50614963c3c6c/cursoradapter-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 12
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml 파일 보기

@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.customview:customview:1.0.0@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/59579748c3030daa93f5ddcc1c8d763b/customview-1.0.0/AndroidManifest.xml" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/59579748c3030daa93f5ddcc1c8d763b/customview-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.customview/customview/1.0.0/61f6a717d144dff3a6bda413d9abeeb2bca71581/customview-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

+ 0
- 0
TelpoLinkAndroid/.idea/libraries/Gradle__androidx_datastore_datastore_1_0_0_aar.xml 파일 보기


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.

Loading…
취소
저장