浏览代码

增加初始化配置界面

weizhengliang 3 年之前
父节点
当前提交
b2885762a3

+ 6 - 1
app/src/main/AndroidManifest.xml

@@ -28,7 +28,8 @@
         android:supportsRtl="true"
         android:networkSecurityConfig="@xml/network_security_config"
         android:theme="@style/AppTheme">
-        <activity android:name=".XwalkMainActivity">
+
+        <activity android:name=".InitActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
@@ -38,6 +39,10 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
+
+        <activity android:name=".XwalkMainActivity">
+        </activity>
+
     </application>
 
 </manifest>

+ 149 - 0
app/src/main/java/com/example/informationkanban/InitActivity.java

@@ -0,0 +1,149 @@
+package com.example.informationkanban;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.example.informationkanban.utils.GetInformationUtils;
+import com.example.informationkanban.utils.NetFunctionConfig;
+
+public class InitActivity extends AppCompatActivity {
+
+    TextView tvMac;
+    TextView tvIP;
+    EditText editText;
+    RadioGroup group1;
+    RadioButton radioButton1;
+    RadioButton radioButton2;
+    RadioGroup group2;
+    RadioButton radioButton3;
+    RadioButton radioButton4;
+    RadioGroup group3;
+    RadioButton radioButton5;
+    RadioButton radioButton6;
+    Button btnSet;
+    Button btnSave;
+
+    private Handler handler;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.init_layout);
+        init();
+
+        handler = new Handler(getMainLooper());
+        startMainDelay(15000);
+    }
+
+    private void startMainDelay(long time) {
+        handler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                Intent intent = new Intent(getApplicationContext(), XwalkMainActivity.class);
+                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                getApplicationContext().startActivity(intent);
+
+                InitActivity.this.finish();
+            }
+        }, time);
+    }
+
+    private void init() {
+        tvMac = findViewById(R.id.tv_mac);
+        tvMac.setText("MAC地址: " + GetInformationUtils.getMacAddress(this));
+        tvIP = findViewById(R.id.tv_ip);
+        tvIP.setText("MAC地址: " + GetInformationUtils.getLocalIP());
+
+        editText = findViewById(R.id.edit_scale);
+        editText.setText(String.valueOf(NetFunctionConfig.getInitScale()));
+
+        group1 = findViewById(R.id.group_over_view);
+        radioButton1 = findViewById(R.id.over_view_yes);
+        radioButton2 = findViewById(R.id.over_view_no);
+        if (NetFunctionConfig.getOverView()) {
+            radioButton1.setChecked(true);
+        } else {
+            radioButton2.setChecked(true);
+        }
+
+        group2 = findViewById(R.id.group_wide_view);
+        radioButton3 = findViewById(R.id.wide_view_yes);
+        radioButton4 = findViewById(R.id.wide_view_no);
+        if (NetFunctionConfig.getWideView()) {
+            radioButton3.setChecked(true);
+        } else {
+            radioButton4.setChecked(true);
+        }
+
+        group3 = findViewById(R.id.group_support_zoom);
+        radioButton5 = findViewById(R.id.support_zoom_yes);
+        radioButton6 = findViewById(R.id.support_zoom_no);
+        if (NetFunctionConfig.getZoom()) {
+            radioButton5.setChecked(true);
+        } else {
+            radioButton6.setChecked(true);
+        }
+
+
+        btnSet = findViewById(R.id.btn_set);
+        btnSave = findViewById(R.id.btn_save);
+
+        btnSet.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                handler.removeCallbacksAndMessages(null);
+            }
+        });
+
+        btnSave.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                handler.removeCallbacksAndMessages(null);
+
+                if (!TextUtils.isEmpty(editText.getText().toString())
+                        && TextUtils.isDigitsOnly(editText.getText().toString())) {
+                    NetFunctionConfig.setInitScale(Integer.parseInt(editText.getText().toString()));
+                }
+
+                if (group1.getCheckedRadioButtonId() == R.id.over_view_yes) {
+                    NetFunctionConfig.setOverView(true);
+                } else {
+                    NetFunctionConfig.setOverView(false);
+                }
+
+                if (group2.getCheckedRadioButtonId() == R.id.wide_view_yes) {
+                    NetFunctionConfig.setWideView(true);
+                } else {
+                    NetFunctionConfig.setWideView(false);
+                }
+
+                if (group3.getCheckedRadioButtonId() == R.id.support_zoom_yes) {
+                    NetFunctionConfig.setZoom(true);
+                } else {
+                    NetFunctionConfig.setZoom(false);
+                }
+
+                startMainDelay(3000);
+            }
+        });
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        handler.removeCallbacksAndMessages(null);
+    }
+}

+ 14 - 4
app/src/main/java/com/example/informationkanban/XwalkMainActivity.java

