├── .gradle
└── 2.8
│ └── taskArtifacts
│ ├── cache.properties
│ ├── cache.properties.lock
│ ├── fileHashes.bin
│ ├── fileSnapshots.bin
│ ├── outputFileStates.bin
│ └── taskArtifacts.bin
├── .idea
├── .name
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── encodings.xml
├── gradle.xml
├── libraries
│ └── support_v4_18_0_0.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── README.md
├── app
├── app.iml
├── build.gradle
├── build
│ ├── generated
│ │ └── source
│ │ │ ├── buildConfig
│ │ │ ├── androidTest
│ │ │ │ └── debug
│ │ │ │ │ └── com
│ │ │ │ │ └── sovnem
│ │ │ │ │ └── lockrelease
│ │ │ │ │ └── test
│ │ │ │ │ └── BuildConfig.java
│ │ │ └── debug
│ │ │ │ └── com
│ │ │ │ └── sovnem
│ │ │ │ └── lockrelease
│ │ │ │ └── BuildConfig.java
│ │ │ └── r
│ │ │ └── debug
│ │ │ └── com
│ │ │ └── sovnem
│ │ │ └── lockrelease
│ │ │ └── R.java
│ ├── intermediates
│ │ ├── blame
│ │ │ └── res
│ │ │ │ └── debug
│ │ │ │ ├── multi
│ │ │ │ ├── values-v11.json
│ │ │ │ ├── values-v14.json
│ │ │ │ └── values.json
│ │ │ │ └── single
│ │ │ │ ├── drawable-hdpi-v4.json
│ │ │ │ ├── drawable-mdpi-v4.json
│ │ │ │ ├── drawable-xhdpi-v4.json
│ │ │ │ ├── drawable-xxhdpi-v4.json
│ │ │ │ └── layout.json
│ │ ├── classes
│ │ │ └── debug
│ │ │ │ └── com
│ │ │ │ └── sovnem
│ │ │ │ └── lockrelease
│ │ │ │ ├── BuildConfig.class
│ │ │ │ ├── GestureLockView$1.class
│ │ │ │ ├── GestureLockView$2.class
│ │ │ │ ├── GestureLockView$3.class
│ │ │ │ ├── GestureLockView$GestureLockCallback.class
│ │ │ │ ├── GestureLockView$PPoint.class
│ │ │ │ ├── GestureLockView$PWDPath.class
│ │ │ │ ├── GestureLockView$Result.class
│ │ │ │ ├── GestureLockView.class
│ │ │ │ ├── MainActivity.class
│ │ │ │ ├── OtherActivity.class
│ │ │ │ ├── R$attr.class
│ │ │ │ ├── R$drawable.class
│ │ │ │ ├── R$id.class
│ │ │ │ ├── R$layout.class
│ │ │ │ ├── R$string.class
│ │ │ │ ├── R$style.class
│ │ │ │ ├── R$styleable.class
│ │ │ │ ├── R.class
│ │ │ │ ├── SecretPrefUtil.class
│ │ │ │ ├── SetsecretActivity$1.class
│ │ │ │ ├── SetsecretActivity.class
│ │ │ │ ├── VerifyActivity$1.class
│ │ │ │ └── VerifyActivity.class
│ │ ├── incremental
│ │ │ ├── compileDebugAidl
│ │ │ │ └── dependency.store
│ │ │ ├── compileDebugAndroidTestAidl
│ │ │ │ └── dependency.store
│ │ │ ├── mergeDebugAndroidTestAssets
│ │ │ │ └── merger.xml
│ │ │ ├── mergeDebugAndroidTestResources
│ │ │ │ └── merger.xml
│ │ │ ├── mergeDebugAssets
│ │ │ │ └── merger.xml
│ │ │ ├── mergeDebugJniLibFolders
│ │ │ │ └── merger.xml
│ │ │ └── mergeDebugResources
│ │ │ │ └── merger.xml
│ │ ├── manifest
│ │ │ └── androidTest
│ │ │ │ └── debug
│ │ │ │ └── AndroidManifest.xml
│ │ ├── manifests
│ │ │ └── full
│ │ │ │ └── debug
│ │ │ │ └── AndroidManifest.xml
│ │ ├── pre-dexed
│ │ │ └── debug
│ │ │ │ ├── debug_89995d99bebafd545a7fb4c1de77e8eee788dff6.jar
│ │ │ │ └── support-v4-18.0.0_82f4b57f1a05e72829110fce151ef333860df540.jar
│ │ ├── res
│ │ │ ├── merged
│ │ │ │ └── debug
│ │ │ │ │ ├── drawable-hdpi-v4
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── drawable-mdpi-v4
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── drawable-xhdpi-v4
│ │ │ │ │ ├── a.png
│ │ │ │ │ ├── b.png
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── drawable-xxhdpi-v4
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── layout
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ ├── other.xml
│ │ │ │ │ ├── setsecret.xml
│ │ │ │ │ └── verify.xml
│ │ │ │ │ ├── values-v11
│ │ │ │ │ └── values-v11.xml
│ │ │ │ │ ├── values-v14
│ │ │ │ │ └── values-v14.xml
│ │ │ │ │ └── values
│ │ │ │ │ └── values.xml
│ │ │ ├── resources-debug-androidTest.ap_
│ │ │ └── resources-debug.ap_
│ │ └── transforms
│ │ │ └── dex
│ │ │ └── debug
│ │ │ └── folders
│ │ │ └── 1000
│ │ │ └── 1f
│ │ │ └── main
│ │ │ └── classes.dex
│ └── outputs
│ │ ├── apk
│ │ ├── app-debug-unaligned.apk
│ │ └── app-debug.apk
│ │ └── logs
│ │ └── manifest-merger-debug-report.txt
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── sovnem
│ │ └── lockrelease
│ │ ├── GestureLockView.java
│ │ ├── MainActivity.java
│ │ ├── OtherActivity.java
│ │ ├── SecretPrefUtil.java
│ │ ├── SetsecretActivity.java
│ │ └── VerifyActivity.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_launcher.png
│ ├── drawable-mdpi
│ └── ic_launcher.png
│ ├── drawable-xhdpi
│ ├── a.png
│ ├── b.png
│ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ └── ic_launcher.png
│ ├── layout
│ ├── activity_main.xml
│ ├── other.xml
│ ├── setsecret.xml
│ └── verify.xml
│ ├── values-v11
│ └── styles.xml
│ ├── values-v14
│ └── styles.xml
│ └── values
│ ├── attrs.xml
│ ├── strings.xml
│ └── styles.xml
├── build.gradle
├── build
└── intermediates
│ └── dex-cache
│ └── cache.xml
├── getsturelock.iml
├── gif
└── fd.gif
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── import-summary.txt
├── local.properties
└── settings.gradle
/.gradle/2.8/taskArtifacts/cache.properties:
--------------------------------------------------------------------------------
1 | #Thu Feb 18 10:34:09 CST 2016
2 |
--------------------------------------------------------------------------------
/.gradle/2.8/taskArtifacts/cache.properties.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/.gradle/2.8/taskArtifacts/cache.properties.lock
--------------------------------------------------------------------------------
/.gradle/2.8/taskArtifacts/fileHashes.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/.gradle/2.8/taskArtifacts/fileHashes.bin
--------------------------------------------------------------------------------
/.gradle/2.8/taskArtifacts/fileSnapshots.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/.gradle/2.8/taskArtifacts/fileSnapshots.bin
--------------------------------------------------------------------------------
/.gradle/2.8/taskArtifacts/outputFileStates.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/.gradle/2.8/taskArtifacts/outputFileStates.bin
--------------------------------------------------------------------------------
/.gradle/2.8/taskArtifacts/taskArtifacts.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/.gradle/2.8/taskArtifacts/taskArtifacts.bin
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | 高仿解锁
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/.idea/libraries/support_v4_18_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 1.7
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # gesturelock
2 | 一个高仿android原生解锁的demo
3 |
4 | 高仿android的原生手势解锁
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/app.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | generateDebugSources
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 14
5 | buildToolsVersion "23.0.2"
6 |
7 | defaultConfig {
8 | applicationId "com.sovnem.lockrelease"
9 | minSdkVersion 14
10 | targetSdkVersion 14
11 | }
12 |
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile 'com.android.support:support-v4:18.0.0'
23 | }
24 |
--------------------------------------------------------------------------------
/app/build/generated/source/buildConfig/androidTest/debug/com/sovnem/lockrelease/test/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Automatically generated file. DO NOT MODIFY
3 | */
4 | package com.sovnem.lockrelease.test;
5 |
6 | public final class BuildConfig {
7 | public static final boolean DEBUG = Boolean.parseBoolean("true");
8 | public static final String APPLICATION_ID = "com.sovnem.lockrelease.test";
9 | public static final String BUILD_TYPE = "debug";
10 | public static final String FLAVOR = "";
11 | public static final int VERSION_CODE = -1;
12 | public static final String VERSION_NAME = "";
13 | }
14 |
--------------------------------------------------------------------------------
/app/build/generated/source/buildConfig/debug/com/sovnem/lockrelease/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Automatically generated file. DO NOT MODIFY
3 | */
4 | package com.sovnem.lockrelease;
5 |
6 | public final class BuildConfig {
7 | public static final boolean DEBUG = Boolean.parseBoolean("true");
8 | public static final String APPLICATION_ID = "com.sovnem.lockrelease";
9 | public static final String BUILD_TYPE = "debug";
10 | public static final String FLAVOR = "";
11 | public static final int VERSION_CODE = 1;
12 | public static final String VERSION_NAME = "1.0";
13 | }
14 |
--------------------------------------------------------------------------------
/app/build/generated/source/r/debug/com/sovnem/lockrelease/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 |
8 | package com.sovnem.lockrelease;
9 |
10 | public final class R {
11 | public static final class attr {
12 | /**
Must be a color value, in the form of "#rgb
", "#argb
",
13 | "#rrggbb
", or "#aarrggbb
".
14 |
This may also be a reference to a resource (in the form
15 | "@[package :]type :name
") or
16 | theme attribute (in the form
17 | "?[package :][type :]name
")
18 | containing a value of this type.
19 | */
20 | public static final int normalColor=0x7f010000;
21 | /**
Must be a color value, in the form of "#rgb
", "#argb
",
22 | "#rrggbb
", or "#aarrggbb
".
23 |
This may also be a reference to a resource (in the form
24 | "@[package :]type :name
") or
25 | theme attribute (in the form
26 | "?[package :][type :]name
")
27 | containing a value of this type.
28 | */
29 | public static final int wrongColor=0x7f010001;
30 | }
31 | public static final class drawable {
32 | public static final int a=0x7f020000;
33 | public static final int b=0x7f020001;
34 | public static final int ic_launcher=0x7f020002;
35 | }
36 | public static final class id {
37 | public static final int button_open=0x7f060001;
38 | public static final int button_set=0x7f060002;
39 | public static final int imageView_open=0x7f060000;
40 | public static final int lock=0x7f060006;
41 | public static final int textView1=0x7f060004;
42 | public static final int textView_desc=0x7f060005;
43 | public static final int textView_pwd=0x7f060003;
44 | }
45 | public static final class layout {
46 | public static final int activity_main=0x7f030000;
47 | public static final int other=0x7f030001;
48 | public static final int setsecret=0x7f030002;
49 | public static final int verify=0x7f030003;
50 | }
51 | public static final class string {
52 | public static final int app_name=0x7f050000;
53 | public static final int hello_world=0x7f050001;
54 | public static final int title_activity_other=0x7f050002;
55 | public static final int title_activity_setsecret=0x7f050003;
56 | public static final int title_activity_verify=0x7f050004;
57 | }
58 | public static final class style {
59 | /** API 11 theme customizations can go here.
60 | API 14 theme customizations can go here.
61 |
62 | Theme customizations available in newer API levels can go in
63 | res/values-vXX/styles.xml, while customizations related to
64 | backward-compatibility can go here.
65 |
66 | */
67 | public static final int AppBaseTheme=0x7f040000;
68 | /** All customizations that are NOT specific to a particular API-level can go here.
69 | */
70 | public static final int AppTheme=0x7f040001;
71 | }
72 | public static final class styleable {
73 | /** Attributes that can be used with a lockview.
74 |
Includes the following attributes:
75 |
76 |
77 |
78 | Attribute Description
79 | {@link #lockview_normalColor com.sovnem.lockrelease:normalColor}
80 | {@link #lockview_wrongColor com.sovnem.lockrelease:wrongColor}
81 |
82 | @see #lockview_normalColor
83 | @see #lockview_wrongColor
84 | */
85 | public static final int[] lockview = {
86 | 0x7f010000, 0x7f010001
87 | };
88 | /**
89 | This symbol is the offset where the {@link com.sovnem.lockrelease.R.attr#normalColor}
90 | attribute's value can be found in the {@link #lockview} array.
91 |
92 |
93 |
Must be a color value, in the form of "#rgb
", "#argb
",
94 | "#rrggbb
", or "#aarrggbb
".
95 |
This may also be a reference to a resource (in the form
96 | "@[package :]type :name
") or
97 | theme attribute (in the form
98 | "?[package :][type :]name
")
99 | containing a value of this type.
100 | @attr name com.sovnem.lockrelease:normalColor
101 | */
102 | public static final int lockview_normalColor = 0;
103 | /**
104 |
This symbol is the offset where the {@link com.sovnem.lockrelease.R.attr#wrongColor}
105 | attribute's value can be found in the {@link #lockview} array.
106 |
107 |
108 |
Must be a color value, in the form of "#rgb
", "#argb
",
109 | "#rrggbb
", or "#aarrggbb
".
110 |
This may also be a reference to a resource (in the form
111 | "@[package :]type :name
") or
112 | theme attribute (in the form
113 | "?[package :][type :]name
")
114 | containing a value of this type.
115 | @attr name com.sovnem.lockrelease:wrongColor
116 | */
117 | public static final int lockview_wrongColor = 1;
118 | };
119 | }
120 |
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/multi/values-v11.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "outputFile": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\values-v11\\values-v11.xml",
4 | "map": [
5 | {
6 | "to": {
7 | "startLine": 2,
8 | "startColumn": 4,
9 | "startOffset": 55,
10 | "endLine": 4,
11 | "endColumn": 9,
12 | "endOffset": 178
13 | },
14 | "from": {
15 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values-v11\\styles.xml",
16 | "position": {
17 | "startLine": 6,
18 | "startColumn": 1,
19 | "startOffset": 173,
20 | "endLine": 8,
21 | "endColumn": 9,
22 | "endOffset": 298
23 | }
24 | }
25 | }
26 | ]
27 | }
28 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/multi/values-v14.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "outputFile": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\values-v14\\values-v14.xml",
4 | "map": [
5 | {
6 | "to": {
7 | "startLine": 2,
8 | "startColumn": 4,
9 | "startOffset": 55,
10 | "endLine": 4,
11 | "endColumn": 9,
12 | "endOffset": 192
13 | },
14 | "from": {
15 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values-v14\\styles.xml",
16 | "position": {
17 | "startLine": 7,
18 | "startColumn": 1,
19 | "startOffset": 216,
20 | "endLine": 9,
21 | "endColumn": 9,
22 | "endOffset": 355
23 | }
24 | }
25 | }
26 | ]
27 | }
28 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/multi/values.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "outputFile": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\values\\values.xml",
4 | "map": [
5 | {
6 | "to": {
7 | "startLine": 3,
8 | "startColumn": 4,
9 | "startOffset": 196,
10 | "endColumn": 42,
11 | "endOffset": 234
12 | },
13 | "from": {
14 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values\\strings.xml",
15 | "position": {
16 | "startLine": 3,
17 | "startColumn": 1,
18 | "startOffset": 56,
19 | "endColumn": 39,
20 | "endOffset": 94
21 | }
22 | }
23 | },
24 | {
25 | "to": {
26 | "startLine": 4,
27 | "startColumn": 4,
28 | "startOffset": 239,
29 | "endColumn": 52,
30 | "endOffset": 287
31 | },
32 | "from": {
33 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values\\strings.xml",
34 | "position": {
35 | "startLine": 4,
36 | "startColumn": 1,
37 | "startOffset": 97,
38 | "endColumn": 49,
39 | "endOffset": 145
40 | }
41 | }
42 | },
43 | {
44 | "to": {
45 | "startLine": 5,
46 | "startColumn": 4,
47 | "startOffset": 292,
48 | "endColumn": 70,
49 | "endOffset": 358
50 | },
51 | "from": {
52 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values\\strings.xml",
53 | "position": {
54 | "startLine": 7,
55 | "startColumn": 1,
56 | "startOffset": 257,
57 | "endColumn": 67,
58 | "endOffset": 323
59 | }
60 | }
61 | },
62 | {
63 | "to": {
64 | "startLine": 6,
65 | "startColumn": 4,
66 | "startOffset": 363,
67 | "endColumn": 57,
68 | "endOffset": 416
69 | },
70 | "from": {
71 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values\\strings.xml",
72 | "position": {
73 | "startLine": 5,
74 | "startColumn": 1,
75 | "startOffset": 148,
76 | "endColumn": 54,
77 | "endOffset": 201
78 | }
79 | }
80 | },
81 | {
82 | "to": {
83 | "startLine": 7,
84 | "startColumn": 4,
85 | "startOffset": 421,
86 | "endColumn": 54,
87 | "endOffset": 471
88 | },
89 | "from": {
90 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values\\strings.xml",
91 | "position": {
92 | "startLine": 6,
93 | "startColumn": 1,
94 | "startOffset": 204,
95 | "endColumn": 51,
96 | "endOffset": 254
97 | }
98 | }
99 | },
100 | {
101 | "to": {
102 | "startLine": 8,
103 | "startColumn": 4,
104 | "startOffset": 476,
105 | "endLine": 14,
106 | "endColumn": 9,
107 | "endOffset": 747
108 | },
109 | "from": {
110 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values\\styles.xml",
111 | "position": {
112 | "startLine": 6,
113 | "startColumn": 1,
114 | "startOffset": 182,
115 | "endLine": 12,
116 | "endColumn": 9,
117 | "endOffset": 457
118 | }
119 | }
120 | },
121 | {
122 | "to": {
123 | "startLine": 15,
124 | "startColumn": 4,
125 | "startOffset": 752,
126 | "endLine": 17,
127 | "endColumn": 9,
128 | "endOffset": 898
129 | },
130 | "from": {
131 | "file": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\values\\styles.xml",
132 | "position": {
133 | "startLine": 15,
134 | "startColumn": 1,
135 | "startOffset": 492,
136 | "endLine": 17,
137 | "endColumn": 9,
138 | "endOffset": 640
139 | }
140 | }
141 | }
142 | ]
143 | }
144 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/single/drawable-hdpi-v4.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\drawable-hdpi-v4\\ic_launcher.png",
4 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\drawable-hdpi\\ic_launcher.png"
5 | }
6 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/single/drawable-mdpi-v4.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\drawable-mdpi-v4\\ic_launcher.png",
4 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\drawable-mdpi\\ic_launcher.png"
5 | }
6 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/single/drawable-xhdpi-v4.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\drawable-xhdpi-v4\\a.png",
4 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\drawable-xhdpi\\a.png"
5 | },
6 | {
7 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\drawable-xhdpi-v4\\ic_launcher.png",
8 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\drawable-xhdpi\\ic_launcher.png"
9 | },
10 | {
11 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\drawable-xhdpi-v4\\b.png",
12 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\drawable-xhdpi\\b.png"
13 | }
14 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/single/drawable-xxhdpi-v4.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\drawable-xxhdpi-v4\\ic_launcher.png",
4 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\drawable-xxhdpi\\ic_launcher.png"
5 | }
6 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/blame/res/debug/single/layout.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\layout\\setsecret.xml",
4 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\layout\\setsecret.xml"
5 | },
6 | {
7 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\layout\\other.xml",
8 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\layout\\other.xml"
9 | },
10 | {
11 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\layout\\verify.xml",
12 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\layout\\verify.xml"
13 | },
14 | {
15 | "merged": "F:\\ABOUTWORK\\getsturelock\\app\\build\\intermediates\\res\\merged\\debug\\layout\\activity_main.xml",
16 | "source": "F:\\ABOUTWORK\\getsturelock\\app\\src\\main\\res\\layout\\activity_main.xml"
17 | }
18 | ]
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/BuildConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/BuildConfig.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$1.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$2.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$3.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$3.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$GestureLockCallback.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$GestureLockCallback.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$PPoint.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$PPoint.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$PWDPath.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$PWDPath.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$Result.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView$Result.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/GestureLockView.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/MainActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/MainActivity.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/OtherActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/OtherActivity.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$attr.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$attr.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$drawable.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$id.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$layout.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$string.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$string.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$style.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$style.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$styleable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R$styleable.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/R.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/SecretPrefUtil.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/SecretPrefUtil.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/SetsecretActivity$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/SetsecretActivity$1.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/SetsecretActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/SetsecretActivity.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/VerifyActivity$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/VerifyActivity$1.class
--------------------------------------------------------------------------------
/app/build/intermediates/classes/debug/com/sovnem/lockrelease/VerifyActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/classes/debug/com/sovnem/lockrelease/VerifyActivity.class
--------------------------------------------------------------------------------
/app/build/intermediates/incremental/compileDebugAidl/dependency.store:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/build/intermediates/incremental/compileDebugAndroidTestAidl/dependency.store:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/build/intermediates/incremental/mergeDebugAndroidTestAssets/merger.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/build/intermediates/incremental/mergeDebugAndroidTestResources/merger.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/build/intermediates/incremental/mergeDebugAssets/merger.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/build/intermediates/incremental/mergeDebugResources/merger.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 我是一个需要手势密码打开的activity a高仿解锁 输入手势 设置密码 Hello world!
--------------------------------------------------------------------------------
/app/build/intermediates/manifest/androidTest/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
16 |
17 |
--------------------------------------------------------------------------------
/app/build/intermediates/manifests/full/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
28 |
29 |
32 |
33 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/app/build/intermediates/pre-dexed/debug/debug_89995d99bebafd545a7fb4c1de77e8eee788dff6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/pre-dexed/debug/debug_89995d99bebafd545a7fb4c1de77e8eee788dff6.jar
--------------------------------------------------------------------------------
/app/build/intermediates/pre-dexed/debug/support-v4-18.0.0_82f4b57f1a05e72829110fce151ef333860df540.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/pre-dexed/debug/support-v4-18.0.0_82f4b57f1a05e72829110fce151ef333860df540.jar
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/drawable-hdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/merged/debug/drawable-hdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/drawable-mdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/merged/debug/drawable-mdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/drawable-xhdpi-v4/a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/merged/debug/drawable-xhdpi-v4/a.png
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/drawable-xhdpi-v4/b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/merged/debug/drawable-xhdpi-v4/b.png
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/drawable-xhdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/merged/debug/drawable-xhdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/drawable-xxhdpi-v4/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/merged/debug/drawable-xxhdpi-v4/ic_launcher.png
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
16 |
17 |
26 |
27 |
35 |
36 |
45 |
46 |
55 |
56 |
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/layout/other.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
16 |
17 |
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/layout/setsecret.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
18 |
19 |
28 |
29 |
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/layout/verify.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
17 |
18 |
27 |
28 |
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/values-v11/values-v11.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/values-v14/values-v14.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/app/build/intermediates/res/merged/debug/values/values.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | a高仿解锁
5 | Hello world!
6 | 我是一个需要手势密码打开的activity
7 | 设置密码
8 | 输入手势
9 |
16 |
19 |
--------------------------------------------------------------------------------
/app/build/intermediates/res/resources-debug-androidTest.ap_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/resources-debug-androidTest.ap_
--------------------------------------------------------------------------------
/app/build/intermediates/res/resources-debug.ap_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/res/resources-debug.ap_
--------------------------------------------------------------------------------
/app/build/intermediates/transforms/dex/debug/folders/1000/1f/main/classes.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/intermediates/transforms/dex/debug/folders/1000/1f/main/classes.dex
--------------------------------------------------------------------------------
/app/build/outputs/apk/app-debug-unaligned.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/outputs/apk/app-debug-unaligned.apk
--------------------------------------------------------------------------------
/app/build/outputs/apk/app-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/build/outputs/apk/app-debug.apk
--------------------------------------------------------------------------------
/app/build/outputs/logs/manifest-merger-debug-report.txt:
--------------------------------------------------------------------------------
1 | -- Merging decision tree log ---
2 | manifest
3 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:2:1-39:12
4 | xmlns:android
5 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:2:11-69
6 | package
7 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:3:2-34
8 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
9 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
10 | android:versionName
11 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:5:2-27
12 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
13 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
14 | android:versionCode
15 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:4:2-25
16 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
17 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
18 | uses-sdk
19 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:7:2-9:35
20 | android:targetSdkVersion
21 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:9:3-32
22 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
23 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
24 | android:minSdkVersion
25 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:8:3-29
26 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
27 | INJECTED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml
28 | application
29 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:11:2-37:16
30 | android:label
31 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:14:3-35
32 | android:allowBackup
33 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:12:3-29
34 | android:icon
35 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:13:3-39
36 | android:theme
37 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:15:3-34
38 | activity#com.sovnem.lockrelease.MainActivity
39 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:16:3-24:14
40 | android:label
41 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:18:4-36
42 | android:name
43 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:17:4-32
44 | intent-filter#android.intent.action.MAIN+android.intent.category.LAUNCHER
45 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:19:4-23:20
46 | action#android.intent.action.MAIN
47 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:20:5-57
48 | android:name
49 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:20:13-54
50 | category#android.intent.category.LAUNCHER
51 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:22:5-65
52 | android:name
53 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:22:15-62
54 | activity#com.sovnem.lockrelease.SetsecretActivity
55 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:25:3-28:14
56 | android:label
57 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:27:4-52
58 | android:name
59 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:26:4-37
60 | activity#com.sovnem.lockrelease.VerifyActivity
61 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:29:3-32:14
62 | android:label
63 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:31:4-49
64 | android:name
65 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:30:4-34
66 | activity#com.sovnem.lockrelease.OtherActivity
67 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:33:3-36:14
68 | android:label
69 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:35:4-48
70 | android:name
71 | ADDED from F:\ABOUTWORK\getsturelock\app\src\main\AndroidManifest.xml:34:4-33
72 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
16 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
28 |
29 |
32 |
33 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sovnem/lockrelease/GestureLockView.java:
--------------------------------------------------------------------------------
1 | package com.sovnem.lockrelease;
2 |
3 | import android.animation.Animator;
4 | import android.animation.Animator.AnimatorListener;
5 | import android.animation.ValueAnimator;
6 | import android.animation.ValueAnimator.AnimatorUpdateListener;
7 | import android.annotation.SuppressLint;
8 | import android.content.Context;
9 | import android.content.res.TypedArray;
10 | import android.graphics.Canvas;
11 | import android.graphics.Color;
12 | import android.graphics.Paint;
13 | import android.graphics.Paint.Cap;
14 | import android.graphics.Paint.Style;
15 | import android.graphics.Path;
16 | import android.os.Handler;
17 | import android.util.AttributeSet;
18 | import android.util.Log;
19 | import android.view.MotionEvent;
20 | import android.view.View;
21 |
22 | import java.util.LinkedHashSet;
23 |
24 | /**
25 | * 视图结构为3X3的矩阵点集合,点周围一定区域为有效范围s,这个有效范围不能大于相邻两个点的距离的一半。
26 | * 手指落在这个有效范围s内,则判定该touch对这个点有效,手势路径就会将这个点计算在内 手指落在点内则会有一个该点逐渐放大然后缩小的动画效果
27 | * 手指从一个点移出的时候在有效范围s内
28 | * ,手指到该点之间的线段是不显示的,当手指移出范围s,到手指离该点2s之间过程手指与该点之间的线段逐渐显示,所以综上来说s是小于点点间距的三分之一的
29 | * 如果手势密码错误则已经连接的线和点都变成橘黄色,并持续三秒钟再复原,如果在这三秒钟内有手势操作则立即复原
30 | *
31 | * @author monkey-d-wood
32 | */
33 | public class GestureLockView extends View {
34 | private static final int ANIM_DURATION = 150;// 点选中时候的动画时间
35 | private static final int RECOVER_DURATION = 3000;// 错误路径持续时长
36 | private int NORMAL_COLOR;// 正常的颜色
37 | private int ERROR_COLOR;// 手势错误颜色
38 | private final int row = 3;// 矩阵的边数
39 |
40 | private PWDPath ppath;// 密码路径
41 | private PPoint[][] points = new PPoint[3][3];
42 | private boolean isRight = true;
43 |
44 | public GestureLockView(Context context, AttributeSet attrs, int defStyle) {
45 | super(context, attrs, defStyle);
46 | init(attrs);
47 | }
48 |
49 | public GestureLockView(Context context, AttributeSet attrs) {
50 | super(context, attrs);
51 | init(attrs);
52 | }
53 |
54 | public GestureLockView(Context context) {
55 | super(context);
56 | init(null);
57 | }
58 |
59 | private void init(AttributeSet attrs) {
60 | // NORMAL_COLOR = Color.WHITE;
61 | // ERROR_COLOR = Color.parseColor("#F54F20");
62 | if (attrs != null) {
63 | TypedArray ta = getContext().obtainStyledAttributes(attrs, R.styleable.lockview);
64 | NORMAL_COLOR = ta.getColor(R.styleable.lockview_normalColor, Color.WHITE);
65 | ERROR_COLOR = ta.getColor(R.styleable.lockview_wrongColor, Color.parseColor("#F54F20"));
66 | Log.i("info", "颜色啊");
67 | }
68 | ppath = new PWDPath();
69 | }
70 |
71 | @Override
72 | protected void onDraw(Canvas canvas) {
73 | super.onDraw(canvas);
74 | drawPoints(canvas);
75 | ppath.draw(canvas, isRight);
76 | }
77 |
78 | private void drawPoints(Canvas canvas) {
79 | for (int i = 0; i < row; i++) {
80 | for (int j = 0; j < row; j++) {
81 | points[i][j].draw(canvas, true);
82 | }
83 | }
84 | }
85 |
86 | @Override
87 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {//该view为矩形
88 | super.onMeasure(widthMeasureSpec, heightMeasureSpec);
89 | int w = getMeasuredWidth();
90 | int h = getMeasuredHeight();
91 | w = h = Math.min(w, h);
92 | setMeasuredDimension(w, h);
93 | }
94 |
95 | private int width;//记录view的边长
96 |
97 | @Override
98 | protected void onSizeChanged(int w, int h, int oldw, int oldh) {
99 | super.onSizeChanged(w, h, oldw, oldh);
100 | width = w;
101 | resetPoints(width);
102 | }
103 |
104 | /**
105 | * 重置点的属性
106 | */
107 | private void resetPoints(int w) {
108 | initSizeParams(w);
109 | initPoints();
110 | }
111 |
112 | // 根据view的尺寸确定
113 | private float pDis;// 两点之间的间距 为边长的三分之一
114 | private float pointR;// 点的初始半径 为pDis的二十分之一
115 | private float pointREx;// 点的动画最大半径 为点半径的2.5倍
116 | private float safeDis;// 点的‘领域’半径 为pDis的十分之三
117 | private float fadeDis;// 路径完全显示的半径 为safeDis的二倍
118 | private float mPadding;// view中点的矩形和view的外边界距离 为宽度的六分之一
119 | private float lineW;// 画出的线的宽度 为点半径的二分之一
120 |
121 | /**
122 | * 确定上边提到的参数的值
123 | */
124 | private void initSizeParams(int w) {
125 | mPadding = w / 6.0f;
126 | pDis = w / 3.0f;
127 | pointR = pDis / 17;
128 | pointREx = pointR * 2.5f;
129 | safeDis = pDis * 3.0f / 10;
130 | fadeDis = safeDis * 2.0f;
131 | lineW = pointR / 1.8f;
132 | ppath.setLineWidth(lineW);
133 | }
134 |
135 | private void initPoints() {
136 | for (int i = 0; i < row; i++) {
137 | for (int j = 0; j < row; j++) {
138 | points[i][j] = new PPoint(i * pDis + mPadding, j * pDis + mPadding, pointR);
139 | }
140 | }
141 | }
142 |
143 | /**
144 | * 显示主体的点的实体类
145 | *
146 | * @author monkey-d-wood
147 | */
148 | private class PPoint {
149 | float x, y, r;
150 | boolean animating;
151 | boolean selected;
152 | Paint nPointpPaint;// 正常点画笔
153 | Paint ePointpPaint;// 错误的点得画笔
154 |
155 | public PPoint(float x, float y, float r) {
156 | super();
157 | this.x = x;
158 | this.y = y;
159 | this.r = r;
160 |
161 | nPointpPaint = new Paint();
162 | nPointpPaint.setColor(NORMAL_COLOR);
163 | nPointpPaint.setStyle(Style.FILL_AND_STROKE);
164 |
165 | ePointpPaint = new Paint();
166 | ePointpPaint.setColor(ERROR_COLOR);
167 | ePointpPaint.setStyle(Style.FILL_AND_STROKE);
168 | }
169 |
170 | public void draw(Canvas canvas, boolean a) {
171 | canvas.drawCircle(x, y, r, a ? nPointpPaint : ePointpPaint);
172 | }
173 |
174 | // 判定是否应该连接该点
175 | public boolean isInCtrl(float x, float y) {
176 | return (x - this.x) * (x - this.x) + (this.y - y) * (this.y - y) <= safeDis * safeDis;
177 | }
178 |
179 | public boolean equals(PPoint o) {
180 | return x == o.x && y == o.y;
181 | }
182 |
183 | public PPoint setIndex(int i, int j) {
184 | this.i = i;
185 | this.j = j;
186 | return this;
187 | }
188 |
189 | int i, j;
190 |
191 | public float distanceTo(PPoint p2) {
192 | return (float) Math.sqrt((this.x - p2.x) * (this.x - p2.x) + (this.y - p2.y) * (this.y - p2.y));
193 | }
194 | }
195 |
196 | /**
197 | * 的到触点所在的‘领域’内的点, 如果不在领域内则返回null
198 | */
199 | private PPoint getControllerPoint(float x, float y) {
200 | for (int i = 0; i < row; i++) {
201 | for (int j = 0; j < row; j++) {
202 | if (points[i][j].isInCtrl(x, y)) {
203 | return points[i][j].setIndex(i, j);
204 | }
205 | }
206 | }
207 | return null;
208 | }
209 |
210 | /**
211 | * 复原view状态
212 | */
213 | private void reset() {
214 | ppath = new PWDPath();
215 | resetPoints(width);
216 | isRight = true;
217 | postInvalidate();
218 | }
219 |
220 | private Handler handler = new Handler();
221 | private Runnable task = new Runnable() {
222 |
223 | @Override
224 | public void run() {
225 | reset();
226 | }
227 | };
228 | private PPoint down;
229 |
230 | @Override
231 | public boolean dispatchTouchEvent(MotionEvent event) {
232 | if (event.getAction() == MotionEvent.ACTION_DOWN) {
233 | if (!isRight) {
234 | handler.removeCallbacks(task);
235 | reset();
236 | }
237 | }
238 | return super.dispatchTouchEvent(event);
239 | }
240 |
241 | Result result = new Result();
242 |
243 | @SuppressLint("ClickableViewAccessibility")
244 | @Override
245 | public boolean onTouchEvent(MotionEvent event) {
246 | float eX = event.getX();
247 | float eY = event.getY();
248 | int action = event.getAction();
249 | down = getControllerPoint(eX, eY);
250 | if (null != down) {//如果运动到了一个可吸附点的领域内
251 | if (!down.animating && !down.selected) {
252 | doAnimation(down);
253 | }
254 | }
255 | switch (action) {
256 | case MotionEvent.ACTION_DOWN:
257 | if (null != down && !down.selected) {
258 | ppath.moveTo(down);
259 | }
260 | break;
261 | case MotionEvent.ACTION_MOVE:
262 | if (null != down && !down.selected) {
263 | if (ppath.last == null) {
264 | ppath.moveTo(down);
265 | } else {
266 | ppath.lineTo(down);
267 | }
268 | }
269 | if (ppath.last != null) {
270 | ppath.startTo(eX, eY);
271 | }
272 | invalidate();
273 |
274 | break;
275 | case MotionEvent.ACTION_CANCEL:
276 | case MotionEvent.ACTION_UP:
277 | ppath.pathStart.reset();
278 | if (null != down && !down.selected) {
279 | ppath.lineTo(down);
280 | invalidate();
281 | }
282 | if (ppath.getPwd() != null && ppath.getPwd().length() > 0) {
283 | if (null != callback) {
284 | callback.onFinish(ppath.getPwd(), result);
285 | }
286 | if (result.isRight) {
287 | reset();
288 | } else {
289 | isRight = false;
290 | invalidate();
291 | handler.postDelayed(task, RECOVER_DURATION);
292 | }
293 | }
294 | break;
295 | }
296 | return true;
297 | }
298 |
299 | public class Result {
300 | private boolean isRight;
301 |
302 | public boolean isRight() {
303 | return isRight;
304 | }
305 |
306 | public void setRight(boolean isRight) {
307 | this.isRight = isRight;
308 | }
309 |
310 | }
311 |
312 | /**
313 | * 在这个点上做运动 o 动画
314 | */
315 | private void doAnimation(final PPoint down) {
316 | ValueAnimator va = ValueAnimator.ofFloat(pointR, pointREx);
317 | va.setDuration(ANIM_DURATION);
318 | va.setRepeatCount(1);
319 | va.setRepeatMode(ValueAnimator.REVERSE);
320 | va.addUpdateListener(new AnimatorUpdateListener() {
321 |
322 | @Override
323 | public void onAnimationUpdate(ValueAnimator animation) {
324 | float value = Float.parseFloat(animation.getAnimatedValue().toString());
325 | down.r = value;
326 | invalidate();
327 | }
328 | });
329 | va.addListener(new AnimatorListener() {
330 |
331 | @Override
332 | public void onAnimationStart(Animator animation) {
333 | down.animating = true;
334 | }
335 |
336 | @Override
337 | public void onAnimationRepeat(Animator animation) {
338 |
339 | }
340 |
341 | @Override
342 | public void onAnimationEnd(Animator animation) {
343 | down.animating = false;
344 | down.selected = true;
345 | }
346 |
347 | @Override
348 | public void onAnimationCancel(Animator animation) {
349 |
350 | }
351 | });
352 | va.start();
353 | }
354 |
355 | /**
356 | * 手势密码的抽象,包括路径和路径上的点 点集合就是路径上已经‘吸附’的点,路径有两个 一个path 是点与点之间的连接的路径
357 | * 另外一个pathStart是
358 | * 手指移动的位置和path最后一个‘吸附’的点之间的路径,这个路径不断随着手指移动而变化,并且还有透明度等需要处理所以单独出来
359 | *
360 | * @author monkey-d-wood
361 | */
362 | private class PWDPath {
363 | // ArrayList pwdps;
364 | Path path;// 正常的连接的路径 即点与点之间的连接path
365 | Path pathStart;// 从一个点出发 终点任意的path
366 | PPoint last;
367 | private Paint nPaint,// 正常颜色线的画笔
368 | ePaint, // 错误颜色线的画笔
369 | endPaint;// 手指移动的时候多余部分的线的画笔
370 | LinkedHashSet pwdps;
371 |
372 | public PWDPath() {
373 | pwdps = new LinkedHashSet();
374 | path = new Path();
375 | pathStart = new Path();
376 |
377 | nPaint = new Paint();
378 | nPaint.setColor(NORMAL_COLOR);
379 | nPaint.setStyle(Style.STROKE);
380 |
381 | endPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
382 | endPaint.setColor(getColor(1.0f));
383 | endPaint.setStyle(Style.STROKE);
384 | endPaint.setStrokeCap(Cap.ROUND);
385 |
386 | ePaint = new Paint();
387 | ePaint.setColor(ERROR_COLOR);
388 | ePaint.setStyle(Style.STROKE);
389 |
390 | }
391 |
392 | public String getPwd() {
393 | StringBuilder sb = new StringBuilder();
394 | for (PPoint p : pwdps) {
395 | int k = p.i + 1 + p.j * row;
396 | sb.append(k);
397 | }
398 | return sb.toString();
399 | }
400 |
401 | /**
402 | * f范围0~1
403 | * 根据f值得到一个相应透明度的颜色
404 | */
405 | private int getColor(float f) {
406 | return Color.argb((int) (255 * f), Color.red(NORMAL_COLOR), Color.green(NORMAL_COLOR), Color.blue(NORMAL_COLOR));
407 | }
408 |
409 | public void setLineWidth(float lineW) {
410 | nPaint.setStrokeWidth(lineW);
411 | ePaint.setStrokeWidth(lineW);
412 | endPaint.setStrokeWidth(lineW);
413 | }
414 |
415 | /**
416 | * 移动到可以吸附的点,两个路径都需要接入这个点,两个路径都需要将这个点设为起始点
417 | */
418 | public void moveTo(PPoint p) {
419 | path.reset();
420 | path.moveTo(p.x, p.y);
421 | pwdps = new LinkedHashSet();
422 |
423 | exAdd(p);
424 | pwdps.add(p);
425 |
426 | pathStart.reset();
427 | pathStart.moveTo(p.x, p.y);
428 | last = p;
429 | }
430 |
431 | /**
432 | * 处理两个连接点之间有一个未连接点得情况
433 | *
434 | * @param p
435 | */
436 | private void exAdd(PPoint p) {
437 | int i1 = null == last ? p.i : last.i;
438 | int i2 = p.i;
439 | int j1 = null == last ? p.j : last.j;
440 | int j2 = p.j;
441 | if (Math.abs(i1 - i2) == 2 && j1 == j2) {
442 | if (!points[(i1 + i2) / 2][j1].selected) {
443 | doAnimation(points[(i1 + i2) / 2][j1]);
444 | pwdps.add(points[(i1 + i2) / 2][j1].setIndex((i1 + i2) / 2, j1));
445 | }
446 | } else if (Math.abs(j1 - j2) == 2 && i1 == i2) {
447 | if (!points[i1][(j1 + j2) / 2].selected) {
448 | doAnimation(points[i1][(j1 + j2) / 2]);
449 | pwdps.add(points[i1][(j1 + j2) / 2].setIndex(i1, (j1 + j2) / 2));
450 | }
451 | } else if (Math.abs(i1 - i2) == 2 && Math.abs(j1 - j2) == 2) {
452 | if (!points[(i1 + i2) / 2][(j1 + j2) / 2].selected) {
453 | doAnimation(points[(i1 + i2) / 2][(j1 + j2) / 2]);
454 | pwdps.add(points[(i1 + i2) / 2][(j1 + j2) / 2].setIndex((i1 + i2) / 2, (j1 + j2) / 2));
455 | }
456 | }
457 | }
458 |
459 | /**
460 | * 意思同path的lineTo方法,path需要执行lineTo方法,而pathStart则仍然需要设置成起始点
461 | */
462 | public void lineTo(PPoint p) {
463 | path.lineTo(p.x, p.y);
464 | exAdd(p);
465 | pwdps.add(p);
466 | pathStart.reset();
467 | pathStart.moveTo(p.x, p.y);
468 | last = p;
469 | }
470 |
471 | PPoint touchP;
472 |
473 | /**
474 | * 这是在吸附了一个点之后,手指移动
475 | * 这个时候需要重新初始化该path,起始点为pwdpath连接到的最后一个点,终点为传入的触摸事件发生的位置
476 | */
477 | public void startTo(float x, float y) {
478 | pathStart.reset();
479 | pathStart.moveTo(last.x, last.y);
480 | pathStart.lineTo(x, y);
481 | touchP = new PPoint(x, y, 0);
482 | }
483 |
484 | /**
485 | * 绘制密码路径,正确的时候不画点,错误的时候画点
486 | */
487 | public void draw(Canvas c, boolean isRight) {
488 | if (isRight) {
489 | c.drawPath(path, nPaint);
490 | } else {
491 | c.drawPath(path, ePaint);
492 | for (PPoint point : pwdps) {
493 | point.draw(c, isRight);
494 | }
495 | }
496 | float factor = 1;
497 | if (null != touchP) {//如果正在触摸,根据触摸点 到上一个连接的点的距离计算 多出线头的透明度
498 | float dis = touchP.distanceTo(last);
499 | if (dis > fadeDis) {
500 | factor = 1;
501 | } else if (dis >= safeDis) {
502 | factor = (dis - safeDis) * 1.0f / safeDis;
503 | } else {
504 | factor = 0;
505 | }
506 | }
507 | endPaint.setColor(getColor(factor));
508 | c.drawPath(pathStart, endPaint);
509 | }
510 | }
511 |
512 | private GestureLockCallback callback;
513 |
514 | public void setCallback(GestureLockCallback callback) {
515 | this.callback = callback;
516 | }
517 |
518 | /**
519 | * 手势密码回调接口
520 | *
521 | * @author monkey-d-wood
522 | */
523 | public interface GestureLockCallback {
524 | public void onFinish(String pwdString, Result result);
525 | }
526 |
527 | }
528 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sovnem/lockrelease/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.sovnem.lockrelease;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.view.View;
7 | import android.view.View.OnClickListener;
8 | import android.widget.Button;
9 | import android.widget.TextView;
10 | import android.widget.Toast;
11 |
12 | public class MainActivity extends Activity implements OnClickListener {
13 |
14 | private static final int VERIFY = 1110;
15 | private String pwd;
16 | private TextView pwdView;
17 | private Button setButton, openButton;
18 |
19 | @Override
20 | protected void onCreate(Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | setContentView(R.layout.activity_main);
23 | pwd = SecretPrefUtil.getSecretString(this);
24 | initView();
25 | }
26 |
27 | private void initView() {
28 | pwdView = (TextView) findViewById(R.id.textView_pwd);
29 | pwdView.setText(pwd);
30 | setButton = (Button) findViewById(R.id.button_set);
31 | openButton = (Button) findViewById(R.id.button_open);
32 | setButton.setOnClickListener(this);
33 | openButton.setOnClickListener(this);
34 | }
35 |
36 | @Override
37 | public void onClick(View v) {
38 | switch (v.getId()) {
39 | case R.id.button_open:
40 | open();
41 | break;
42 | case R.id.button_set:
43 | set();
44 | break;
45 | }
46 | }
47 |
48 | private void set() {
49 | Intent intent = new Intent(this, SetsecretActivity.class);
50 | startActivityForResult(intent, SET);
51 | }
52 |
53 | private void open() {
54 | if ("".equals(pwd)) {
55 | Toast.makeText(this, "请先设置密码", Toast.LENGTH_LONG).show();
56 | set();
57 | } else {
58 | Intent intent = new Intent(this, VerifyActivity.class);
59 | startActivityForResult(intent, VERIFY);
60 | }
61 | }
62 |
63 | public static final int SET = 1109;
64 |
65 | @Override
66 | protected void onActivityResult(int requestCode, int resultCode, Intent data) {
67 | if (requestCode == SET && resultCode == RESULT_OK) {
68 | if (data.getBooleanExtra("set", false)) {
69 | pwd = SecretPrefUtil.getSecretString(this);
70 | pwdView.setText(pwd);
71 | }
72 | } else if (requestCode == VERIFY && resultCode == RESULT_OK) {
73 | if (data.getBooleanExtra("verify", false)) {
74 | jump();
75 | }
76 | }
77 | super.onActivityResult(requestCode, resultCode, data);
78 | }
79 |
80 | private void jump() {
81 | Intent intent = new Intent(this, OtherActivity.class);
82 | startActivity(intent);
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sovnem/lockrelease/OtherActivity.java:
--------------------------------------------------------------------------------
1 | package com.sovnem.lockrelease;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 |
6 | /**
7 | * 跳转界面
8 | * @author monkey-d-wood
9 | */
10 | public class OtherActivity extends Activity {
11 |
12 | @Override
13 | protected void onCreate(Bundle savedInstanceState) {
14 | super.onCreate(savedInstanceState);
15 | setContentView(R.layout.other);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sovnem/lockrelease/SecretPrefUtil.java:
--------------------------------------------------------------------------------
1 | package com.sovnem.lockrelease;
2 |
3 | import android.content.Context;
4 | import android.content.SharedPreferences;
5 |
6 | public class SecretPrefUtil {
7 | private static final String SECRET_KEY = "sovnem.lock.key";
8 |
9 | public static String getSecretString(Context context) {
10 | SharedPreferences sp = context.getSharedPreferences(SECRET_KEY,
11 | Context.MODE_WORLD_READABLE);
12 | return sp.getString(SECRET_KEY, "");
13 | }
14 |
15 | public static void saveSecret(String secret, Context context) {
16 | SharedPreferences sp = context.getSharedPreferences(SECRET_KEY,
17 | Context.MODE_WORLD_READABLE);
18 | sp.edit().putString(SECRET_KEY, secret).commit();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sovnem/lockrelease/SetsecretActivity.java:
--------------------------------------------------------------------------------
1 | package com.sovnem.lockrelease;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.widget.TextView;
7 | import android.widget.Toast;
8 |
9 | import com.sovnem.lockrelease.GestureLockView.GestureLockCallback;
10 | import com.sovnem.lockrelease.GestureLockView.Result;
11 |
12 | /**
13 | * 设置手势密码界面
14 | * @author monkey-d-wood
15 | */
16 | public class SetsecretActivity extends Activity {
17 | String recordString;
18 | private String first = "";
19 |
20 | @Override
21 | protected void onCreate(Bundle savedInstanceState) {
22 | super.onCreate(savedInstanceState);
23 | setContentView(R.layout.setsecret);
24 | initView();
25 | }
26 |
27 | TextView tvDesc;
28 | GestureLockView glv;
29 | boolean hasSetFirst;
30 |
31 | private void initView() {
32 | tvDesc = (TextView) findViewById(R.id.textView_desc);
33 | glv = (GestureLockView) findViewById(R.id.lock);
34 | glv.setCallback(new GestureLockCallback() {
35 |
36 | @Override
37 | public void onFinish(String pwdString, Result result) {
38 | /*
39 | * 手势设置
40 | * 如果是第一次设置 记录密码并设置标记为true
41 | *
42 | * 如果不是第一次设置 与记录的密码对比 如果正确 提示设置完成保存这个密码
43 | * 如果不正确 提示两次设置不同 并把标记设置为false
44 | */
45 |
46 | if (!hasSetFirst) {
47 | first = pwdString;
48 | hasSetFirst = true;
49 | result.setRight(true);
50 | } else {
51 | if (pwdString.equals(first)) {
52 | show("设置成功");
53 | SecretPrefUtil
54 | .saveSecret(first, SetsecretActivity.this);
55 | Intent data = getIntent();
56 | data.putExtra("set", true);
57 | setResult(RESULT_OK, data);
58 | finish();
59 | } else {
60 | show("两次设置的密码不一致");
61 | result.setRight(false);
62 | hasSetFirst = false;
63 | }
64 |
65 | }
66 | }
67 | });
68 | }
69 |
70 | void show(String msg) {
71 | Toast.makeText(SetsecretActivity.this, msg + "", Toast.LENGTH_LONG)
72 | .show();
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sovnem/lockrelease/VerifyActivity.java:
--------------------------------------------------------------------------------
1 | package com.sovnem.lockrelease;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.widget.TextView;
7 | import android.widget.Toast;
8 |
9 | import com.sovnem.lockrelease.GestureLockView.GestureLockCallback;
10 | import com.sovnem.lockrelease.GestureLockView.Result;
11 |
12 | /**
13 | * 验证手势密码界面
14 | * @author monkey-d-wood
15 | */
16 | public class VerifyActivity extends Activity {
17 | String passwordString;
18 |
19 | @Override
20 | protected void onCreate(Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | setContentView(R.layout.verify);
23 | passwordString = SecretPrefUtil.getSecretString(this);
24 | initView();
25 | }
26 |
27 | TextView tvDesc;
28 | GestureLockView glv;
29 |
30 | private void initView() {
31 | tvDesc = (TextView) findViewById(R.id.textView_desc);
32 | glv = (GestureLockView) findViewById(R.id.lock);
33 | glv.setCallback(new GestureLockCallback() {
34 |
35 | @Override
36 | public void onFinish(String pwdString, Result result) {
37 | if (pwdString.equals(passwordString)) {
38 | Intent data = getIntent();
39 | data.putExtra("verify", true);
40 | setResult(RESULT_OK, data);
41 | result.setRight(true);
42 | finish();
43 | } else {
44 | Toast.makeText(VerifyActivity.this, "密码不正确",
45 | Toast.LENGTH_LONG).show();
46 | result.setRight(false);
47 | }
48 | }
49 | });
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/src/main/res/drawable-xhdpi/a.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/src/main/res/drawable-xhdpi/b.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/app/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
16 |
17 |
26 |
27 |
35 |
36 |
45 |
46 |
55 |
56 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/other.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/setsecret.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
18 |
19 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/verify.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
17 |
18 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | a高仿解锁
5 | Hello world!
6 | 设置密码
7 | 输入手势
8 | 我是一个需要手势密码打开的activity
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | buildscript {
3 | repositories {
4 | jcenter()
5 | }
6 | dependencies {
7 | classpath 'com.android.tools.build:gradle:1.5.0'
8 | }
9 | }
10 |
11 | allprojects {
12 | repositories {
13 | jcenter()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/build/intermediates/dex-cache/cache.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/getsturelock.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/gif/fd.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/gif/fd.gif
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gamedirty/gesturelock/35f6b9b01e621e83cefe08df4b3b6cf9432cd16a/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Oct 21 11:34:03 PDT 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # Attempt to set APP_HOME
46 | # Resolve links: $0 may be a link
47 | PRG="$0"
48 | # Need this for relative symlinks.
49 | while [ -h "$PRG" ] ; do
50 | ls=`ls -ld "$PRG"`
51 | link=`expr "$ls" : '.*-> \(.*\)$'`
52 | if expr "$link" : '/.*' > /dev/null; then
53 | PRG="$link"
54 | else
55 | PRG=`dirname "$PRG"`"/$link"
56 | fi
57 | done
58 | SAVED="`pwd`"
59 | cd "`dirname \"$PRG\"`/" >/dev/null
60 | APP_HOME="`pwd -P`"
61 | cd "$SAVED" >/dev/null
62 |
63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
64 |
65 | # Determine the Java command to use to start the JVM.
66 | if [ -n "$JAVA_HOME" ] ; then
67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
68 | # IBM's JDK on AIX uses strange locations for the executables
69 | JAVACMD="$JAVA_HOME/jre/sh/java"
70 | else
71 | JAVACMD="$JAVA_HOME/bin/java"
72 | fi
73 | if [ ! -x "$JAVACMD" ] ; then
74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
75 |
76 | Please set the JAVA_HOME variable in your environment to match the
77 | location of your Java installation."
78 | fi
79 | else
80 | JAVACMD="java"
81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
82 |
83 | Please set the JAVA_HOME variable in your environment to match the
84 | location of your Java installation."
85 | fi
86 |
87 | # Increase the maximum file descriptors if we can.
88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89 | MAX_FD_LIMIT=`ulimit -H -n`
90 | if [ $? -eq 0 ] ; then
91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92 | MAX_FD="$MAX_FD_LIMIT"
93 | fi
94 | ulimit -n $MAX_FD
95 | if [ $? -ne 0 ] ; then
96 | warn "Could not set maximum file descriptor limit: $MAX_FD"
97 | fi
98 | else
99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 | fi
101 | fi
102 |
103 | # For Darwin, add options to specify how the application appears in the dock
104 | if $darwin; then
105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106 | fi
107 |
108 | # For Cygwin, switch paths to Windows format before running java
109 | if $cygwin ; then
110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 | JAVACMD=`cygpath --unix "$JAVACMD"`
113 |
114 | # We build the pattern for arguments to be converted via cygpath
115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 | SEP=""
117 | for dir in $ROOTDIRSRAW ; do
118 | ROOTDIRS="$ROOTDIRS$SEP$dir"
119 | SEP="|"
120 | done
121 | OURCYGPATTERN="(^($ROOTDIRS))"
122 | # Add a user-defined pattern to the cygpath arguments
123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 | fi
126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 | i=0
128 | for arg in "$@" ; do
129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131 |
132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 | else
135 | eval `echo args$i`="\"$arg\""
136 | fi
137 | i=$((i+1))
138 | done
139 | case $i in
140 | (0) set -- ;;
141 | (1) set -- "$args0" ;;
142 | (2) set -- "$args0" "$args1" ;;
143 | (3) set -- "$args0" "$args1" "$args2" ;;
144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 | esac
151 | fi
152 |
153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154 | function splitJvmOpts() {
155 | JVM_OPTS=("$@")
156 | }
157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159 |
160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
161 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/import-summary.txt:
--------------------------------------------------------------------------------
1 | ECLIPSE ANDROID PROJECT IMPORT SUMMARY
2 | ======================================
3 |
4 | Ignored Files:
5 | --------------
6 | The following files were *not* copied into the new Gradle project; you
7 | should evaluate whether these are still needed in your project and if
8 | so manually move them:
9 |
10 | * ic_launcher-web.png
11 | * proguard-project.txt
12 |
13 | Replaced Jars with Dependencies:
14 | --------------------------------
15 | The importer recognized the following .jar files as third party
16 | libraries and replaced them with Gradle dependencies instead. This has
17 | the advantage that more explicit version information is known, and the
18 | libraries can be updated automatically. However, it is possible that
19 | the .jar file in your project was of an older version than the
20 | dependency we picked, which could render the project not compileable.
21 | You can disable the jar replacement in the import wizard and try again:
22 |
23 | android-support-v4.jar => com.android.support:support-v4:18.0.0
24 |
25 | Moved Files:
26 | ------------
27 | Android Gradle projects use a different directory structure than ADT
28 | Eclipse projects. Here's how the projects were restructured:
29 |
30 | * AndroidManifest.xml => app\src\main\AndroidManifest.xml
31 | * assets\ => app\src\main\assets
32 | * res\ => app\src\main\res\
33 | * src\ => app\src\main\java\
34 |
35 | Next Steps:
36 | -----------
37 | You can now build the project. The Gradle project needs network
38 | connectivity to download dependencies.
39 |
40 | Bugs:
41 | -----
42 | If for some reason your project does not build, and you determine that
43 | it is due to a bug or limitation of the Eclipse to Gradle importer,
44 | please file a bug at http://b.android.com with category
45 | Component-Tools.
46 |
47 | (This import summary is for your information only, and can be deleted
48 | after import once you are satisfied with the results.)
49 |
--------------------------------------------------------------------------------
/local.properties:
--------------------------------------------------------------------------------
1 | ## This file must *NOT* be checked into Version Control Systems,
2 | # as it contains information specific to your local configuration.
3 | #
4 | # Location of the SDK. This is only used by Gradle.
5 | #
6 | #Thu Feb 18 10:33:42 CST 2016
7 | sdk.dir=F\:\\android_ide\\android-sdk-windows5.0\\android-sdk-windows
8 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------