Commit ebfc18b92ac9406a5648049d73d5eda32e21a895

Authored by 王琳
0 parents

用户SDK demo

Showing 44 changed files with 1314 additions and 0 deletions
.gitignore 0 → 100644
  1 +++ a/.gitignore
  1 +*.iml
  2 +.gradle
  3 +/local.properties
  4 +/.idea/workspace.xml
  5 +/.idea/libraries
  6 +.DS_Store
  7 +/build
  8 +/captures
... ...
.idea/.name 0 → 100644
  1 +++ a/.idea/.name
  1 +CNUserDemo
0 2 \ No newline at end of file
... ...
.idea/compiler.xml 0 → 100644
  1 +++ a/.idea/compiler.xml
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="CompilerConfiguration">
  4 + <resourceExtensions />
  5 + <wildcardResourcePatterns>
  6 + <entry name="!?*.java" />
  7 + <entry name="!?*.form" />
  8 + <entry name="!?*.class" />
  9 + <entry name="!?*.groovy" />
  10 + <entry name="!?*.scala" />
  11 + <entry name="!?*.flex" />
  12 + <entry name="!?*.kt" />
  13 + <entry name="!?*.clj" />
  14 + <entry name="!?*.aj" />
  15 + </wildcardResourcePatterns>
  16 + <annotationProcessing>
  17 + <profile default="true" name="Default" enabled="false">
  18 + <processorPath useClasspath="true" />
  19 + </profile>
  20 + </annotationProcessing>
  21 + </component>
  22 +</project>
0 23 \ No newline at end of file
... ...
.idea/copyright/profiles_settings.xml 0 → 100644
  1 +++ a/.idea/copyright/profiles_settings.xml
  1 +<component name="CopyrightManager">
  2 + <settings default="" />
  3 +</component>
0 4 \ No newline at end of file
... ...
.idea/encodings.xml 0 → 100644
  1 +++ a/.idea/encodings.xml
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="Encoding">
  4 + <file url="PROJECT" charset="UTF-8" />
  5 + </component>
  6 +</project>
0 7 \ No newline at end of file
... ...
.idea/gradle.xml 0 → 100644
  1 +++ a/.idea/gradle.xml
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="GradleSettings">
  4 + <option name="linkedExternalProjectsSettings">
  5 + <GradleProjectSettings>
  6 + <option name="distributionType" value="DEFAULT_WRAPPED" />
  7 + <option name="externalProjectPath" value="$PROJECT_DIR$" />
  8 + <option name="modules">
  9 + <set>
  10 + <option value="$PROJECT_DIR$" />
  11 + <option value="$PROJECT_DIR$/app" />
  12 + </set>
  13 + </option>
  14 + <option name="myModules">
  15 + <set>
  16 + <option value="$PROJECT_DIR$" />
  17 + <option value="$PROJECT_DIR$/app" />
  18 + </set>
  19 + </option>
  20 + </GradleProjectSettings>
  21 + </option>
  22 + </component>
  23 +</project>
0 24 \ No newline at end of file
... ...
.idea/misc.xml 0 → 100644
  1 +++ a/.idea/misc.xml
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="EntryPointsManager">
  4 + <entry_points version="2.0" />
  5 + </component>
  6 + <component name="NullableNotNullManager">
  7 + <option name="myDefaultNullable" value="android.support.annotation.Nullable" />
  8 + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
  9 + <option name="myNullables">
  10 + <value>
  11 + <list size="4">
  12 + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
  13 + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
  14 + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
  15 + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
  16 + </list>
  17 + </value>
  18 + </option>
  19 + <option name="myNotNulls">
  20 + <value>
  21 + <list size="4">
  22 + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
  23 + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
  24 + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
  25 + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
  26 + </list>
  27 + </value>
  28 + </option>
  29 + </component>
  30 + <component name="ProjectLevelVcsManager" settingsEditedManually="false">
  31 + <OptionsSetting value="true" id="Add" />
  32 + <OptionsSetting value="true" id="Remove" />
  33 + <OptionsSetting value="true" id="Checkout" />
  34 + <OptionsSetting value="true" id="Update" />
  35 + <OptionsSetting value="true" id="Status" />
  36 + <OptionsSetting value="true" id="Edit" />
  37 + <ConfirmationsSetting value="0" id="Add" />
  38 + <ConfirmationsSetting value="0" id="Remove" />
  39 + </component>
  40 + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
  41 + <output url="file://$PROJECT_DIR$/build/classes" />
  42 + </component>
  43 + <component name="ProjectType">
  44 + <option name="id" value="Android" />
  45 + </component>
  46 + <component name="masterDetails">
  47 + <states>
  48 + <state key="ProjectJDKs.UI">
  49 + <settings>
  50 + <last-edited>1.8</last-edited>
  51 + <splitter-proportions>
  52 + <option name="proportions">
  53 + <list>
  54 + <option value="0.2" />
  55 + </list>
  56 + </option>
  57 + </splitter-proportions>
  58 + </settings>
  59 + </state>
  60 + </states>
  61 + </component>
  62 +</project>
0 63 \ No newline at end of file
... ...
.idea/modules.xml 0 → 100644
  1 +++ a/.idea/modules.xml
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ProjectModuleManager">
  4 + <modules>
  5 + <module fileurl="file://$PROJECT_DIR$/CNUserDemo.iml" filepath="$PROJECT_DIR$/CNUserDemo.iml" />
  6 + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
  7 + </modules>
  8 + </component>
  9 +</project>
