From 7c3bd632b55337c08cefaf6af4930e3d57110610 Mon Sep 17 00:00:00 2001 From: dathlin Date: Sun, 5 Nov 2017 19:14:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=8D=93=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=99=BB=E5=BD=95=E7=AA=97=E4=BD=93=EF=BC=8C?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=AE=8C=E6=88=90=E7=99=BB=E5=BD=95=E6=95=88?= =?UTF-8?q?=E6=9E=9C=EF=BC=8Cv1.7.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AndroidTemplate/app/build.gradle | 1 + .../app/src/main/AndroidManifest.xml | 10 +- .../BasicFramework/SystemVersion.java | 53 ++- .../Core/Utilities/Utilities.java | 19 +- .../SimplifyHeadCode.java | 2 +- .../CommonLibrary/UserAccount.java | 134 +++++++ .../LoginSupport/JellyInterpolator.java | 21 + .../LoginSupport/JsonBeanPara.java | 15 + .../LoginSupport/LoginActivity.java | 377 ++++++++++++++++++ .../LoginSupport/SplashActivity.java | 18 +- .../MainActivity.java | 14 +- .../UserClient.java | 12 +- .../main/res/drawable/radius_drawable_bg.xml | 6 + .../main/res/drawable/rotate_layout_bg.xml | 9 + .../app/src/main/res/drawable/text_bg.xml | 11 + .../src/main/res/layout/activity_login.xml | 80 ++++ .../app/src/main/res/layout/activity_main.xml | 42 +- .../src/main/res/layout/activity_splash.xml | 3 +- .../app/src/main/res/layout/input_layout.xml | 62 +++ .../src/main/res/layout/layout_progress.xml | 27 ++ .../app/src/main/res/layout/title_layout.xml | 17 + CommonLibrary/UserSystem.cs | 2 +- 软件系统服务端模版/FormServerWindow.cs | 3 +- 23 files changed, 880 insertions(+), 58 deletions(-) rename AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/{CommonHeadCode => CommonLibrary}/SimplifyHeadCode.java (98%) create mode 100644 AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/CommonLibrary/UserAccount.java create mode 100644 AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JellyInterpolator.java create mode 100644 AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JsonBeanPara.java create mode 100644 AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/LoginActivity.java create mode 100644 AndroidTemplate/app/src/main/res/drawable/radius_drawable_bg.xml create mode 100644 AndroidTemplate/app/src/main/res/drawable/rotate_layout_bg.xml create mode 100644 AndroidTemplate/app/src/main/res/drawable/text_bg.xml create mode 100644 AndroidTemplate/app/src/main/res/layout/activity_login.xml create mode 100644 AndroidTemplate/app/src/main/res/layout/input_layout.xml create mode 100644 AndroidTemplate/app/src/main/res/layout/layout_progress.xml create mode 100644 AndroidTemplate/app/src/main/res/layout/title_layout.xml diff --git a/AndroidTemplate/app/build.gradle b/AndroidTemplate/app/build.gradle index ac690c9..915ea80 100644 --- a/AndroidTemplate/app/build.gradle +++ b/AndroidTemplate/app/build.gradle @@ -28,4 +28,5 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' + implementation 'com.google.code.gson:gson:2.8.2' } diff --git a/AndroidTemplate/app/src/main/AndroidManifest.xml b/AndroidTemplate/app/src/main/AndroidManifest.xml index 3f6dd97..d605336 100644 --- a/AndroidTemplate/app/src/main/AndroidManifest.xml +++ b/AndroidTemplate/app/src/main/AndroidManifest.xml @@ -2,9 +2,13 @@ + + + + - - + + + \ No newline at end of file diff --git a/AndroidTemplate/app/src/main/java/com/example/HslCommunication/BasicFramework/SystemVersion.java b/AndroidTemplate/app/src/main/java/com/example/HslCommunication/BasicFramework/SystemVersion.java index b1a2aed..238f6d9 100644 --- a/AndroidTemplate/app/src/main/java/com/example/HslCommunication/BasicFramework/SystemVersion.java +++ b/AndroidTemplate/app/src/main/java/com/example/HslCommunication/BasicFramework/SystemVersion.java @@ -126,31 +126,58 @@ public class SystemVersion { } - public boolean IsSameVersion(SystemVersion sv) - { - if(this.m_MainVersion!=sv.m_MainVersion) - { - return false; - } - - if(this.m_SecondaryVersion!=sv.m_SecondaryVersion) - { + public boolean IsSameVersion(SystemVersion sv) { + if (this.m_MainVersion != sv.m_MainVersion) { return false; } - if(this.m_EditVersion!=sv.m_EditVersion) - { + if (this.m_SecondaryVersion != sv.m_SecondaryVersion) { return false; } - if(this.m_InnerVersion!=sv.m_InnerVersion) - { + if (this.m_EditVersion != sv.m_EditVersion) { + return false; + } + + if (this.m_InnerVersion != sv.m_InnerVersion) { return false; } return true; } + public boolean IsSmallerThan(SystemVersion sv) { + if (this.m_MainVersion < sv.m_MainVersion) { + return true; + } + else if(this.m_MainVersion > sv.m_MainVersion) { + return false; + } + + if (this.m_SecondaryVersion < sv.m_SecondaryVersion) { + return true; + } + else if (this.m_SecondaryVersion > sv.m_SecondaryVersion) { + return false; + + } + + if (this.m_EditVersion < sv.m_EditVersion) { + return true; + } + else if (this.m_EditVersion > sv.m_EditVersion) { + return false; + } + + if (this.m_InnerVersion < sv.m_InnerVersion) { + return true; + } + else if (this.m_InnerVersion > sv.m_InnerVersion) { + return false; + } + + return false; + } } diff --git a/AndroidTemplate/app/src/main/java/com/example/HslCommunication/Core/Utilities/Utilities.java b/AndroidTemplate/app/src/main/java/com/example/HslCommunication/Core/Utilities/Utilities.java index f4c2fd8..ed2d9b1 100644 --- a/AndroidTemplate/app/src/main/java/com/example/HslCommunication/Core/Utilities/Utilities.java +++ b/AndroidTemplate/app/src/main/java/com/example/HslCommunication/Core/Utilities/Utilities.java @@ -1,5 +1,7 @@ package com.example.HslCommunication.Core.Utilities; +import com.example.HslCommunication.Log.LogUtil; + import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; @@ -125,15 +127,16 @@ public class Utilities { byteArray = str.getBytes("unicode"); } catch (Exception ex) { byteArray = str.getBytes(); + LogUtil.LogE("string2Byte","unicode编码转换错误",ex); } - - for(int i=0;i + /// 用户名称,该名称唯一 + /// + public String UserName = ""; + /// + /// 用户名称的别名,也不可以不使用 + /// + public String NameAlias = ""; + /// + /// 用户登录的密码 + /// + public String Password = ""; + /// + /// 账户所属的工厂名称或类别名称 + /// + public String Factory = ""; + /// + /// 用户的权限等级,目前配置了4个等级 + /// + public int Grade = 0; + /// + /// 用户的手机号 + /// + public String Phone = ""; + /// + /// 用户的电子邮件 + /// + public String EMail =""; + /// + /// 该用户的注册日期,一旦注册,应该固定 + /// + public Date RegisterTime = new Date(); + /// + /// 该用户是否允许登录 + /// + public boolean LoginEnable = false; + /// + /// 该用户不允许被登录的原因 + /// + public String ForbidMessage = "该账户被管理员禁止登录!"; + /// + /// 该用户自注册以来登录的次数 + /// + public int LoginFrequency = 0; + /// + /// 该用户上次登录的时间 + /// + public Date LastLoginTime = new Date(); + /// + /// 该用户上次登录的IP地址 + /// + public String LastLoginIpAddress = ""; + /// + /// 该用户连续登录失败的计数,可以用来连续五次失败禁止账户登录 + /// + public int LoginFailedCount = 0; + /// + /// 上次登录系统的方式,有winform版,wpf版,web版,Android版 + /// + public String LastLoginWay = ""; + /// + /// 小尺寸头像的MD5码 + /// + public String SmallPortraitMD5 = ""; + /// + /// 大尺寸头像的MD5码 + /// + public String LargePortraitMD5 = ""; + + + + /// + /// 用于存储和传送的名称 + /// + public static String UserNameText = "UserName"; + /// + /// 用于存储和传送的名称 + /// + public static String PasswordText = "Password"; + /// + /// 用于存储和传送的名称 + /// + public static String LoginWayText = "LoginWay"; + /// + /// 登录系统的唯一设备ID + /// + public static String DeviceUniqueID = "DeviceUniqueID"; + /// + /// 小尺寸头像的MD5传送名称 + /// + public static String SmallPortraitText = "SmallPortrait"; + /// + /// 大尺寸头像的MD5传送名称 + /// + public static String LargePortraitText = "LargePortrait"; + /// + /// 系统的框架版本,框架版本不一致,由服务器决定是否允许客户端登录 + /// + public static String FrameworkVersion = "FrameworkVersion"; + + + + /// + /// 获取本账号的JSON字符串,用于在网络中数据传输 + /// + /// + public String ToJsonString() + { + return new Gson().toJson(this); + } + + + /// + /// 获取账号的用户名 + /// + /// + public String toString() + { + return UserName; + } + +} diff --git a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JellyInterpolator.java b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JellyInterpolator.java new file mode 100644 index 0000000..364895e --- /dev/null +++ b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JellyInterpolator.java @@ -0,0 +1,21 @@ +package com.example.UserSoftwareAndroidTemplate.LoginSupport; + +import android.view.animation.LinearInterpolator; + +/** + * Created by hsl20 on 2017/11/5. + */ + +public class JellyInterpolator extends LinearInterpolator { + private float factor; + + public JellyInterpolator() { + this.factor = 0.15f; + } + + @Override + public float getInterpolation(float input) { + return (float) (Math.pow(2, -10 * input) + * Math.sin((input - factor / 4) * (2 * Math.PI) / factor) + 1); + } +} \ No newline at end of file diff --git a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JsonBeanPara.java b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JsonBeanPara.java new file mode 100644 index 0000000..acf54ca --- /dev/null +++ b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/JsonBeanPara.java @@ -0,0 +1,15 @@ +package com.example.UserSoftwareAndroidTemplate.LoginSupport; + +import java.util.List; + +/** + * Created by hsl20 on 2017/11/5. + */ + +public class JsonBeanPara { + + public String Announcement=""; + + public List SystemFactories = null; + +} diff --git a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/LoginActivity.java b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/LoginActivity.java new file mode 100644 index 0000000..fdaf944 --- /dev/null +++ b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/LoginActivity.java @@ -0,0 +1,377 @@ +package com.example.UserSoftwareAndroidTemplate.LoginSupport; + +import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.PropertyValuesHolder; +import android.animation.ValueAnimator; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.provider.Settings; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.telephony.TelephonyManager; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.animation.AccelerateDecelerateInterpolator; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.HslCommunication.BasicFramework.SystemVersion; +import com.example.HslCommunication.Core.Types.NetHandle; +import com.example.HslCommunication.Core.Types.OperateResultString; +import com.example.HslCommunication.Log.LogUtil; +import com.example.UserSoftwareAndroidTemplate.CommonLibrary.SimplifyHeadCode; +import com.example.UserSoftwareAndroidTemplate.CommonLibrary.UserAccount; +import com.example.UserSoftwareAndroidTemplate.MainActivity; +import com.example.UserSoftwareAndroidTemplate.R; +import com.example.UserSoftwareAndroidTemplate.UserClient; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; + +import org.json.JSONObject; + +import java.util.Date; + +import static com.example.UserSoftwareAndroidTemplate.CommonLibrary.UserAccount.FrameworkVersion; + +public class LoginActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_login); + initView(); + } + + + + + private TextView mBtnLogin; + private View progress; + private View mInputLayout; + private float mWidth, mHeight; + private LinearLayout mName, mPsw; + /* + 系统的登录状态,0,未登录,1,登入中 + */ + private int logStatus = 0; + + private void initView() { + mBtnLogin = (TextView) findViewById(R.id.main_btn_login); + progress = findViewById(R.id.layout_progress); + mInputLayout = findViewById(R.id.input_layout); + mName = (LinearLayout) findViewById(R.id.input_layout_name); + mPsw = (LinearLayout) findViewById(R.id.input_layout_psw); + + mBtnLogin.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(logStatus==0) { + + // 应该在这里启动账户验证 + EditText editText1 = (EditText) findViewById(R.id.login_intput_username); + UserName = editText1.getText().toString(); + if("".equals(UserName)) + { + Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show(); + editText1.setFocusable(true); + return; + } + + + EditText editText2 = (EditText) findViewById(R.id.login_intput_password); + UserPassword = editText2.getText().toString(); + if("".equals(UserPassword)) + { + Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show(); + editText2.setFocusable(true); + return; + } + + + // 开启程序验证 + logStatus = 1; + + // 计算出控件的高与宽 + mWidth = mBtnLogin.getMeasuredWidth(); // 209 + + LogUtil.LogD("onClick",""+mWidth); + + mHeight = mBtnLogin.getMeasuredHeight(); + + // 隐藏输入框 + mName.setVisibility(View.INVISIBLE); + mPsw.setVisibility(View.INVISIBLE); + + inputAnimator(mInputLayout, mWidth, mHeight); + + + } + } + }); + } + + + private void InterfaceRestore() + { + logStatus = 0; + // 重新显示界面 + progress.setVisibility(View.INVISIBLE); + + + //mInputLayout.SCALE_X=1f; + mInputLayout.setScaleX(1); + ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)mInputLayout.getLayoutParams(); + params.leftMargin=0; + params.rightMargin=0; + mInputLayout.setLayoutParams(params); + mInputLayout.setVisibility(View.VISIBLE); + + + mName.setVisibility(View.VISIBLE); + mPsw.setVisibility(View.VISIBLE); + } + + + private Handler handler=new Handler(){ + /**重写handleMessage方法*/ + @Override + public void handleMessage(Message msg) { + if (msg.arg1 == 1) { + // 登录失败并且显示信息 + Toast.makeText(LoginActivity.this, msg.obj.toString(), Toast.LENGTH_SHORT).show(); + InterfaceRestore(); + } + else if(msg.arg1 == 2) + { + // 登录成功 + InterfaceRestore(); + Intent intent = new Intent(LoginActivity.this, MainActivity.class); + startActivity(intent); + finish(); + //两个参数分别表示进入的动画,退出的动画 + overridePendingTransition(R.anim.fade_in, R.anim.fade_out); + + } + } + }; + + private void MessageShow(String message) + { + Message msg = new Message(); + msg.arg1=1; + msg.obj = message; + handler.sendMessage(msg); + + } + + + private String UserName = ""; + private String UserPassword = ""; + + /** + * 网络操作相关的子线程 + */ + Runnable loginSystem = new Runnable() { + @Override + public void run() { + + long startTime = System.currentTimeMillis(); + + LogUtil.LogD("loginSystem","开始请求维护检查"); + // 第一步请求维护状态 + OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(SimplifyHeadCode.维护检查, "", null, null); + if (!result.IsSuccess) { + MessageShow(result.ToMessageShowString()); + return; + } + + if (!result.Content.equals("1")) { + MessageShow(result.Content.substring(1)); + return; + } + + LogUtil.LogD("loginSystem","开始请求账户检查"); + // 第二步检查账户 + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty(UserAccount.UserNameText, UserName); + jsonObject.addProperty(UserAccount.PasswordText, UserPassword); + jsonObject.addProperty(UserAccount.LoginWayText, "Andriod"); + jsonObject.addProperty(UserAccount.DeviceUniqueID, "Missing"); + jsonObject.addProperty(FrameworkVersion, UserClient.FrameworkVersion.toString()); + + LogUtil.LogD("loginSystem",jsonObject.toString()); + result = UserClient.Net_simplify_client.ReadFromServer(SimplifyHeadCode.账户检查, jsonObject.toString(), null, null); + if (!result.IsSuccess) { + MessageShow(result.ToMessageShowString()); + return; + } + + UserAccount account = new Gson().fromJson(result.Content, UserAccount.class); + if (!account.LoginEnable) { + // 不允许登录 + MessageShow(account.ForbidMessage); + return; + } + UserClient.UserAccount = account; + // 保存用户名和密码 + + + LogUtil.LogD("loginSystem","开始请求版本检查"); + // 第三步检查版本 + result = UserClient.Net_simplify_client.ReadFromServer(SimplifyHeadCode.更新检查, "", null, null); + if (!result.IsSuccess) { + MessageShow(result.ToMessageShowString()); + return; + } + + SystemVersion sv = new SystemVersion(result.Content); + + if (account.UserName != "admin") { + if (!UserClient.CurrentVersion.IsSameVersion(sv)) { + MessageShow("版本号校验失败!服务器版本为:" + sv.toString()); + + // 此处应该启动下载更新,这部分的服务以后再完成 + return; + } + } else { + if(UserClient.CurrentVersion.IsSmallerThan(sv)) + { + // 管理员也不允许以低版本登录 + MessageShow("版本号校验失败!服务器版本为:" + sv.toString()); + return; + } + } + + + LogUtil.LogD("loginSystem","开始请求数据下载"); + // 下载服务器数据 + result = UserClient.Net_simplify_client.ReadFromServer(SimplifyHeadCode.参数下载,"",null,null); + if (result.IsSuccess) { + // 服务器返回初始化的数据,此处进行数据的提取,有可能包含了多个数据 + JsonBeanPara para = new Gson().fromJson(result.Content, JsonBeanPara.class); + // 例如公告数据和分厂数据 + UserClient.Announcement = para.Announcement; + UserClient.SystemFactories = para.SystemFactories; + } + else + { + // 访问失败 + MessageShow(result.ToMessageShowString()); + return; + } + + long loadingTime = System.currentTimeMillis() - startTime; + // 如果时间很短,做个延时处理 + if (loadingTime < 2000) { + try { + Thread.sleep(2000 - loadingTime); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + LogUtil.LogD("loginSystem","登录成功"); + // 登录成功 + Message msg = new Message(); + msg.arg1 = 2; + handler.sendMessage(msg); + } + }; + + /** + * 输入框的动画效果 + * + * @param view + * 控件 + * @param w + * 宽 + * @param h + * 高 + */ + private void inputAnimator(final View view, float w, float h) { + + AnimatorSet set = new AnimatorSet(); + + ValueAnimator animator = ValueAnimator.ofFloat(0, w); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + + @Override + public void onAnimationUpdate(ValueAnimator animation) { + float value = (Float) animation.getAnimatedValue(); + ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view + .getLayoutParams(); + params.leftMargin = (int) value; + params.rightMargin = (int) value; + + view.setLayoutParams(params); + } + }); + + ObjectAnimator animator2 = ObjectAnimator.ofFloat(mInputLayout, + "scaleX", 1f, 0.5f); + set.setDuration(300); + set.setInterpolator(new AccelerateDecelerateInterpolator()); + set.playTogether(animator, animator2); + set.start(); + set.addListener(new Animator.AnimatorListener() { + + @Override + public void onAnimationStart(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + + @Override + public void onAnimationEnd(Animator animation) { + /** + * 动画结束后,先显示加载的动画,然后再隐藏输入框 + */ + progress.setVisibility(View.VISIBLE); + progressAnimator(progress); + mInputLayout.setVisibility(View.INVISIBLE); + + + /* + 启动后台验证程序 + */ + new Thread(loginSystem).start(); + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + }); + + } + + /** + * 出现进度动画 + * + * @param view + */ + private void progressAnimator(final View view) { + PropertyValuesHolder animator = PropertyValuesHolder.ofFloat("scaleX", + 0.5f, 1f); + PropertyValuesHolder animator2 = PropertyValuesHolder.ofFloat("scaleY", + 0.5f, 1f); + ObjectAnimator animator3 = ObjectAnimator.ofPropertyValuesHolder(view, + animator, animator2); + animator3.setDuration(1000); + animator3.setInterpolator(new JellyInterpolator()); + animator3.start(); + + } +} diff --git a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/SplashActivity.java b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/SplashActivity.java index db4f8d1..136fe04 100644 --- a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/SplashActivity.java +++ b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/LoginSupport/SplashActivity.java @@ -5,18 +5,13 @@ import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.support.design.widget.FloatingActionButton; -import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.example.HslCommunication.BasicFramework.SystemVersion; -import com.example.HslCommunication.Core.Types.NetHandle; import com.example.HslCommunication.Core.Types.OperateResultString; -import com.example.UserSoftwareAndroidTemplate.CommonHeadCode.SimplifyHeadCode; +import com.example.UserSoftwareAndroidTemplate.CommonLibrary.SimplifyHeadCode; import com.example.UserSoftwareAndroidTemplate.MainActivity; import com.example.UserSoftwareAndroidTemplate.R; import com.example.UserSoftwareAndroidTemplate.UserClient; @@ -54,7 +49,7 @@ public class SplashActivity extends AppCompatActivity { @Override protected void onPostExecute(Integer result) { if (result > 0) { - Intent intent = new Intent(SplashActivity.this, MainActivity.class); + Intent intent = new Intent(SplashActivity.this, LoginActivity.class); //intent.setClassName(SplashActivity.this, getString(R.string.)); startActivity(intent); finish(); @@ -97,7 +92,7 @@ public class SplashActivity extends AppCompatActivity { private int loadingCache() { // 第一步请求维护状态 - OperateResultString result=UserClient.Client.ReadFromServer(SimplifyHeadCode.维护检查,"",null,null); + OperateResultString result=UserClient.Net_simplify_client.ReadFromServer(SimplifyHeadCode.维护检查,"",null,null); if(!result.IsSuccess){ MessageShow(result.ToMessageShowString()); return FAILURE; @@ -117,14 +112,17 @@ public class SplashActivity extends AppCompatActivity { // 第三步检查版本 - result=UserClient.Client.ReadFromServer(SimplifyHeadCode.维护检查,"",null,null); + result=UserClient.Net_simplify_client.ReadFromServer(SimplifyHeadCode.更新检查,"",null,null); if(!result.IsSuccess){ MessageShow(result.ToMessageShowString()); return FAILURE; } SystemVersion sv=new SystemVersion(result.Content); - if(!UserClient.CurrentVersion.IsSameVersion(sv)) return FAILURE; + if(!UserClient.CurrentVersion.IsSameVersion(sv)) { + MessageShow("版本号校验失败!服务器版本为:" + sv.toString()); + return FAILURE; + } // 下载服务器数据 diff --git a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/MainActivity.java b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/MainActivity.java index afd1b10..be0833c 100644 --- a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/MainActivity.java +++ b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/MainActivity.java @@ -14,6 +14,8 @@ import android.widget.Toast; import com.example.HslCommunication.Core.Types.NetHandle; import com.example.HslCommunication.Core.Types.OperateResultString; import com.example.HslCommunication.Enthernet.NetSimplifyClient; +import com.example.UserSoftwareAndroidTemplate.CommonLibrary.UserAccount; +import com.google.gson.Gson; import java.util.UUID; @@ -56,7 +58,7 @@ public class MainActivity extends AppCompatActivity { public void run() { // 在这里进行网络请求相关操作 Message msg = new Message(); - OperateResultString result = UserClient.Client.ReadFromServer(new NetHandle(1,2, 15),"",null,null); + OperateResultString result = UserClient.Net_simplify_client.ReadFromServer(new NetHandle(1,2, 15),"",null,null); msg.arg1=1; msg.obj = result; handler.sendMessage(msg); @@ -77,6 +79,16 @@ public class MainActivity extends AppCompatActivity { new Thread(networkTask).start(); }}); + Button button2 = (Button) findViewById(R.id.button2); + button2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + UserAccount account = new UserAccount(); + TextView textView = (TextView) findViewById(R.id.textViewMain); + textView.setText(new Gson().toJson(account)); + } + }); + TextView textView = (TextView) findViewById(R.id.textViewMain); textView.setMovementMethod(new ScrollingMovementMethod()); } diff --git a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/UserClient.java b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/UserClient.java index fc6cf84..e34e355 100644 --- a/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/UserClient.java +++ b/AndroidTemplate/app/src/main/java/com/example/UserSoftwareAndroidTemplate/UserClient.java @@ -2,7 +2,9 @@ package com.example.UserSoftwareAndroidTemplate; import com.example.HslCommunication.BasicFramework.SystemVersion; import com.example.HslCommunication.Enthernet.NetSimplifyClient; +import com.example.UserSoftwareAndroidTemplate.CommonLibrary.UserAccount; +import java.util.List; import java.util.UUID; /** @@ -11,7 +13,7 @@ import java.util.UUID; public class UserClient { - + public static SystemVersion FrameworkVersion = new SystemVersion("1.7.5"); public static SystemVersion CurrentVersion= new SystemVersion("1.0.0.171026"); @@ -26,8 +28,8 @@ public class UserClient { - - - public static NetSimplifyClient Client=new NetSimplifyClient(ServerIp,PortSecondary,Token); - + public static List SystemFactories = null; // 分厂 + public static String Announcement=""; // 公告 + public static NetSimplifyClient Net_simplify_client=new NetSimplifyClient(ServerIp,PortSecondary,Token); + public static UserAccount UserAccount = null; } diff --git a/AndroidTemplate/app/src/main/res/drawable/radius_drawable_bg.xml b/AndroidTemplate/app/src/main/res/drawable/radius_drawable_bg.xml new file mode 100644 index 0000000..9b71155 --- /dev/null +++ b/AndroidTemplate/app/src/main/res/drawable/radius_drawable_bg.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/AndroidTemplate/app/src/main/res/drawable/rotate_layout_bg.xml b/AndroidTemplate/app/src/main/res/drawable/rotate_layout_bg.xml new file mode 100644 index 0000000..2cb383b --- /dev/null +++ b/AndroidTemplate/app/src/main/res/drawable/rotate_layout_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/AndroidTemplate/app/src/main/res/drawable/text_bg.xml b/AndroidTemplate/app/src/main/res/drawable/text_bg.xml new file mode 100644 index 0000000..fc9a19e --- /dev/null +++ b/AndroidTemplate/app/src/main/res/drawable/text_bg.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/AndroidTemplate/app/src/main/res/layout/activity_login.xml b/AndroidTemplate/app/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000..e30d552 --- /dev/null +++ b/AndroidTemplate/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AndroidTemplate/app/src/main/res/layout/activity_main.xml b/AndroidTemplate/app/src/main/res/layout/activity_main.xml index 1d5560c..b286a67 100644 --- a/AndroidTemplate/app/src/main/res/layout/activity_main.xml +++ b/AndroidTemplate/app/src/main/res/layout/activity_main.xml @@ -6,21 +6,35 @@ android:layout_height="match_parent" tools:context="com.example.UserSoftwareAndroidTemplate.MainActivity"> - + android:layout_height="match_parent" + android:orientation="vertical"> + +