Bläddra i källkod

增加养老看板和医院信息看板两种模式兼容

weizhengliang 1 år sedan
förälder
incheckning
3d83191e9c

+ 91 - 14
app/src/main/java/com/example/informationkanban/InitActivity.java

@@ -3,6 +3,8 @@ package com.example.informationkanban;
 import android.app.AlertDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.graphics.Color;
 import android.os.Build;
 import android.os.Bundle;
@@ -17,6 +19,7 @@ import android.view.Window;
 import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.EditText;
+import android.widget.LinearLayout;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.TextView;
@@ -31,6 +34,9 @@ import com.example.informationkanban.utils.LanguageSetDialogHelper;
 import com.example.informationkanban.utils.LocaleMangerUtils;
 import com.example.informationkanban.utils.NetFunctionConfig;
 
+import java.security.acl.Group;
+import java.util.List;
+
 public class InitActivity extends AppCompatActivity {
 
     private TextView tvMac;
@@ -39,6 +45,7 @@ public class InitActivity extends AppCompatActivity {
     private TextView tvServerStatus;
     private TextView tvVersion;
     private TextView tvTime;
+    private TextView tvType;
     private RadioGroup group;
     private RadioButton btnWebview;
     private RadioButton btnXwalk;
@@ -82,6 +89,7 @@ public class InitActivity extends AppCompatActivity {
             //设置分辨率为
             Log.e("kanban", "set screen size: 1920x1080");
             AppUtil.setScreenSize(1920, 1080);
+            //AppUtil.resetScreenSize();
         }
 
         tvMac = findViewById(R.id.textView_mac);
@@ -98,6 +106,7 @@ public class InitActivity extends AppCompatActivity {
         btnSettings = findViewById(R.id.btn_settings);
         btnEnterMain = findViewById(R.id.btn_enter_main);
         btnLanguageSet = findViewById(R.id.btn_change_language);
+        tvType = findViewById(R.id.tv_info_type);
 
         //webview类型,默认为原生webview
         if (NetFunctionConfig.getWebviewType() == 1) {
@@ -106,7 +115,7 @@ public class InitActivity extends AppCompatActivity {
             btnXwalk.setChecked(true);
         }
 
-        tvServer.setText("Server: " + NetFunctionConfig.getServerIp() + ":" + NetFunctionConfig.getServerPort());
+        //tvServer.setText("Server: " + NetFunctionConfig.getServerIp() + ":" + NetFunctionConfig.getServerPort());
 
         group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
             @Override
@@ -203,15 +212,64 @@ public class InitActivity extends AppCompatActivity {
         editIp.setText(NetFunctionConfig.getServerIp());
         final EditText editPort = contentView.findViewById(R.id.edit_server_port);
         editPort.setText(NetFunctionConfig.getServerPort());
+        final LinearLayout llServerIp = contentView.findViewById(R.id.ll_server_ip);
+        final LinearLayout llServerPort = contentView.findViewById(R.id.ll_server_port);
+        final LinearLayout llPart = contentView.findViewById(R.id.ll_part_id);
+
+        final RadioGroup mode = contentView.findViewById(R.id.group_type);
+        RadioButton yy = contentView.findViewById(R.id.rb_yiyuan);
+        RadioButton yl = contentView.findViewById(R.id.rb_yanglao);
+        EditText part = contentView.findViewById(R.id.edit_part_id);
+        part.setText(NetFunctionConfig.getPartId());
+
+        if (NetFunctionConfig.getMode() == 2) {
+            yl.setChecked(true);
+            llServerIp.setVisibility(View.GONE);
+            llServerPort.setVisibility(View.GONE);
+            llPart.setVisibility(View.VISIBLE);
+        } else {
+            yy.setChecked(true);
+            llServerIp.setVisibility(View.VISIBLE);
+            llServerPort.setVisibility(View.VISIBLE);
+            llPart.setVisibility(View.GONE);
+        }
+
+        mode.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(RadioGroup group, int checkedId) {
+                if (checkedId == R.id.rb_yanglao) {
+                    NetFunctionConfig.setMode(2);
+                    llServerIp.setVisibility(View.GONE);
+                    llServerPort.setVisibility(View.GONE);
+                    llPart.setVisibility(View.VISIBLE);
+                } else {
+                    NetFunctionConfig.setMode(1);
+                    llServerIp.setVisibility(View.VISIBLE);
+                    llServerPort.setVisibility(View.VISIBLE);
+                    llPart.setVisibility(View.GONE);
+                }
+            }
+        });
+
         builder.setTitle(R.string.str_set_server_ip);
         builder.setPositiveButton(R.string.str_save, new DialogInterface.OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
                 String newIp = editIp.getText().toString();
                 String newPort = editPort.getText().toString();
+                String partId = part.getText().toString();
                 NetFunctionConfig.setServerIp(newIp);
                 NetFunctionConfig.setServerPort(newPort);
+                NetFunctionConfig.setPartId(partId);
                 tvServer.setText("Server: " + newIp + ":" + newPort);
+
+                if (NetFunctionConfig.getMode() == 2) {
+                    tvType.setText(R.string.type_pension);
+                    tvServer.setVisibility(View.INVISIBLE);
+                } else {
+                    tvType.setText(R.string.type_hospital);
+                    tvServer.setVisibility(View.VISIBLE);
+                }
             }
         });
 
@@ -250,20 +308,25 @@ public class InitActivity extends AppCompatActivity {
             public void run() {
                 while (loop) {
                     updateView();
-                    if (NetworkUtils.isAvailableByPing(NetFunctionConfig.getServerIp())) {
+                    if (NetFunctionConfig.getMode() == 2) {
                         loop = false;
-                        showServerStatus(true);
-                        if (!connected) {
-                            connected = true;
-                            startMain();
-                        }
+                        startMain();
                     } else {
-                        showServerStatus(false);
-                        showMessage();
-                        try {
-                            Thread.sleep(10000);
-                        } catch (Exception e) {
-                            e.printStackTrace();
+                        if (NetworkUtils.isAvailableByPing(NetFunctionConfig.getServerIp())) {
+                            loop = false;
+                            showServerStatus(true);
+                            if (!connected) {
+                                connected = true;
+                                startMain();
+                            }
+                        } else {
+                            showServerStatus(false);
+                            showMessage();
+                            try {
+                                Thread.sleep(10000);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
                         }
                     }
                 }
@@ -275,7 +338,14 @@ public class InitActivity extends AppCompatActivity {
         new Thread(new Runnable() {
             @Override
             public void run() {
-                if (NetworkUtils.isAvailableByPing(NetFunctionConfig.getServerIp())) {
+                String server;
+                if (NetFunctionConfig.getMode() == 2) {
+                    server = "t.wdklchina.com";
+                } else {
+                    server = NetFunctionConfig.getServerIp();
+                }
+
+                if (NetworkUtils.isAvailableByPing(server)) {
                     showServerStatus(true);
                 } else {
                     showServerStatus(false);
@@ -309,6 +379,13 @@ public class InitActivity extends AppCompatActivity {
                     tvMac.setText("Device ID: " + GetInformationUtils.getSerialNo(getApplicationContext()));
                     tvIP.setText("Local IP: " + GetInformationUtils.getLocalIP());
                     tvServer.setText("Server IP: " + NetFunctionConfig.getServerIp() + ":" + NetFunctionConfig.getServerPort());
+                    if (NetFunctionConfig.getMode() == 2) {
+                        tvType.setText(R.string.type_pension);
+                        tvServer.setVisibility(View.INVISIBLE);
+                    } else {
+                        tvType.setText(R.string.type_hospital);
+                        tvServer.setVisibility(View.VISIBLE);
+                    }
                 }
             }
         });

+ 6 - 0
app/src/main/java/com/example/informationkanban/MainActivity.java

@@ -137,6 +137,12 @@ public class MainActivity extends AppCompatActivity {
 
         //访问网页
         String myUrl = "http://" + NetFunctionConfig.getServerIp() + ":" + NetFunctionConfig.getServerPort() + "/index?mac=" + MAC;
+        if (NetFunctionConfig.getMode() == 2) {
+            myUrl = "https://t.wdklchina.com/?partId=" + NetFunctionConfig.getPartId();
+        }
+
+        Toast.makeText(MainActivity.this, "fetch: " + myUrl, Toast.LENGTH_LONG).show();
+
         webView.loadUrl(myUrl);
         //系统默认会通过手机浏览器打开网页,为了能够直接通过WebView显示网页,则必须设置
         webView.setWebViewClient(new WebViewClient() {

+ 19 - 0
app/src/main/java/com/example/informationkanban/utils/NetFunctionConfig.java

@@ -28,6 +28,9 @@ public class NetFunctionConfig {
     //private static final String default_server_port = "8101";
     private static final String default_server_port = "8100";
 
+    private static final String KEY_MODE = "KEY_MODE";
+    private static final String KEY_PART_ID = "KEY_PART_ID";
+
     public static void setWebviewType(int type) {
         getEditor().putInt(WEBVIEW_TYPE, type).apply();
     }
@@ -77,6 +80,22 @@ public class NetFunctionConfig {
         getEditor(context).putInt(KEY_LANGUAGE_ID, id).apply();
     }
 
+    public static int getMode() {
+        return getSP().getInt(KEY_MODE, 1);
+    }
+
+    public static void setMode(int id) {
+        getEditor().putInt(KEY_MODE, id).apply();
+    }
+
+    public static String getPartId() {
+        return getSP().getString(KEY_PART_ID, "");
+    }
+
+    public static void setPartId(String partId) {
+        getEditor().putString(KEY_PART_ID, partId).apply();
+    }
+
 
     private static SharedPreferences getSP() {
         return MyApplication.getInstance().getSharedPreferences(INFORMATION_KAN_BAN_KEY, Context.MODE_PRIVATE);

+ 49 - 2
app/src/main/res/layout/dialog_edit_ip.xml

@@ -6,12 +6,43 @@
     android:padding="20dp">
 
     <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="4dp"
+            android:text="@string/info_type"
+            android:textSize="16sp"/>
+
+        <RadioGroup
+            android:id="@+id/group_type"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+            <RadioButton
+                android:id="@+id/rb_yiyuan"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/type_hospital"/>
+            <RadioButton
+                android:id="@+id/rb_yanglao"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="4dp"
+                android:text="@string/type_pension"/>
+        </RadioGroup>
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/ll_server_ip"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="服务器IP: "/>
+            android:text="@string/server_ip"/>
         <EditText
             android:id="@+id/edit_server_ip"
             android:layout_width="wrap_content"
@@ -21,12 +52,13 @@
     </LinearLayout>
 
     <LinearLayout
+        android:id="@+id/ll_server_port"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="服务器端口: "/>
+            android:text="@string/server_port"/>
         <EditText
             android:id="@+id/edit_server_port"
             android:layout_width="wrap_content"
@@ -35,4 +67,19 @@
             android:digits="0123456789."/>
     </LinearLayout>
 
+    <LinearLayout
+        android:id="@+id/ll_part_id"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/part_id"/>
+        <EditText
+            android:id="@+id/edit_part_id"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:inputType="number" />
+    </LinearLayout>
+
 </LinearLayout>

+ 18 - 1
app/src/main/res/layout/init_layout.xml

@@ -5,11 +5,28 @@
     android:orientation="vertical"
     android:gravity="center_horizontal">
 
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="20dp">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/info_type"
+            android:textSize="28sp" />
+
+        <TextView
+            android:id="@+id/tv_info_type"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="28sp" />
+    </LinearLayout>
+
     <TextView
         android:id="@+id/textView_mac"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="40dp"
+        android:layout_marginTop="20dp"
         android:text="MAC:"
         android:textSize="28sp" />
 

+ 6 - 0
app/src/main/res/values-es/strings.xml

@@ -17,6 +17,12 @@
     <string name="str_connect_fail">Error al conectar el servidor</string>
     <string name="tips_server_connect_error">Error al conectar el servidor, verifique la red</string>
     <string name="tips_device_info_error">Error Obtener información del dispositivo</string>
+    <string name="info_type">Info type:</string>
+    <string name="type_hospital">Hospital</string>
+    <string name="type_pension">Pension</string>
+    <string name="server_ip">Server IP:</string>
+    <string name="server_port">Server port:</string>
+    <string name="part_id">Part ID:</string>
 
     <string name="loading_percent">carga…%d%%</string>
 </resources>

+ 6 - 0
app/src/main/res/values-zh-rCN/strings.xml

@@ -18,6 +18,12 @@
     <string name="str_connect_fail">服务器连接失败</string>
     <string name="tips_server_connect_error">服务器连接失败,请检查网络</string>
     <string name="tips_device_info_error">设备信息获取失败</string>
+    <string name="info_type">看板类型:</string>
+    <string name="type_hospital">医院</string>
+    <string name="type_pension">养老</string>
+    <string name="server_ip">服务器IP:</string>
+    <string name="server_port">服务器端口:</string>
+    <string name="part_id">科室ID:</string>
 
     <string name="loading_percent">加载中...%d%%</string>
 </resources>

+ 6 - 0
app/src/main/res/values/strings.xml

@@ -17,6 +17,12 @@
     <string name="str_connect_fail">Connect server failed</string>
     <string name="tips_server_connect_error">Connect server failed, please check network</string>
     <string name="tips_device_info_error">Get device info error</string>
+    <string name="info_type">Info type:</string>
+    <string name="type_hospital">Hospital</string>
+    <string name="type_pension">Pension</string>
+    <string name="server_ip">Server IP:</string>
+    <string name="server_port">Server port:</string>
+    <string name="part_id">Part ID:</string>
 
     <string name="loading_percent">loading...%d%%</string>
 </resources>