0 10 \ No newline at end of file
... ...
.idea/runConfigurations.xml 0 → 100644
  1 +++ a/.idea/runConfigurations.xml
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="RunConfigurationProducerService">
  4 + <option name="ignoredProducers">
  5 + <set>
  6 + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
  7 + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
  8 + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
  9 + </set>
  10 + </option>
  11 + </component>
  12 +</project>
0 13 \ No newline at end of file
... ...
app/.gitignore 0 → 100644
  1 +++ a/app/.gitignore
  1 +/build
... ...
app/build.gradle 0 → 100644
  1 +++ a/app/build.gradle
  1 +apply plugin: 'com.android.application'
  2 +
  3 +android {
  4 + compileSdkVersion 24
  5 + buildToolsVersion "24.0.2"
  6 +
  7 + defaultConfig {
  8 + applicationId "com.cnlive.libs"
  9 + minSdkVersion 16
  10 + targetSdkVersion 24
  11 + versionCode 1
  12 + versionName "1.0"
  13 + }
  14 + buildTypes {
  15 + release {
  16 + minifyEnabled false
  17 + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  18 + }
  19 + }
  20 +}
  21 +
  22 +dependencies {
  23 + compile fileTree(include: ['*.jar'], dir: 'libs')
  24 + testCompile 'junit:junit:4.12'
  25 + compile 'com.android.support:appcompat-v7:24.2.0'
  26 + compile files('libs/libcnliveutil.jar')
  27 +}
... ...
app/libs/libcnliveuser.jar 0 → 100644
No preview for this file type
app/libs/libcnliveutil.jar 0 → 100644
No preview for this file type
app/proguard-rules.pro 0 → 100644
  1 +++ a/app/proguard-rules.pro
  1 +# Add project specific ProGuard rules here.
  2 +# By default, the flags in this file are appended to flags specified
  3 +# in D:\android_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/androidTest/java/com/cnlive/libs/ApplicationTest.java 0 → 100644
  1 +++ a/app/src/androidTest/java/com/cnlive/libs/ApplicationTest.java
  1 +package com.cnlive.libs;
  2 +
  3 +import android.app.Application;
  4 +import android.test.ApplicationTestCase;
  5 +
  6 +/**
  7 + * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
  8 + */
  9 +public class ApplicationTest extends ApplicationTestCase<Application> {
  10 + public ApplicationTest() {
  11 + super(Application.class);
  12 + }
  13 +}
0 14 \ No newline at end of file
... ...
app/src/main/AndroidManifest.xml 0 → 100644
  1 +++ a/app/src/main/AndroidManifest.xml
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3 + package="com.cnlive.libs">
  4 +
  5 + <!-- 短信 -->
  6 + <uses-permission android:name="android.permission.SEND_SMS" />
  7 + <uses-permission android:name="android.permission.RECEIVE_SMS" />
  8 + <uses-permission android:name="android.permission.READ_SMS" />
  9 +
  10 + <uses-permission android:name="android.permission.READ_PHONE_SINTERNETWIFI_STATE" />
  11 + <uses-permission android:name="android.hardware.sensor.accelerometer" />
  12 + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  13 + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  14 + <uses-permission android:name="android.permission.BLUETOOTH" />
  15 + <uses-permission android:name="android.permission.INTERNET" />
  16 + <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  17 + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  18 + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  19 +
  20 + <application
  21 + android:name=".CNLiveApplication"
  22 + android:allowBackup="true"
  23 + android:icon="@mipmap/ic_launcher"
  24 + android:label="@string/app_name"
  25 + android:supportsRtl="true"
  26 + android:theme="@style/AppTheme">
  27 + <activity android:name=".UserActivity">
  28 + <intent-filter>
  29 + <action android:name="android.intent.action.MAIN" />
  30 +
  31 + <category android:name="android.intent.category.LAUNCHER" />
  32 + </intent-filter>
  33 + </activity>
  34 + <activity android:name="QuickLoginActivity" />
  35 + <activity android:name="RegisterActivity" />
  36 + <activity android:name="OtherActivity"/>
  37 + </application>
  38 +
  39 +</manifest>
0 40 \ No newline at end of file
... ...
app/src/main/java/com/cnlive/libs/BaseActivity.java 0 → 100644
  1 +++ a/app/src/main/java/com/cnlive/libs/BaseActivity.java
  1 +package com.cnlive.libs;
  2 +
  3 +import android.os.Bundle;
  4 +import android.support.v7.app.AppCompatActivity;
  5 +import android.util.Log;
  6 +
  7 +import com.cnlive.libs.user.CNLiveUser;
  8 +import com.cnlive.libs.user.CNUserCallBack;
  9 +import com.cnlive.libs.user.model.CNUserBuilder;
  10 +import com.cnlive.libs.user.model.UserState;
  11 +
  12 +/**
  13 + * Created by Administrator on 2016/9/22.
  14 + */
  15 +public class BaseActivity extends AppCompatActivity {
  16 +
  17 + public CNLiveUser cnLiveUser;
  18 + public CNUserCallBack cnUserCallBack = new CNUserUtilCallback();
  19 + public CNUserBuilder.Builder cnUserBuilder = new CNUserBuilder.Builder();
  20 +
  21 + @Override
  22 + protected void onCreate(Bundle savedInstanceState) {
  23 + super.onCreate(savedInstanceState);
  24 + cnLiveUser = new CNLiveUser(cnUserCallBack, cnUserBuilder);
  25 + }
  26 +
  27 + private class CNUserUtilCallback implements CNUserCallBack {
  28 +
  29 + @Override
  30 + public void onUserState(String what, String extra) {
  31 + switch (what){
  32 + case UserState.ERROR_INIT_NETWORK:
  33 + //网络连接失败
  34 + break;
  35 + case UserState.ERROR_INIT_OTHER:
  36 + //内部错误
  37 + break;
  38 + }
  39 + Log.e("DemoView", "errorCode = " + what + " errorMessage = " + extra);
  40 + }
  41 + }
  42 +}
