Эх сурвалжийг харах

1.完成Mode List界面搭建以及功能实现。
2.完成Upload Setting界面搭建。

Pen Li 9 жил өмнө
parent
commit
c0e2ae1657

+ 5 - 1
RA Image/app/src/main/AndroidManifest.xml

@@ -122,7 +122,11 @@
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:label="@string/title_activity_testfull"
             android:theme="@style/FullscreenTheme" />
-        <activity android:name=".ModeActivity"
+        <activity
+            android:name=".ModeActivity"
+            android:theme="@style/Base.Theme.AppCompat.Light"></activity>
+
+        <activity android:name=".uploadSettingActivity"
             android:theme="@style/Base.Theme.AppCompat.Light">
 
         </activity>

+ 209 - 0
RA Image/app/src/main/java/com/usai/redant/raimage/ModeActivity.java

@@ -1,13 +1,222 @@
 package com.usai.redant.raimage;
 
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Handler;
+import android.os.Message;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Adapter;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.usai.util.Network;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
 
 public class ModeActivity extends AppCompatActivity {
 
+    private ListView mode_list;
+    private Button upload_setting_btn;
+    private ImageView company_icon_iv;
+    private TextView company_name_tv;
+    private List<JSONObject> dataSource;
+    private ModeAdapter adapter;
+    /** Message Handler */
+    private Handler msgHanlder = new Handler() {
+
+        public void handleMessage(Message msg) {
+            super.handleMessage(msg);
+            switch (msg.what) {
+                case 1024:{
+                    company_icon_iv.setImageBitmap((Bitmap)msg.obj);
+                }
+            }
+        }
+
+    };
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_mode);
+
+        /**获取控件*/
+        mode_list = (ListView)findViewById(R.id.mode_list);
+        upload_setting_btn = (Button)findViewById(R.id.upload_setting_btn);
+        company_icon_iv = (ImageView)findViewById(R.id.company_name_icon);
+        company_name_tv = (TextView)findViewById(R.id.company_name_text);
+
+        /**设置数据*/
+        try {
+
+            // company
+            final String icon_link = RedAntApplication.server_info.getString("company_icon");
+            String company_name = RedAntApplication.server_info.getString("company_name");
+
+            if (!TextUtils.isEmpty(company_name)) {
+                company_name_tv.setText(company_name);
+            }
+
+            if (!TextUtils.isEmpty(icon_link)) {
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        // http://192.168.0.130/bo.png
+                        Bitmap img = Network.getImageFromLink(icon_link);
+                        if (img != null) {
+                            Message msg = new Message();
+                            msg.what = 1024;
+                            msg.obj = img;
+                            msgHanlder.sendMessage(msg);
+                        }
+                    }
+                }).start();
+            }
+
+            // mode list
+            JSONArray modeArr = RedAntApplication.server_info.getJSONArray("modellist");
+            if (modeArr.length() > 0) {
+                dataSource = new ArrayList<JSONObject>();
+                for (int i = 0; i < modeArr.length();i++) {
+                    JSONObject obj = modeArr.getJSONObject(i);
+                    dataSource.add(obj);
+                }
+                adapter = new ModeAdapter(this,R.layout.mode_cell,dataSource);
+                mode_list.setAdapter(adapter);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        /**List View 点击事件*/
+        mode_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                JSONObject mode = dataSource.get(position);
+               try {
+                   int enable = mode.getInt("enable");
+                   if (enable != 0) {
+                       String mode_name = mode.getString("name");
+                       showActivityMode(mode_name);
+                   }
+
+               } catch (Exception e) {
+                   e.printStackTrace();
+               }
+
+            }
+        });
+
+        /**上传设置按钮点击*/
+        upload_setting_btn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                showUploadSetting();
+            }
+        });
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.logout_menu,menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.logout_item: {
+//                Log.d("Mode List", "Menu Item Click " + item.getTitle());
+                logout();
+            }
+                break;
+        }
+        return true;
+    }
+
+    /***/
+    void showActivityMode(String mode) {
+
+    }
+
+    /**上传设置*/
+    void showUploadSetting() {
+        Intent intent = new Intent(ModeActivity.this,uploadSettingActivity.class);
+        startActivity(intent);
+    }
+
+    void logout() {
+        RedAntApplication.user = null;
+        RedAntApplication.password = null;
+        RedAntApplication.server_info = null;
+        Intent intent = new Intent(ModeActivity.this,FullScreenLoginActivity.class);
+        startActivity(intent);
+        finish();
+    }
+
+    /**数据源*/
+    class ModeAdapter extends ArrayAdapter<JSONObject> {
+        private int resourceID;
+        public ModeAdapter(Context ctx, int resourceId, List<JSONObject> list) {
+            super(ctx,resourceId,list);
+            resourceID = resourceId;
+        }
+
+        @NonNull
+        @Override
+        public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
+
+            JSONObject mode = getItem(position);
+            ViewHolder holder = null;
+            View cell;
+            if (convertView == null) {
+                cell = LayoutInflater.from(getContext()).inflate(resourceID,null);
+                holder = new ViewHolder();
+                holder.mode = (TextView) cell.findViewById(R.id.mode_name_tv);
+                cell.setTag(holder);
+            } else  {
+                cell = convertView;
+                holder = (ViewHolder)cell.getTag();
+            }
+
+            try {
+                holder.mode.setText(mode.getString("name").toString());
+                int enable = mode.getInt("enable");
+
+                if (enable == 0) {
+                    cell.setBackgroundColor(getResources().getColor(R.color.dark_gray));
+                } else  {
+                    cell.setBackgroundColor(getResources().getColor(R.color.clear_color));
+                }
+                return cell;
+            } catch (Exception e) {
+                e.printStackTrace();
+                return null;
+            }
+        }
+
+        class ViewHolder {
+            TextView mode;
+        }
     }
 }

