diff --git a/.idea/modules.xml b/.idea/modules.xml index 223896e347e46d8dfc55407a6dddd77831a8af77..abc31fc679bb491e423c03e7bd677ff03ed00d98 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,9 +2,8 @@ <project version="4"> <component name="ProjectModuleManager"> <modules> - <module fileurl="file://F:\informatika\pbd\fitness\android.iml" filepath="F:\informatika\pbd\fitness\android.iml" /> + <module fileurl="file://$PROJECT_DIR$/android.iml" filepath="$PROJECT_DIR$/android.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> - <module fileurl="file://$PROJECT_DIR$/fitness.iml" filepath="$PROJECT_DIR$/fitness.iml" /> </modules> </component> </project> \ No newline at end of file diff --git a/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java index e123133c7430954bf395f88cfaf4e6234e4cff37..464b094dcd7378bba6d24f0a3068becca97ef2f9 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java @@ -2,12 +2,27 @@ package com.example.leo.fitnessdiy; import android.content.Intent; import android.content.SharedPreferences; +import android.net.Uri; +import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; import android.view.View; +import android.widget.EditText; -public class LoginActivity extends AppCompatActivity { +import com.example.leo.fitnessdiy.model.Users; + +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Scanner; +public class LoginActivity extends AppCompatActivity { + private String LOG_TAG = "LOGIN ACTIVITY"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -30,7 +45,69 @@ public class LoginActivity extends AppCompatActivity { } public void doLogin(View view) { - Intent i = new Intent(getApplicationContext(), HomeActivity.class); - startActivity(i); + EditText edit_text_email = (EditText)findViewById(R.id.login_email); + EditText edit_text_password = (EditText)findViewById(R.id.login_password); + String email = edit_text_email.getText().toString(); + String password = edit_text_password.getText().toString(); + String response = ""; + Users user = null; + try { + response = getResponseFromHttpUrlPost(email, password); + Log.d("RESPONSE", response); + } catch (IOException e){ + e.printStackTrace(); + } + if(!response.equals("not_found")) { + user = Users.initializeData(response); + } + if(user == null){ + Log.d(LOG_TAG, "Email atau password salah"); + } else { + Log.d(LOG_TAG, "" + user.getId()); + Log.d(LOG_TAG, user.getUsername()); + Log.d(LOG_TAG, user.getEmail()); + Log.d(LOG_TAG, user.getLevel()); + Intent i = new Intent(getApplicationContext(), HomeActivity.class); + startActivity(i); + } + } + public static String getResponseFromHttpUrlPost(String email, String password) throws IOException { + if (android.os.Build.VERSION.SDK_INT > 9) { + StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); + StrictMode.setThreadPolicy(policy); + } + try { + String urlstring = "http://ekiwae21.000webhostapp.com/fitness-server/login.php"; + URL url = new URL(urlstring); + HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + urlConnection.setRequestMethod("POST"); + Uri.Builder builder = new Uri.Builder() + .appendQueryParameter("email", email) + .appendQueryParameter("password", password); + String query = builder.build().getQuery(); + + OutputStream os = urlConnection.getOutputStream(); + BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(os, "UTF-8")); + writer.write(query); + writer.flush(); + writer.close(); + os.close(); + urlConnection.connect(); + + InputStream in = urlConnection.getInputStream(); + Scanner scanner = new Scanner(in); + scanner.useDelimiter("\\A"); + + boolean hasInput = scanner.hasNext(); + if (hasInput) { + return scanner.next(); + } else { + return null; + } + } catch (IOException e){ + e.printStackTrace(); + } + return null; } } diff --git a/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java index d60e8696b3ae6d63e42555d0cb49e7d8b8392636..ee601a947d021a256ae62214f85108794e146e05 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java @@ -25,12 +25,12 @@ import java.util.ArrayList; public class PlankActivity extends AppCompatActivity { private String LOG_TAG = "TES PLANK ACTIVITY"; + Users user = getUser(1); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_plank); -// printUser(1); SharedPreferences mPreferences; String sharedPrefFile = "com.example.leo.fitnessdiy"; @@ -39,6 +39,19 @@ public class PlankActivity extends AppCompatActivity { int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme); getWindow().getDecorView().setBackground(getResources().getDrawable(background)); + + + + } + + public int setCountTime(Users user){ + if(user.getLevel().equals("begineer")){ + return 60000; + } else if(user.getLevel().equals("intermediate")){ + return 120000; + } else { + return 180000; + } } public String milisecondToMinutes(long l){ @@ -52,7 +65,7 @@ public class PlankActivity extends AppCompatActivity { public void countDownPlank(View view) { final TextView countText = findViewById(R.id.count_timer); - new CountDownTimer(120000, 1000){ + new CountDownTimer(setCountTime(user), 1000){ @Override public void onTick(long l) { String waktu = milisecondToMinutes(l); @@ -66,38 +79,21 @@ public class PlankActivity extends AppCompatActivity { }.start(); } - public Users initializeData(String data) { - Users user = new Users(); - try { - JSONArray parser = new JSONArray(data); - JSONObject json = parser.getJSONObject(0); - - int id = json.getInt("id"); - String username = json.getString("username"); - String password = json.getString("password"); - String email = json.getString("email"); - String phone_number = json.getString("phone_number"); - int age = json.getInt("age"); - String address = json.getString("address"); - String level = json.getString("level"); - user = new Users(id, username, password, email, phone_number, age, address, level); - } catch (JSONException e) { - e.printStackTrace(); - } - return user; - } - public void printUser(int user_id){ + + public Users getUser(int user_id){ + Users user = new Users(); try { - URL url = new URL("http://ekiwae21.000webhostapp.com/fitness-server/users.php?user=1"); + URL url = new URL("http://ekiwae21.000webhostapp.com/fitness-server/users.php?user="+user_id); String fetchResults = NetworkUtils.getResponseFromHttpUrl(url); - Users user = initializeData(fetchResults); + user = Users.initializeData(fetchResults); Log.d(LOG_TAG, Integer.toString(user.getId())); Log.d(LOG_TAG, user.getLevel()); } catch (IOException e) { e.printStackTrace(); } + return user; } public void openVideo(View view) { diff --git a/app/src/main/java/com/example/leo/fitnessdiy/Utilities/NetworkUtils.java b/app/src/main/java/com/example/leo/fitnessdiy/Utilities/NetworkUtils.java index 282008151143987b3a6603c59d615ccde89244ee..e3ed23b4361f7c29e037e3f3cd1a037458f9577b 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/Utilities/NetworkUtils.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/Utilities/NetworkUtils.java @@ -2,6 +2,7 @@ package com.example.leo.fitnessdiy.Utilities; import android.net.Uri; import android.os.AsyncTask; +import android.os.StrictMode; import java.io.BufferedInputStream; import java.io.IOException; @@ -58,6 +59,10 @@ public class NetworkUtils { * @throws IOException Related to network and stream reading */ public static String getResponseFromHttpUrl(URL url) throws IOException { + if (android.os.Build.VERSION.SDK_INT > 9) { + StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); + StrictMode.setThreadPolicy(policy); + } HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); try { InputStream in = urlConnection.getInputStream(); diff --git a/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java b/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java index cf9443e14aa6f448e56e5b1592361fc683a91918..5a0ab64af6d344325a7f13e70e495c97b6c26d66 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java @@ -1,5 +1,9 @@ package com.example.leo.fitnessdiy.model; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + public class Users { private int id; private String username; @@ -63,4 +67,25 @@ public class Users { public String getLevel() { return level; } + + public static Users initializeData(String data) { + Users user = new Users(); + try { + JSONArray parser = new JSONArray(data); + JSONObject json = parser.getJSONObject(0); + + int id = json.getInt("id"); + String username = json.getString("username"); + String password = json.getString("password"); + String email = json.getString("email"); + String phone_number = json.getString("phone_number"); + int age = json.getInt("age"); + String address = json.getString("address"); + String level = json.getString("level"); + user = new Users(id, username, password, email, phone_number, age, address, level); + } catch (JSONException e) { + e.printStackTrace(); + } + return user; + } } diff --git a/app/src/main/res/layout/activity_plank.xml b/app/src/main/res/layout/activity_plank.xml index 84d255c47a2266e6c2b86eee567378df6b779e3e..55611c96718e8aa3ca7b26cd0f3c5807445c846a 100644 --- a/app/src/main/res/layout/activity_plank.xml +++ b/app/src/main/res/layout/activity_plank.xml @@ -31,7 +31,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:text="2 : 00" + android:text="" android:textSize="32sp" /> <TextView