... ...
app/src/main/java/com/cnlive/libs/CNLiveApplication.java 0 → 100644
  1 +++ a/app/src/main/java/com/cnlive/libs/CNLiveApplication.java
  1 +package com.cnlive.libs;
  2 +
  3 +import android.app.Application;
  4 +
  5 +import com.cnlive.libs.util.Config;
  6 +
  7 +/**
  8 + * Created by xiansong on 2016/7/22.
  9 + */
  10 +public class CNLiveApplication extends Application {
  11 + public String app_secret = "33eb04e9ca7001e878eb8a57e2a1068d7b48c2909fc341";
  12 +
  13 + @Override
  14 + public void onCreate() {
  15 + super.onCreate();
  16 +
  17 + Config.init(this, "60_irg1rhs308", "4e7a37b27a717a9e9b0a7aea4620ee55ea61fbf923bf46");
  18 + }
  19 +}
... ...
app/src/main/java/com/cnlive/libs/OtherActivity.java 0 → 100644
  1 +++ a/app/src/main/java/com/cnlive/libs/OtherActivity.java
  1 +package com.cnlive.libs;
  2 +
  3 +import android.os.Bundle;
  4 +import android.view.View;
  5 +import android.widget.Button;
  6 +import android.widget.EditText;
  7 +import android.widget.TextView;
  8 +
  9 +import com.cnlive.libs.user.model.CNUserBuilder;
  10 +
  11 +import java.io.File;
  12 +
  13 +public class OtherActivity extends BaseActivity implements View.OnClickListener {
  14 +
  15 + File file = new File("/sdcard/1.jpg");
  16 + private EditText feedbackMsg;
  17 + private Button feedback, uploadFace;
  18 + private TextView modifyMobile, updateUserExtInfo, queryUserInfo, modifyUserInfo, modifyPwdWithMobile;
  19 +
  20 +
  21 + @Override
  22 + protected void onCreate(Bundle savedInstanceState) {
  23 + super.onCreate(savedInstanceState);
  24 + setContentView(R.layout.activity_other);
  25 + initView();
  26 + }
  27 +
  28 +
  29 + public void initView() {
  30 + feedbackMsg = (EditText) findViewById(R.id.feedback_textView);
  31 + feedback = (Button) findViewById(R.id.feedback);
  32 + feedback.setOnClickListener(this);
  33 +
  34 + uploadFace = (Button) findViewById(R.id.uploadface);
  35 + uploadFace.setOnClickListener(this);
  36 +
  37 + modifyMobile = (TextView) findViewById(R.id.modify_mobile);
  38 + modifyMobile.setOnClickListener(this);
  39 +
  40 + updateUserExtInfo = (TextView) findViewById(R.id.update_user_ext_info);
  41 + updateUserExtInfo.setOnClickListener(this);
  42 +
  43 + queryUserInfo = (TextView) findViewById(R.id.query_user_info);
  44 + queryUserInfo.setOnClickListener(this);
  45 +
  46 + modifyUserInfo = (TextView) findViewById(R.id.modify_user_info);
  47 + modifyUserInfo.setOnClickListener(this);
  48 +
  49 + modifyPwdWithMobile = (TextView) findViewById(R.id.modify_pwd_through_mobile);
  50 + modifyPwdWithMobile.setOnClickListener(this);
  51 + }
  52 +
  53 + @Override
  54 + public void onClick(View view) {
  55 + switch (view.getId()) {
  56 + case R.id.uploadface:
  57 + cnLiveUser.initUser(uploadFaceData());
  58 + cnLiveUser.uploadFace(file);
  59 + break;
  60 + case R.id.feedback:
  61 + cnLiveUser.initUser(setCNUserData());
  62 + cnLiveUser.feedback();
  63 + break;
  64 + case R.id.modify_mobile:
  65 + cnLiveUser.initUser(modifyMobile());
  66 + cnLiveUser.updateMobile();
  67 + break;
  68 + case R.id.update_user_ext_info:
  69 + cnLiveUser.initUser(updateUserExtInfo());
  70 + cnLiveUser.updateUserExtInfo();
  71 + break;
  72 + case R.id.query_user_info:
  73 + cnLiveUser.initUser(queryUserInfo());
  74 + cnLiveUser.queryUserInfo();
  75 + break;
  76 + case R.id.modify_user_info:
  77 + cnLiveUser.initUser(modifyUserInfo());
  78 + cnLiveUser.modifyUserInfo();
  79 + break;
  80 + case R.id.modify_pwd_through_mobile:
  81 + cnLiveUser.initUser(modifyPwdWithMobile());
  82 + cnLiveUser.modifyPwdWithMob();
  83 + break;
  84 + }
  85 + }
  86 +
  87 + protected CNUserBuilder.Builder setCNUserData() {
  88 + cnUserBuilder.setId("id");
  89 + cnUserBuilder.setMsg(feedbackMsg.getText().toString());
  90 + return cnUserBuilder;
  91 + }
  92 +
  93 + protected CNUserBuilder.Builder uploadFaceData() {
  94 + cnUserBuilder.setSecret("33eb04e9ca7001e878eb8a57e2a1068d7b48c2909fc341");
  95 + return cnUserBuilder;
  96 + }
  97 +
  98 + private CNUserBuilder.Builder modifyMobile() {
  99 + cnUserBuilder.setMobile("18844444444");
  100 + cnUserBuilder.setVerificationCode("123456");
  101 + return cnUserBuilder;
  102 + }
  103 +
  104 + private CNUserBuilder.Builder updateUserExtInfo() {
  105 + cnUserBuilder.setExtInfo("sdjfoisdf");
  106 + return cnUserBuilder;
  107 + }
  108 +
  109 + private CNUserBuilder.Builder queryUserInfo() {
  110 + cnUserBuilder.setSrcUid("1342671");
  111 + return cnUserBuilder;
  112 + }
  113 +
  114 + private CNUserBuilder.Builder modifyUserInfo() {
  115 + cnUserBuilder.setType("nickName");
  116 + cnUserBuilder.setValue("woa");
  117 + return cnUserBuilder;
  118 + }
  119 +
  120 + private CNUserBuilder.Builder modifyPwdWithMobile() {
  121 + cnUserBuilder.setMobile("13811112222");
  122 + cnUserBuilder.setVerificationCode("123456");
  123 + cnUserBuilder.setNewPwd("123456");
  124 + return cnUserBuilder;
  125 + }
  126 +}