+ 14 - 0
RA Image/app/src/main/java/com/usai/redant/raimage/uploadSettingActivity.java

@@ -0,0 +1,14 @@
+package com.usai.redant.raimage;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+public class uploadSettingActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_upload_setting);
+    }
+}

+ 21 - 0
RA Image/app/src/main/java/com/usai/util/Network.java

@@ -25,6 +25,7 @@ import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.UnrecoverableKeyException;
 import java.util.Set;
+import java.util.logging.Handler;
 
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
@@ -67,6 +68,7 @@ import android.graphics.BitmapFactory;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.os.Bundle;
+import android.os.Message;
 import android.provider.Settings;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
@@ -1253,4 +1255,23 @@ public class Network
 		return bavailable;
 	}
 
+	public static Bitmap getImageFromLink(String link) {
+		HttpURLConnection connection = null;
+		Bitmap img = null;
+		try {
+
+			URL url = new URL(link);
+			connection = (HttpURLConnection)url.openConnection();
+			connection.setRequestMethod("GET");
+			img = BitmapFactory.decodeStream(connection.getInputStream());
+
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			if (connection != null) {
+				connection.disconnect();
+			}
+		}
+		return img;
+	}
 }

+ 71 - 3
RA Image/app/src/main/res/layout/activity_mode.xml

@@ -1,10 +1,78 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-
     android:layout_height="match_parent"
     tools:context="com.usai.redant.raimage.ModeActivity">
 
-</android.support.constraint.ConstraintLayout>
+    <ImageView
+        android:id="@+id/company_name_icon"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
+        android:layout_margin="10dp"
+        app:srcCompat="@drawable/red_ant_logo"
+        />
+
+    <TextView
+        android:id="@+id/company_name_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Red Ant"
+        android:gravity="center_vertical"
+        android:textSize="17sp"
+        android:textColor="#000000"
+        android:layout_toRightOf="@+id/company_name_icon"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentEnd="true"
+        android:layout_alignBottom="@+id/company_name_icon"
+        android:layout_alignTop="@+id/company_name_icon"
+        />
+
+    <Button
+        android:id="@+id/upload_setting_btn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_margin="5dp"
+        android:background="@color/clear_color"
+        android:text="upload setting"
+        android:textColor="@color/blue"
+        android:textAllCaps="false"
+        />
+
+    <View
+        android:id="@+id/line_top"
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:layout_below="@id/company_name_icon"
+        android:background="#B8B8B8"
+        />
+
+    <View
+        android:id="@+id/line_bottom"
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:layout_above="@id/upload_setting_btn"
+        android:background="#B8B8B8"
+        />
+
+    <LinearLayout
+        android:id="@+id/list_layout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_above="@id/line_bottom"
+        android:layout_below="@id/line_top"
+        >
+
+        <ListView
+            android:id="@+id/mode_list"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            />
+
+    </LinearLayout>
+
+
+
+</RelativeLayout>

