diff --git a/app/src/main/java/tech/goda/studyck/MainActivity.java b/app/src/main/java/tech/goda/studyck/MainActivity.java index f318837..c53d93f 100644 --- a/app/src/main/java/tech/goda/studyck/MainActivity.java +++ b/app/src/main/java/tech/goda/studyck/MainActivity.java @@ -7,6 +7,9 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Build; import android.os.Environment; @@ -22,40 +25,24 @@ import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; -import android.text.Html; -import android.text.Layout; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; - import org.jsoup.Jsoup; import org.jsoup.nodes.Document; -import org.jsoup.select.Elements; - -import java.io.BufferedReader; -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.net.CookieHandler; import java.net.CookieManager; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; -import java.security.KeyStore; -import java.util.Collection; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; -import java.util.Set; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @@ -65,6 +52,7 @@ public class MainActivity extends AppCompatActivity TextView messageText; Button uploadButton, choose; EditText editFileName; + ImageView imageView; String uploadServerUri = null; InputStream in; @@ -89,19 +77,12 @@ public class MainActivity extends AppCompatActivity messageText = findViewById(R.id.messageText); editFileName = findViewById(R.id.fileName); button3 = findViewById(R.id.button3); + imageView = findViewById(R.id.imageView); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); - fab.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) - .setAction("Action", null).show(); - } - }); DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( @@ -386,19 +367,38 @@ public class MainActivity extends AppCompatActivity // Handle navigation view item clicks here. int id = item.getItemId(); - if (id == R.id.nav_camera) { - // Handle the camera action - } else if (id == R.id.nav_gallery) { + if (id == R.id.nav_file) { - } else if (id == R.id.nav_slideshow) { + } else if (id == R.id.nav_site) { - } else if (id == R.id.nav_manage) { + } else if (id == R.id.nav_homework) { - } else if (id == R.id.nav_share) { + } else if (id == R.id.nav_email) { - } else if (id == R.id.nav_send) { + } else if (id == R.id.nav_schedule) { + } else if (id == R.id.nav_info) { + + } else if (id == R.id.nav_passwd) { + + new Thread(new Runnable() { + @Override + public void run() { + Network.httpsRequestPost(Network.CHANGE_PWD_URI, new HashMap()); + final Drawable drawable = Network.getDrawable("https://ldap.ck.tp.edu.tw/admin/code.php"); + Log.e("TAG", String.valueOf(drawable==null)); + runOnUiThread(new Runnable() { + @Override + public void run() { + Log.e("TAG_INSIDE", String.valueOf(drawable==null)); + imageView.setImageDrawable(drawable); + } + }); + } + + }).start(); } + Toast.makeText(getApplicationContext(), "你點選了!!", Toast.LENGTH_SHORT).show(); DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); diff --git a/app/src/main/java/tech/goda/studyck/Network.java b/app/src/main/java/tech/goda/studyck/Network.java index 02f9da2..b4c9191 100644 --- a/app/src/main/java/tech/goda/studyck/Network.java +++ b/app/src/main/java/tech/goda/studyck/Network.java @@ -4,6 +4,9 @@ import android.app.Activity; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.provider.DocumentsContract; import android.support.v4.provider.DocumentFile; @@ -19,6 +22,7 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; +import java.net.URLConnection; import java.util.Map; import java.util.Set; @@ -29,6 +33,7 @@ import java.util.Set; public class Network { public static final String LOGIN_URI = "http://study.ck.tp.edu.tw/login_chk.asp"; public static final String LOGOUT_URI = "http://study.ck.tp.edu.tw/logout.asp"; + public static final String CHANGE_PWD_URI = "https://ldap.ck.tp.edu.tw/admin/chpass.php"; public static String uploadFile(String sourceFileUri, InputStream in, String uploadFileName) { @@ -377,6 +382,88 @@ public class Network { return response; } + public static String httpsRequestPost(String uri, Map params){ + URLConnection conn; + DataOutputStream dos; + String response = null; + try { + // open a URL connection to the Servlet + URL url = new URL(uri); + // Open a HTTP connection to the URL + conn = url.openConnection(); + conn.setDoInput(true); // Allow Inputs + conn.setDoOutput(true); // Allow Outputs + conn.setUseCaches(false); // Don't use a Cached Copy + conn.setRequestProperty("Connection", "Keep-Alive"); + dos = new DataOutputStream(conn.getOutputStream()); + Set keySet = params.keySet(); + StringBuilder sb = new StringBuilder(); + for (Object objKey : keySet) { + //有了鍵就可以通過map集合的get方法獲取其對應的値 + + String key = objKey.toString(); + String value = params.get(key); + + sb.append(key).append("=").append(value).append("&"); + + Log.e("Params", "key: " + key + ", value: " + value); + } + if(params.size() != 0){ + sb.deleteCharAt(sb.length()-1); + } + + Log.e("StringBuilder", sb.toString()); + dos.writeBytes(sb.toString()); + + + // Responses from the server (code and message) + + try{ + BufferedReader br; + br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); + sb = new StringBuilder(); + String output; + while ((output = br.readLine()) != null) { + sb.append(output); + } + response = sb.toString(); + Log.e("Response", response); + } catch(java.io.IOException e){ + e.printStackTrace(); + } + + + dos.flush(); + dos.close(); + + } catch (MalformedURLException e) { + + e.printStackTrace(); + Log.e("Upload file to server", "error: " + e.getMessage(), e); + } catch (Exception e) { + e.printStackTrace(); + Log.e("Upload", "Exception : " + + e.getMessage(), e); + } + return response; + } + public static Drawable getDrawable(String imageUrl) + { + try + { + URL url = new URL(imageUrl); + URLConnection connection = url.openConnection(); + connection.setDoInput(true); + connection.connect(); + InputStream input = connection.getInputStream(); + return Drawable.createFromStream(input, imageUrl); + } + catch (IOException e) + { + e.printStackTrace(); + return null; + } + } } diff --git a/app/src/main/res/drawable/ic_account_circle_black.xml b/app/src/main/res/drawable/ic_account_circle_black.xml new file mode 100644 index 0000000..56da93d --- /dev/null +++ b/app/src/main/res/drawable/ic_account_circle_black.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index 7982219..16db609 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -22,12 +22,5 @@ - diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index 8da31cd..b9eb2f3 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -86,4 +86,19 @@ android:orientation="vertical" app:layout_constraintGuide_percent="0.5" /> + + diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index dd9dc71..d81ecb9 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -1,36 +1,46 @@ + + android:src="@drawable/ic_account_circle_black" /> - + android:layout_height="match_parent" + android:gravity="center_vertical" + android:orientation="vertical"> - + + + + diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index a30626e..3cf7ca4 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" tools:showIn="navigation_view"> - + - + + android:id="@+id/nav_file" + android:title="檔案" /> + android:id="@+id/nav_site" + android:title="網站" /> + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index a5be179..08e23cf 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,7 +1,7 @@ - 16dp - 16dp + 4dp + 12dp 8dp 176dp 16dp