... ...
app/src/main/java/com/cnlive/libs/QuickLoginActivity.java 0 → 100644
  1 +++ a/app/src/main/java/com/cnlive/libs/QuickLoginActivity.java
  1 +package com.cnlive.libs;
  2 +
  3 +import android.os.Bundle;
  4 +import android.view.View;
  5 +import android.widget.Button;
  6 +import android.widget.EditText;
  7 +
  8 +import com.cnlive.libs.user.model.CNUserBuilder;
  9 +import com.cnlive.libs.user.model.UserState;
  10 +
  11 +public class QuickLoginActivity extends BaseActivity implements View.OnClickListener {
  12 +
  13 + private EditText mobile, code;
  14 + private Button getCode, quickLogin;
  15 +
  16 + @Override
  17 + protected void onCreate(Bundle savedInstanceState) {
  18 + super.onCreate(savedInstanceState);
  19 + setContentView(R.layout.activity_quick_login);
  20 + initView();
  21 + }
  22 +
  23 + private void initView() {
  24 + mobile = (EditText) this.findViewById(R.id.mobile);
  25 + code = (EditText) this.findViewById(R.id.number);
  26 +
  27 + getCode = (Button) findViewById(R.id.getNumber);
  28 + getCode.setOnClickListener(this);
  29 +
  30 + quickLogin = (Button) findViewById(R.id.quick_login);
  31 + quickLogin.setOnClickListener(this);
  32 + }
  33 +
  34 + @Override
  35 + public void onClick(View view) {
  36 + switch (view.getId()) {
  37 + case R.id.getNumber:
  38 + cnLiveUser.initUser(setVerificationCode());
  39 + cnLiveUser.sendMessage(UserState.QUICK_LOGIN);
  40 + break;
  41 + case R.id.quick_login:
  42 + cnLiveUser.initUser(setCNUserData());
  43 + cnLiveUser.quickLogin();
  44 + break;
  45 + }
  46 + }
  47 +
  48 + private CNUserBuilder.Builder setVerificationCode() {
  49 + cnUserBuilder.setMobile(mobile.getText().toString());
  50 + cnUserBuilder.setClientPlat("a");
  51 + return cnUserBuilder;
  52 + }
  53 +
  54 + protected CNUserBuilder.Builder setCNUserData() {
  55 + cnUserBuilder.setUserName(String.valueOf(mobile.getText()));
  56 + cnUserBuilder.setVerificationCode(String.valueOf(code.getText()));
  57 + cnUserBuilder.setUuid("uuid");
  58 + cnUserBuilder.setFrmId("frmId");
  59 + cnUserBuilder.setClientPlat("a");
  60 + return cnUserBuilder;
  61 + }
  62 +}
... ...
app/src/main/java/com/cnlive/libs/RegisterActivity.java 0 → 100644
  1 +++ a/app/src/main/java/com/cnlive/libs/RegisterActivity.java
  1 +package com.cnlive.libs;
  2 +
  3 +import android.os.Bundle;
  4 +import android.view.View;
  5 +import android.widget.Button;
  6 +import android.widget.EditText;
  7 +
  8 +import com.cnlive.libs.user.model.CNUserBuilder;
  9 +import com.cnlive.libs.user.model.UserState;
  10 +
  11 +public class RegisterActivity extends BaseActivity implements View.OnClickListener {
  12 +
  13 + private EditText userName, userPassword, number;
  14 + private Button register, getNumber;
  15 +
  16 + @Override
  17 + protected void onCreate(Bundle savedInstanceState) {
  18 + super.onCreate(savedInstanceState);
  19 + setContentView(R.layout.activity_register);
  20 + initView();
  21 + }
  22 +
  23 + public void initView() {
  24 + userName = (EditText) findViewById(R.id.user_name_new);
  25 + userPassword = (EditText) findViewById(R.id.password_new);
  26 + number = (EditText) findViewById(R.id.number);
  27 +
  28 + register = (Button) findViewById(R.id.register);
  29 + register.setOnClickListener(this);
  30 +
  31 + getNumber = (Button) findViewById(R.id.getNumber);
  32 + getNumber.setOnClickListener(this);
  33 + }
  34 +
  35 + @Override
  36 + public void onClick(View view) {
  37 + switch (view.getId()) {
  38 + case R.id.register:
  39 + cnLiveUser.initUser(setCNUserData());
  40 + cnLiveUser.register();
  41 + break;
  42 + case R.id.getNumber:
  43 + cnLiveUser.initUser(setInvitationCode());
  44 + cnLiveUser.sendMessage(UserState.REGISTER_OR_MODIFY_MOBILE);
  45 + break;
  46 + }
  47 + }
  48 +
  49 + private CNUserBuilder.Builder setInvitationCode() {
  50 + cnUserBuilder.setMobile(userName.getText().toString());
  51 + return cnUserBuilder;
  52 + }
  53 +
  54 + protected CNUserBuilder.Builder setCNUserData() {
  55 + cnUserBuilder.setUserName(userName.getText().toString());
  56 + cnUserBuilder.setPwd(userPassword.getText().toString());
  57 + cnUserBuilder.setVerificationCode(number.getText().toString());
  58 + cnUserBuilder.setUuid("uuid");
  59 + return cnUserBuilder;
  60 + }
  61 +}