@@ -34,6 +34,11 @@ public class XwalkMainActivity extends XWalkActivity {
     private String MAC = "";
     private static String[] weeks = new String[]{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
 
+    private int scale;
+    boolean overView;
+    boolean wideView;
+    boolean zoom;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -41,6 +46,11 @@ public class XwalkMainActivity extends XWalkActivity {
         setContentView(R.layout.activity_xwalk_view);
         xwalkview = (XWalkView) findViewById(R.id.view_xwalkview);
 
+        scale = NetFunctionConfig.getInitScale();
+        overView = NetFunctionConfig.getOverView();
+        wideView = NetFunctionConfig.getWideView();
+        zoom = NetFunctionConfig.getZoom();
+
         timeMonitor();
     }
 
@@ -69,13 +79,13 @@ public class XwalkMainActivity extends XWalkActivity {
         XWalkPreferences.setValue(XWalkPreferences.ANIMATABLE_XWALK_VIEW, true);   //开启默认动画
 
         XWalkSettings setting = xwalkview.getSettings();
-        setting.setLoadWithOverviewMode(false);
-        setting.setInitialPageScale(100);
+        setting.setLoadWithOverviewMode(overView);
+        setting.setInitialPageScale(scale);
         setting.setJavaScriptEnabled(true);
         setting.setJavaScriptCanOpenWindowsAutomatically(true);
-        setting.setUseWideViewPort(false);
+        setting.setUseWideViewPort(wideView);
         setting.setBuiltInZoomControls(false);
-        setting.setSupportZoom(false);
+        setting.setSupportZoom(zoom);
         setting.setDomStorageEnabled(true);
         setting.setAllowContentAccess(true);
         setting.setAllowFileAccess(true);

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

@@ -6,6 +6,7 @@ import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.text.TextUtils;
 
+import java.net.Inet4Address;
 import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.net.SocketException;
@@ -152,6 +153,24 @@ public class GetInformationUtils {
         return macAddress;
     }
 
+    //获取本地ip地址
+    public static String getLocalIP() {
+        try {
+            for (Enumeration<NetworkInterface> enNetI = NetworkInterface.getNetworkInterfaces(); enNetI.hasMoreElements(); ) {
+                NetworkInterface netI = enNetI.nextElement();
+                for (Enumeration<InetAddress> enumIpAddr = netI.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
+                    InetAddress inetAddress = enumIpAddr.nextElement();
+                    if (inetAddress instanceof Inet4Address && !inetAddress.isLoopbackAddress()) {
+                        return inetAddress.getHostAddress();
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     /**
      * 前面加0
      *

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

@@ -10,6 +10,45 @@ public class NetFunctionConfig {
 
     private static final String GIT_TIME = "GIT_TIME";
 
+    private static final String INIT_SCALE = "INIT_SCALE";
+    private static final String OVER_VIEW = "OVER_VIEW";
+    private static final String WIDE_VIEW = "WIDE_VIEW";
+    private static final String ZOOM = "ZOOM";
+
+    public static void setInitScale(int scale) {
+        getEditor().putInt(INIT_SCALE, scale).apply();
+    }
+
+    public static int getInitScale() {
+        return getSP().getInt(INIT_SCALE, 100);
+    }
+
+    public static void setOverView(boolean overView) {
+        getEditor().putBoolean(OVER_VIEW, overView);
+    }
+
+    public static boolean getOverView() {
+        return getSP().getBoolean(OVER_VIEW, true);
+    }
+
+    public static void setWideView(boolean wideView) {
+        getEditor().putBoolean(WIDE_VIEW, wideView);
+    }
+
+    public static boolean getWideView() {
+        return getSP().getBoolean(WIDE_VIEW, false);
+    }
+
+    public static void setZoom(boolean zoom) {
+        getEditor().putBoolean(ZOOM, zoom);
+    }
+
+    public static boolean getZoom() {
+        return getSP().getBoolean(ZOOM, false);
+    }
+
+
+
     public static void setTime(String time) {
         getEditor().putString(GIT_TIME, time).apply();
     }

+ 126 - 0
app/src/main/res/layout/init_layout.xml

@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:gravity="center_horizontal">
+
+    <TextView
+        android:id="@+id/tv_mac"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="MAC地址"/>
+    <TextView
+        android:id="@+id/tv_ip"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="IP地址"/>
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="初始缩放: "/>
+        <EditText
+            android:id="@+id/edit_scale"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:inputType="number"
+            android:text="100"/>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="LoadWithOverviewMode: "/>
+        <RadioGroup
+            android:id="@+id/group_over_view"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+            <RadioButton
+                android:id="@+id/over_view_yes"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="是"/>
+            <RadioButton
+                android:id="@+id/over_view_no"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="否"/>
+        </RadioGroup>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="UseWideViewPort: "/>
+        <RadioGroup
+            android:id="@+id/group_wide_view"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+            <RadioButton
+                android:id="@+id/wide_view_yes"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="是"/>
+            <RadioButton
+                android:id="@+id/wide_view_no"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="否"/>
+        </RadioGroup>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="SupportZoom: "/>
+        <RadioGroup
+            android:id="@+id/group_support_zoom"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+            <RadioButton
+                android:id="@+id/support_zoom_yes"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="是"/>
+            <RadioButton
+                android:id="@+id/support_zoom_no"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="否"/>
+        </RadioGroup>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="20dp">
+        <Button
+            android:id="@+id/btn_set"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="设置"/>
+
+        <Button
+            android:id="@+id/btn_save"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="跳转"/>
+    </LinearLayout>
+
+</LinearLayout>