Skip to content

Commit 9c50e55

Browse files
committed
(っ˘▽˘)っ ☁️ ⊂(◕。◕⊂)
1 parent 84565b1 commit 9c50e55

28 files changed

+1965
-0
lines changed

app/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

app/app.iml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="FileSync" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="android-gradle" name="Android-Gradle">
5+
<configuration>
6+
<option name="GRADLE_PROJECT_PATH" value=":app" />
7+
</configuration>
8+
</facet>
9+
<facet type="android" name="Android">
10+
<configuration>
11+
<option name="SELECTED_BUILD_VARIANT" value="debug" />
12+
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
13+
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
14+
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
15+
<option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
16+
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
17+
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
18+
<option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugAndroidTestSources" />
19+
<option name="ALLOW_USER_CONFIGURATION" value="false" />
20+
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
21+
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
22+
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
23+
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
24+
</configuration>
25+
</facet>
26+
</component>
27+
<component name="NewModuleRootManager" inherit-compiler-output="false">
28+
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
29+
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
30+
<exclude-output />
31+
<content url="file://$MODULE_DIR$">
32+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
33+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
34+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
35+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
36+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
37+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" />
38+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
39+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
40+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
41+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
42+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
43+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/androidTest/debug" type="java-test-resource" />
44+
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
45+
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
46+
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
47+
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
48+
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
49+
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
50+
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
51+
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
52+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" type="java-resource" />
53+
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
54+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
55+
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
56+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
57+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
58+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
59+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
60+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
61+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
62+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
63+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
64+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
65+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
66+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
67+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
68+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
69+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
70+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
71+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
72+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
73+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
74+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
75+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
76+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
77+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
78+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
79+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
80+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
81+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
82+
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
83+
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
84+
</content>
85+
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
86+
<orderEntry type="sourceFolder" forTests="false" />
87+
<orderEntry type="library" exported="" name="core-0.6.1-20150618.063119-1" level="project" />
88+
<orderEntry type="library" exported="" name="appcompat-v7-23.0.1" level="project" />
89+
<orderEntry type="library" exported="" name="support-v4-23.0.1" level="project" />
90+
<orderEntry type="library" exported="" name="support-annotations-23.0.1" level="project" />
91+
</component>
92+
</module>

app/build.gradle

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import java.util.concurrent.TimeUnit
2+
3+
apply plugin: 'com.android.application'
4+
5+
android {
6+
compileSdkVersion 23
7+
buildToolsVersion '23.0.1'
8+
9+
defaultConfig {
10+
applicationId "com.maxleap.filesync"
11+
minSdkVersion 14
12+
targetSdkVersion 23
13+
versionCode 1
14+
versionName "1.0"
15+
}
16+
buildTypes {
17+
release {
18+
minifyEnabled false
19+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20+
}
21+
}
22+
sourceSets {
23+
main {
24+
manifest.srcFile 'src/main/AndroidManifest.xml'
25+
java.srcDirs = ['src/main/java']
26+
resources.srcDirs = ['src/main/java']
27+
aidl.srcDirs = ['src/main/java']
28+
renderscript.srcDirs = ['src/main/java']
29+
res.srcDirs = ['src/main/res']
30+
assets.srcDirs = ['src/main/assets']
31+
}
32+
}
33+
34+
lintOptions {
35+
abortOnError false
36+
ignoreWarnings true
37+
}
38+
39+
packagingOptions {
40+
exclude 'META-INF/LICENSE.txt'
41+
exclude 'META-INF/NOTICE.txt'
42+
}
43+
}
44+
45+
dependencies {
46+
compile fileTree(dir: 'libs', include: ['*.jar'])
47+
compile 'com.android.support:appcompat-v7:23.0.1'
48+
compile files('libs/core-0.6.1-20150618.063119-1.jar')
49+
}
50+
51+
configurations.all {
52+
resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS)
53+
}
627 KB
Binary file not shown.

app/proguard-rules.pro

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Add project specific ProGuard rules here.
2+
# By default, the flags in this file are appended to flags specified
3+
# in /Users/yjy951753/Documents/libs/sdk/tools/proguard/proguard-android.txt
4+
# You can edit the include path and order by changing the proguardFiles
5+
# directive in build.gradle.
6+
#
7+
# For more details, see
8+
# http://developer.android.com/guide/developing/tools/proguard.html
9+
10+
# Add any project specific keep options here:
11+
12+
# If your project uses WebView with JS, uncomment the following
13+
# and specify the fully qualified class name to the JavaScript interface
14+
# class:
15+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16+
# public *;
17+
#}