+ 128 - 0
RA Image/app/src/main/res/layout/activity_upload_setting.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:visibility="visible"
+    tools:context="com.usai.redant.raimage.uploadSettingActivity">
+
+    <TextView
+        android:id="@+id/auto_start_txt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginLeft="10dp"
+        android:layout_marginStart="20dp"
+        android:layout_marginTop="45dp"
+        android:text="Auto Start Upload"
+        android:textSize="17sp" />
+
+    <Switch
+        android:id="@+id/auto_start_swt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignBaseline="@+id/auto_start_txt"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentRight="true"
+        android:layout_marginEnd="10dp"
+        android:layout_marginRight="10dp" />
+
+    <TextView
+        android:id="@+id/auto_rm_fs_txt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_below="@id/auto_start_txt"
+        android:layout_marginLeft="10dp"
+        android:layout_marginStart="20dp"
+        android:layout_marginTop="20dp"
+        android:text="Auto Remove Finish"
+        android:textSize="17sp" />
+
+    <Switch
+        android:id="@+id/auto_rm_fs_swt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignBaseline="@+id/auto_rm_fs_txt"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentRight="true"
+        android:layout_marginEnd="10dp"
+        android:layout_marginRight="10dp" />
+
+    <TextView
+        android:id="@+id/auto_rm_er_txt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_below="@id/auto_rm_fs_txt"
+        android:layout_marginLeft="10dp"
+        android:layout_marginStart="20dp"
+        android:layout_marginTop="20dp"
+        android:text="Auto Remove Error"
+        android:textSize="17sp" />
+
+    <Switch
+        android:id="@+id/auto_rm_er_swt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignBaseline="@+id/auto_rm_er_txt"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentRight="true"
+        android:layout_marginEnd="10dp"
+        android:layout_marginRight="10dp" />
+
+    <TextView
+        android:id="@+id/compress_txt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_below="@id/auto_rm_er_txt"
+        android:layout_marginLeft="10dp"
+        android:layout_marginStart="20dp"
+        android:layout_marginTop="20dp"
+        android:text="Compress Image"
+        android:textSize="17sp" />
+
+    <Switch
+        android:id="@+id/compress_swt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignBaseline="@+id/compress_txt"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentRight="true"
+        android:layout_marginEnd="10dp"
+        android:layout_marginRight="10dp" />
+
+    <TextView
+        android:id="@+id/retry_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_below="@id/compress_txt"
+        android:layout_marginLeft="10dp"
+        android:layout_marginStart="20dp"
+        android:layout_marginTop="20dp"
+        android:text="Max Retry Count"
+        android:textSize="17sp" />
+
+    <EditText
+        android:id="@+id/retry_swt"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignBaseline="@+id/retry_text"
+        android:layout_alignBottom="@+id/retry_text"
+        android:layout_alignEnd="@+id/compress_swt"
+        android:layout_alignLeft="@+id/compress_swt"
+        android:layout_alignRight="@+id/compress_swt"
+        android:layout_alignStart="@+id/compress_swt"
+        android:inputType="number" />
+
+
+</RelativeLayout>

+ 17 - 0
RA Image/app/src/main/res/layout/mode_cell.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical" android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/mode_name_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="40dp"
+        android:text="Mode"
+        android:gravity="center_vertical"
+        android:textSize="17sp"
+        android:textColor="#000000"
+        android:layout_marginLeft="10dp"
+        />
+
+</LinearLayout>

+ 14 - 0
RA Image/app/src/main/res/menu/logout_menu.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+
+    <style>
+        <item
+            android:id="@+id/logout_item"
+            android:title="Logout"
+            app:showAsAction="always"
+            />
+    </style>
+
+</menu>

+ 5 - 0
RA Image/app/src/main/res/values/colors.xml

@@ -47,4 +47,9 @@
 
     <color name="black_overlay">#66000000</color>
 
+    <color name="dark_gray">#555555</color>
+
+    <color name="clear_color">#00000000</color>
+
+    <color name="blue">#2172FF</color>
 </resources>