... ...
app/src/main/java/com/cnlive/libs/UserActivity.java 0 → 100644
  1 +++ a/app/src/main/java/com/cnlive/libs/UserActivity.java
  1 +package com.cnlive.libs;
  2 +
  3 +import android.content.Intent;
  4 +import android.os.Bundle;
  5 +import android.view.View;
  6 +import android.widget.Button;
  7 +import android.widget.EditText;
  8 +import android.widget.TextView;
  9 +
  10 +import com.cnlive.libs.user.model.CNUserBuilder;
  11 +
  12 +public class UserActivity extends BaseActivity implements View.OnClickListener {
  13 + private EditText userName, userPassword;
  14 + private Button login;
  15 + private TextView register, quickLogin, other, thirdParytLogin;
  16 +
  17 + @Override
  18 + protected void onCreate(Bundle savedInstanceState) {
  19 + super.onCreate(savedInstanceState);
  20 + setContentView(R.layout.activity_user);
  21 + initView();
  22 + }
  23 +
  24 + public void initView() {
  25 + userName = (EditText) this.findViewById(R.id.user_name);
  26 + userPassword = (EditText) this.findViewById(R.id.password);
  27 +
  28 + login = (Button) findViewById(R.id.login);
  29 + login.setOnClickListener(this);
  30 +
  31 + register = (TextView) findViewById(R.id.register_textView);
  32 + register.setOnClickListener(this);
  33 +
  34 + quickLogin = (TextView) findViewById(R.id.quick_login_textView);
  35 + quickLogin.setOnClickListener(this);
  36 +
  37 + other = (TextView) findViewById(R.id.other_textView);
  38 + other.setOnClickListener(this);
  39 +
  40 + thirdParytLogin = (TextView) findViewById(R.id.third_party_login);
  41 + thirdParytLogin.setOnClickListener(this);
  42 + }
  43 +
  44 + @Override
  45 + public void onClick(View view) {
  46 + Intent intent;
  47 + switch (view.getId()) {
  48 + case R.id.quick_login_textView:
  49 + intent = new Intent(this, QuickLoginActivity.class);
  50 + startActivity(intent);
  51 + break;
  52 + case R.id.register_textView:
  53 + intent = new Intent(this, RegisterActivity.class);
  54 + startActivity(intent);
  55 + break;
  56 + case R.id.other_textView:
  57 + intent = new Intent(this, OtherActivity.class);
  58 + startActivity(intent);
  59 + break;
  60 + case R.id.login:
  61 + cnLiveUser.initUser(setCNUserData());
  62 + cnLiveUser.login();
  63 + break;
  64 + case R.id.third_party_login:
  65 + cnLiveUser.initUser(thirdPartyLoginData());
  66 + cnLiveUser.thirdPartyLogin();
  67 + break;
  68 + }
  69 + }
  70 +
  71 + protected CNUserBuilder.Builder setCNUserData() {
  72 + cnUserBuilder.setUuid("uuid");
  73 + cnUserBuilder.setUserName(String.valueOf(userName.getText()));
  74 + cnUserBuilder.setPwd(String.valueOf(userPassword.getText()));
  75 + return cnUserBuilder;
  76 + }
  77 +
  78 + private CNUserBuilder.Builder thirdPartyLoginData() {
  79 + cnUserBuilder.setThirdPartyPlat(1);// 1:sina weibo 2:qq weibo 3:weixin 4:renren
  80 + cnUserBuilder.setThirdPartyId("id");
  81 + cnUserBuilder.setNickName("nickname");
  82 + cnUserBuilder.setGender("n");
  83 + cnUserBuilder.setLocation("location");
  84 + cnUserBuilder.setFaceUrl("faceUrl");
  85 + cnUserBuilder.setUuid("uuid");
  86 + return cnUserBuilder;
  87 + }
  88 +}