app/src/main/AndroidManifest.xml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="com.maxleap.filesync" >
4+
5+
<uses-permission android:name="android.permission.INTERNET" />
6+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
7+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
8+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
9+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
10+
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
11+
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
12+
13+
<application
14+
android:allowBackup="true"
15+
android:icon="@drawable/ic_launcher"
16+
android:label="@string/app_name"
17+
android:theme="@style/AppTheme" >
18+
<activity
19+
android:name="com.maxleap.example.MainActivity"
20+
android:label="@string/app_name" >
21+
<intent-filter>
22+
<action android:name="android.intent.action.MAIN" />
23+
24+
<category android:name="android.intent.category.LAUNCHER" />
25+
</intent-filter>
26+
</activity>
27+
</application>
28+
29+
</manifest>
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
package com.maxleap.example;
2+
3+
import android.os.Bundle;
4+
import android.os.Environment;
5+
import android.support.v7.app.ActionBarActivity;
6+
import android.util.Log;
7+
8+
import com.maxleap.filesync.R;
9+
import com.maxleap.filesync.SyncManager;
10+
11+
import java.io.File;
12+
import java.io.IOException;
13+
14+
import as.leap.LASConfig;
15+
import as.leap.LASUser;
16+
import as.leap.LASUserManager;
17+
import as.leap.callback.LogInCallback;
18+
import as.leap.callback.SignUpCallback;
19+
import as.leap.exception.LASException;
20+
21+
22+
public class MainActivity extends ActionBarActivity {
23+
private SyncManager mSyncManager;
24+
private String mSyncRoot;
25+
26+
private static final boolean DEBUG = true;
27+
28+
@Override
29+
protected void onCreate(Bundle savedInstanceState) {
30+
super.onCreate(savedInstanceState);
31+
setContentView(R.layout.activity_main);
32+
33+
initMaxLeapService();
34+
register();
35+
login();
36+
}
37+
38+
private void initMaxLeapService() {
39+
String applicationID = "5602069560b29edb434dd7ec";
40+
String restApiKey = "NzJnejdtYWRzNkpfOGhORkQ0MWNRQQ";
41+
LASConfig.initialize(this, applicationID, restApiKey);
42+
}
43+
44+
private void register() {
45+
final String username = "filesync";
46+
final String password = "maxleapmobile";
47+
LASUser user = new LASUser();
48+
user.setUserName(username);
49+
user.setPassword(password);
50+
LASUserManager.signUpInBackground(user,
51+
new SignUpCallback() {
52+
@Override
53+
public void done(LASException e) {
54+
log("=====signUpInBackground e : " + e);
55+
LASUserManager.logInInBackground(username, password, new LogInCallback<LASUser>() {
56+
@Override
57+
public void done(LASUser lasUser, LASException e) {
58+
log("=====logInInBackground e : " + e);
59+
}
60+
});
61+
}
62+
});
63+
}
64+
65+
private void login() {
66+
final String username = "filesync";
67+
final String password = "maxleapmobile";
68+
LASUserManager.logInInBackground(username, password, new LogInCallback<LASUser>() {
69+
@Override
70+
public void done(LASUser lasUser, LASException e) {
71+
log("=====logInInBackground lasUser : " + lasUser);
72+
log("=====logInInBackground e : " + e);
73+
test();
74+
}
75+
});
76+
}
77+
78+
private void test() {
79+
configSync();
80+
// addFileTest();
81+
// clearAllTest();
82+
// addDirTest();
83+
// copyFileTest();
84+
// deleteFileTest();
85+
// moveFileTest();
86+
syncTest();
87+
}
88+
89+
private void syncTest() {
90+
mSyncManager.startSync();
91+
}
92+
93+
private void addDirTest() {
94+
File a = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/dir_02/");
95+
if (!a.exists()) {
96+
try {
97+
a.mkdirs();
98+
} catch (Exception e) {
99+
e.printStackTrace();
100+
}
101+
}
102+
mSyncManager.addFile(a, new File(mSyncRoot + "/dir_02/"));
103+
}
104+
105+
private void addFileTest() {
106+
File a = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/file_02.txt");
107+
if (!a.exists()) {
108+
try {
109+
a.createNewFile();
110+
} catch (IOException e) {
111+
e.printStackTrace();
112+
}
113+
}
114+
mSyncManager.addFile(a, new File(mSyncRoot + "/file_02.txt"));
115+
}
116+
117+
private void copyFileTest() {
118+
mSyncManager.copyFile(new File(mSyncRoot + "/file_01.txt"), new File(mSyncRoot + "/dir_01/file_01.txt"));
119+
}
120+
121+
private void deleteFileTest() {
122+
mSyncManager.deleteFile(new File(mSyncRoot + "/dir_01/file_01.txt"));
123+
}
124+
125+
private void clearAllTest() {
126+
mSyncManager.deleteFile(new File(mSyncRoot));
127+
}
128+
129+
private void moveFileTest() {
130+
mSyncManager.moveFile(new File(mSyncRoot + "/dir_01/"), new File(mSyncRoot + "/dir_02/dir_01/"));
131+
}
132+
133+
private void configSync() {
134+
mSyncManager = SyncManager.getInstance(this);
135+
mSyncRoot = Environment.getExternalStorageDirectory().getAbsolutePath() + "/SyncTest/";
136+
mSyncManager.setSyncRoot(mSyncRoot);
137+
}
138+
139+
private void log(String content) {
140+
if (DEBUG) {
141+
Log.d("MainActivity", content);
142+
}
143+
}
144+
145+
}

0 commit comments

Comments
 (0)