... ...
app/src/main/res/layout/activity_other.xml 0 → 100644
  1 +++ a/app/src/main/res/layout/activity_other.xml
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:tools="http://schemas.android.com/tools"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:paddingBottom="@dimen/activity_vertical_margin"
  7 + android:paddingLeft="@dimen/activity_horizontal_margin"
  8 + android:paddingRight="@dimen/activity_horizontal_margin"
  9 + android:paddingTop="@dimen/activity_vertical_margin"
  10 + tools:context="OtherActivity">
  11 +
  12 + <EditText
  13 + android:id="@+id/feedback_textView"
  14 + android:layout_width="match_parent"
  15 + android:layout_height="wrap_content"
  16 + android:hint="有什么好的建议嘛" />
  17 +
  18 + <Button
  19 + android:id="@+id/feedback"
  20 + android:layout_width="match_parent"
  21 + android:layout_height="wrap_content"
  22 + android:layout_below="@id/feedback_textView"
  23 + android:text="反馈" />
  24 +
  25 + <Button
  26 + android:id="@+id/uploadface"
  27 + android:layout_width="wrap_content"
  28 + android:layout_height="wrap_content"
  29 + android:layout_below="@+id/feedback"
  30 + android:layout_marginTop="20dp"
  31 + android:text="上传头像" />
  32 +
  33 +
  34 + <TextView
  35 + android:id="@+id/user_info"
  36 + android:layout_width="wrap_content"
  37 + android:layout_height="wrap_content"
  38 + android:layout_below="@id/uploadface"
  39 + android:layout_marginTop="20dp"
  40 + android:text="用户信息" />
  41 +
  42 + <LinearLayout
  43 + android:id="@+id/user_info_layout_top"
  44 + android:layout_width="match_parent"
  45 + android:layout_height="wrap_content"
  46 + android:layout_below="@id/user_info"
  47 + android:layout_marginTop="10dp"
  48 + android:orientation="horizontal">
  49 +
  50 + <TextView
  51 + android:id="@+id/modify_mobile"
  52 + android:layout_width="wrap_content"
  53 + android:layout_height="wrap_content"
  54 + android:layout_weight="1"
  55 + android:text="更新手机号"
  56 + android:textColor="#0000ff" />
  57 +
  58 + <TextView
  59 + android:id="@+id/update_user_ext_info"
  60 + android:layout_width="wrap_content"
  61 + android:layout_height="wrap_content"
  62 + android:layout_weight="1"
  63 + android:text="更新用户附加信息"
  64 + android:textColor="#0000ff" />
  65 + </LinearLayout>
  66 +
  67 + <LinearLayout
  68 + android:id="@+id/user_info_layout_bottom"
  69 + android:layout_width="match_parent"
  70 + android:layout_height="wrap_content"
  71 + android:layout_below="@id/user_info_layout_top"
  72 + android:layout_marginTop="10dp"
  73 + android:orientation="horizontal">
  74 +
  75 + <TextView
  76 + android:id="@+id/query_user_info"
  77 + android:layout_width="wrap_content"
  78 + android:layout_height="wrap_content"
  79 + android:layout_weight="1"
  80 + android:text="查询用户信息"
  81 + android:textColor="#0000ff" />
  82 +
  83 + <TextView
  84 + android:id="@+id/modify_user_info"
  85 + android:layout_width="wrap_content"
  86 + android:layout_height="wrap_content"
  87 + android:layout_weight="1"
  88 + android:text="修改用户单项信息"
  89 + android:textColor="#0000ff" />
  90 + </LinearLayout>
  91 +
  92 + <LinearLayout
  93 + android:id="@+id/layout"
  94 + android:layout_width="match_parent"
  95 + android:layout_height="wrap_content"
  96 + android:layout_below="@id/user_info_layout_bottom"
  97 + android:layout_marginTop="10dp"
  98 + android:orientation="horizontal">
  99 +
  100 + <TextView
  101 + android:id="@+id/modify_pwd_through_mobile"
  102 + android:layout_width="wrap_content"
  103 + android:layout_height="wrap_content"
  104 + android:layout_weight="1"
  105 + android:text="通过手机号修改密码"
  106 + android:textColor="#0000ff" />
  107 +
  108 + <!--<TextView-->
  109 + <!--android:id="@+id/sendMessageBeforemodifypwd"-->
  110 + <!--android:layout_width="wrap_content"-->
  111 + <!--android:layout_height="wrap_content"-->
  112 + <!--android:text="找回或修改密码前发送验证码"-->
  113 + <!--android:layout_weight="1"-->
  114 + <!--android:textColor="#0000ff" />-->
  115 + </LinearLayout>
  116 +
  117 +</RelativeLayout>
... ...
app/src/main/res/layout/activity_quick_login.xml 0 → 100644
  1 +++ a/app/src/main/res/layout/activity_quick_login.xml
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:tools="http://schemas.android.com/tools"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:paddingBottom="@dimen/activity_vertical_margin"
  7 + android:paddingLeft="@dimen/activity_horizontal_margin"
  8 + android:paddingRight="@dimen/activity_horizontal_margin"
  9 + android:paddingTop="@dimen/activity_vertical_margin"
  10 + tools:context="QuickLoginActivity">
  11 +
  12 + <EditText
  13 + android:id="@+id/mobile"
  14 + android:layout_width="match_parent"
  15 + android:layout_height="wrap_content"
  16 + android:hint="手机号" />
  17 +
  18 + <EditText
  19 + android:id="@+id/number"
  20 + android:layout_width="200dp"
  21 + android:layout_height="wrap_content"
  22 + android:layout_below="@+id/mobile"
  23 + android:layout_marginTop="10dp"
  24 + android:hint="手机验证码" />
  25 +
  26 + <Button
  27 + android:id="@+id/getNumber"
  28 + android:layout_width="wrap_content"
  29 + android:layout_height="wrap_content"
  30 + android:layout_below="@+id/mobile"
  31 + android:layout_toRightOf="@+id/number"
  32 + android:text="验证码" />
  33 +
  34 + <Button
  35 + android:id="@+id/quick_login"
  36 + android:layout_width="match_parent"
  37 + android:layout_height="wrap_content"
  38 + android:layout_below="@+id/number"
  39 + android:layout_marginTop="10dp"
  40 + android:text="快捷登录" />
  41 +</RelativeLayout>
... ...
app/src/main/res/layout/activity_register.xml 0 → 100644
  1 +++ a/app/src/main/res/layout/activity_register.xml
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:tools="http://schemas.android.com/tools"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:paddingBottom="@dimen/activity_vertical_margin"
  7 + android:paddingLeft="@dimen/activity_horizontal_margin"
  8 + android:paddingRight="@dimen/activity_horizontal_margin"
  9 + android:paddingTop="@dimen/activity_vertical_margin"
  10 + tools:context="RegisterActivity">
  11 +
  12 + <TextView
  13 + android:id="@+id/register_layout"
  14 + android:layout_width="wrap_content"
  15 + android:layout_height="wrap_content"
  16 + android:text="注册" />
  17 +
  18 + <EditText
  19 + android:id="@+id/user_name_new"
  20 + android:layout_width="match_parent"
  21 + android:layout_height="wrap_content"
  22 + android:layout_below="@+id/register_layout"
  23 + android:hint="用户名" />
  24 +
  25 + <EditText
  26 + android:id="@+id/password_new"
  27 + android:layout_width="match_parent"
  28 + android:layout_height="wrap_content"
  29 + android:layout_below="@+id/user_name_new"
  30 + android:layout_marginTop="10dp"
  31 + android:hint="密码" />
  32 +
  33 + <EditText
  34 + android:id="@+id/number"
  35 + android:layout_width="200dp"
  36 + android:layout_height="wrap_content"
  37 + android:layout_below="@+id/password_new"
  38 + android:hint="验证码"
  39 + android:layout_marginTop="10dp"/>
  40 +
  41 + <Button
  42 + android:id="@+id/getNumber"
  43 + android:layout_width="wrap_content"
  44 + android:layout_height="wrap_content"
  45 + android:layout_toRightOf="@+id/number"
  46 + android:layout_below="@+id/password_new"
  47 + android:text="获取验证码"
  48 + android:layout_marginTop="10dp"/>
  49 +
  50 + <Button
  51 + android:id="@+id/register"
  52 + android:layout_width="match_parent"
  53 + android:layout_height="wrap_content"
  54 + android:layout_below="@id/number"
  55 + android:layout_marginTop="10dp"
  56 + android:text="注册" />
  57 +</RelativeLayout>
... ...
app/src/main/res/layout/activity_user.xml 0 → 100644
  1 +++ a/app/src/main/res/layout/activity_user.xml
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:tools="http://schemas.android.com/tools"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:paddingBottom="@dimen/activity_vertical_margin"
  7 + android:paddingLeft="@dimen/activity_horizontal_margin"
  8 + android:paddingRight="@dimen/activity_horizontal_margin"
  9 + android:paddingTop="@dimen/activity_vertical_margin"
  10 + tools:context="UserActivity">
  11 +
  12 + <TextView
  13 + android:id="@+id/login_layout"
  14 + android:layout_width="wrap_content"
  15 + android:layout_height="wrap_content"
  16 + android:text="登录" />
  17 +
  18 + <EditText
  19 + android:id="@+id/user_name"
  20 + android:layout_width="match_parent"
  21 + android:layout_height="wrap_content"
  22 + android:layout_below="@id/login_layout"
  23 + android:hint="用户名" />
  24 +
  25 + <EditText
  26 + android:id="@+id/password"
  27 + android:layout_width="match_parent"
  28 + android:layout_height="wrap_content"
  29 + android:layout_below="@+id/user_name"
  30 + android:layout_marginTop="10dp"
  31 + android:hint="密码" />
  32 +
  33 + <Button
  34 + android:id="@+id/login"
  35 + android:layout_width="match_parent"
  36 + android:layout_height="wrap_content"
  37 + android:layout_below="@id/password"
  38 + android:layout_marginTop="10dp"
  39 + android:text="登录" />
  40 +
  41 + <TextView
  42 + android:id="@+id/quick_login_textView"
  43 + android:layout_width="wrap_content"
  44 + android:layout_height="wrap_content"
  45 + android:text="快捷登录"
  46 + android:layout_below="@+id/login"
  47 + android:layout_marginTop="10dp"
  48 + android:textColor="#0000ff"/>
  49 +
  50 +
  51 + <TextView
  52 + android:id="@+id/register_textView"
  53 + android:layout_width="wrap_content"
  54 + android:layout_height="wrap_content"
  55 + android:text="注册"
  56 + android:layout_below="@id/login"
  57 + android:layout_alignParentRight="true"
  58 + android:layout_marginTop="10dp"
  59 + android:textColor="#0000ff"/>
  60 +
  61 + <TextView
  62 + android:id="@+id/third_party_login"
  63 + android:layout_width="wrap_content"
  64 + android:layout_height="wrap_content"
  65 + android:text="第三方登录"
  66 + android:layout_below="@+id/register_textView"
  67 + android:layout_marginTop="20dp"
  68 + android:textColor="#0000ff"/>
  69 + <TextView
  70 + android:id="@+id/other_textView"
  71 + android:layout_width="wrap_content"
  72 + android:layout_height="wrap_content"
  73 + android:layout_below="@+id/third_party_login"
  74 + android:text="其他"
  75 + android:layout_marginTop="20dp"
  76 + android:textColor="#0000ff"/>
  77 +
  78 +</RelativeLayout>
... ...
app/src/main/res/mipmap-hdpi/ic_launcher.png 0 → 100644

3.34 KB

app/src/main/res/mipmap-mdpi/ic_launcher.png 0 → 100644

2.15 KB

app/src/main/res/mipmap-xhdpi/ic_launcher.png 0 → 100644

4.73 KB

app/src/main/res/mipmap-xxhdpi/ic_launcher.png 0 → 100644

7.54 KB

app/src/main/res/mipmap-xxxhdpi/ic_launcher.png 0 → 100644

10.2 KB

app/src/main/res/values-w820dp/dimens.xml 0 → 100644
  1 +++ a/app/src/main/res/values-w820dp/dimens.xml
  1 +<resources>
  2 + <!-- Example customization of dimensions originally defined in res/values/dimens.xml
  3 + (such as screen margins) for screens with more than 820dp of available width. This
  4 + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
  5 + <dimen name="activity_horizontal_margin">64dp</dimen>
  6 +</resources>
... ...
app/src/main/res/values/colors.xml 0 → 100644
  1 +++ a/app/src/main/res/values/colors.xml
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<resources>
  3 + <color name="colorPrimary">#3F51B5</color>
  4 + <color name="colorPrimaryDark">#303F9F</color>
  5 + <color name="colorAccent">#FF4081</color>
  6 +</resources>
... ...
app/src/main/res/values/dimens.xml 0 → 100644
  1 +++ a/app/src/main/res/values/dimens.xml
  1 +<resources>
  2 + <!-- Default screen margins, per the Android Design guidelines. -->
  3 + <dimen name="activity_horizontal_margin">16dp</dimen>
  4 + <dimen name="activity_vertical_margin">16dp</dimen>
  5 +</resources>
... ...
app/src/main/res/values/strings.xml 0 → 100644
  1 +++ a/app/src/main/res/values/strings.xml
  1 +<resources>
  2 + <string name="app_name">CNUserDemo</string>
  3 +</resources>
... ...
app/src/main/res/values/styles.xml 0 → 100644
  1 +++ a/app/src/main/res/values/styles.xml
  1 +<resources>
  2 +
  3 + <!-- Base application theme. -->
  4 + <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  5 + <!-- Customize your theme here. -->
  6 + <item name="colorPrimary">@color/colorPrimary</item>
  7 + <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  8 + <item name="colorAccent">@color/colorAccent</item>
  9 + </style>
  10 +
  11 +</resources>
... ...
app/src/test/java/com/cnlive/libs/ExampleUnitTest.java 0 → 100644
  1 +++ a/app/src/test/java/com/cnlive/libs/ExampleUnitTest.java
  1 +package com.cnlive.libs;
  2 +
  3 +import org.junit.Test;
  4 +
  5 +import static org.junit.Assert.*;
  6 +
  7 +/**
  8 + * To work on unit tests, switch the Test Artifact in the Build Variants view.
  9 + */
  10 +public class ExampleUnitTest {
  11 + @Test
  12 + public void addition_isCorrect() throws Exception {
  13 + assertEquals(4, 2 + 2);
  14 + }
  15 +}
0 16 \ No newline at end of file
... ...
build.gradle 0 → 100644
  1 +++ a/build.gradle
  1 +// Top-level build file where you can add configuration options common to all sub-projects/modules.
  2 +
  3 +buildscript {
  4 + repositories {
  5 + jcenter()
  6 + }
  7 + dependencies {
  8 + classpath 'com.android.tools.build:gradle:2.1.3'
  9 +
  10 + // NOTE: Do not place your application dependencies here; they belong
  11 + // in the individual module build.gradle files
  12 + }
  13 +}
  14 +
  15 +allprojects {
  16 + repositories {
  17 + jcenter()
  18 + }
  19 +}
  20 +
  21 +task clean(type: Delete) {
  22 + delete rootProject.buildDir
  23 +}
... ...
gradle.properties 0 → 100644
  1 +++ a/gradle.properties
  1 +# Project-wide Gradle settings.
  2 +
  3 +# IDE (e.g. Android Studio) users:
  4 +# Gradle settings configured through the IDE *will override*
  5 +# any settings specified in this file.
  6 +
  7 +# For more details on how to configure your build environment visit
  8 +# http://www.gradle.org/docs/current/userguide/build_environment.html
  9 +
  10 +# Specifies the JVM arguments used for the daemon process.
  11 +# The setting is particularly useful for tweaking memory settings.
  12 +# Default value: -Xmx10248m -XX:MaxPermSize=256m
  13 +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
  14 +
  15 +# When configured, Gradle will run in incubating parallel mode.
  16 +# This option should only be used with decoupled projects. More details, visit
  17 +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
  18 +# org.gradle.parallel=true
0 19 \ No newline at end of file
... ...
gradle/wrapper/gradle-wrapper.jar 0 → 100644
No preview for this file type
gradle/wrapper/gradle-wrapper.properties 0 → 100644
  1 +++ a/gradle/wrapper/gradle-wrapper.properties
  1 +#Mon Sep 26 10:33:04 CST 2016
  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.14.1-all.zip
... ...
gradlew 0 → 100644
  1 +++ a/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 "$@"
... ...
gradlew.bat 0 → 100644
  1 +++ a/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
... ...
settings.gradle 0 → 100644
  1 +++ a/settings.gradle
  1 +include ':app'
... ...