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/build.gradle b/app/build.gradle
index 9597d516cc8b7ab7a9c5a771b05657f60bdd936d..d335be3ca746f8c7e54b5bb72825e8cf56372efa 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -40,6 +40,7 @@ dependencies {
 
     compile 'com.android.support:design:26.1.0'
     compile 'com.firebaseui:firebase-ui:0.6.0'
+    compile 'com.firebase:firebase-client-android:2.5.2'
 }
 
 apply plugin: 'com.google.gms.google-services'
diff --git a/app/google-services.json b/app/google-services.json
index b82dd4404638156cd5daec4df7d9dde44ddf37f2..a4f5db10ca55956e7eb83c3fc17b6af1d441f4f0 100644
--- a/app/google-services.json
+++ b/app/google-services.json
@@ -1,109 +1,21 @@
 {
   "project_info": {
-    "project_number": "145946844862",
-    "firebase_url": "https://chatroom-ca444.firebaseio.com",
-    "project_id": "chatroom-ca444",
-    "storage_bucket": "chatroom-ca444.appspot.com"
+    "project_number": "47436114658",
+    "firebase_url": "https://chatroom-9f21a.firebaseio.com",
+    "project_id": "chatroom-9f21a",
+    "storage_bucket": "chatroom-9f21a.appspot.com"
   },
   "client": [
     {
       "client_info": {
-        "mobilesdk_app_id": "1:145946844862:android:d6ce396209c6cfd3",
-        "android_client_info": {
-          "package_name": "com.example.heil.chatroom"
-        }
-      },
-      "oauth_client": [
-        {
-          "client_id": "145946844862-k70e5blk1gvu645eb455umqnnfb9kp0o.apps.googleusercontent.com",
-          "client_type": 1,
-          "android_info": {
-            "package_name": "com.example.heil.chatroom",
-            "certificate_hash": "115e06ed0d4d6219898c05cef50eb935401113dc"
-          }
-        },
-        {
-          "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com",
-          "client_type": 3
-        }
-      ],
-      "api_key": [
-        {
-          "current_key": "AIzaSyBlESSrC8NqbRvIHRn4DSCfps5TctNLGjE"
-        }
-      ],
-      "services": {
-        "analytics_service": {
-          "status": 1
-        },
-        "appinvite_service": {
-          "status": 2,
-          "other_platform_oauth_client": [
-            {
-              "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com",
-              "client_type": 3
-            }
-          ]
-        },
-        "ads_service": {
-          "status": 2
-        }
-      }
-    },
-    {
-      "client_info": {
-        "mobilesdk_app_id": "1:145946844862:android:5626d847803be314",
-        "android_client_info": {
-          "package_name": "com.example.heil.bismillah"
-        }
-      },
-      "oauth_client": [
-        {
-          "client_id": "145946844862-n22r33mdmtvpi5230r9druv5qvn425g4.apps.googleusercontent.com",
-          "client_type": 1,
-          "android_info": {
-            "package_name": "com.example.heil.bismillah",
-            "certificate_hash": "115e06ed0d4d6219898c05cef50eb935401113dc"
-          }
-        },
-        {
-          "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com",
-          "client_type": 3
-        }
-      ],
-      "api_key": [
-        {
-          "current_key": "AIzaSyBlESSrC8NqbRvIHRn4DSCfps5TctNLGjE"
-        }
-      ],
-      "services": {
-        "analytics_service": {
-          "status": 1
-        },
-        "appinvite_service": {
-          "status": 2,
-          "other_platform_oauth_client": [
-            {
-              "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com",
-              "client_type": 3
-            }
-          ]
-        },
-        "ads_service": {
-          "status": 2
-        }
-      }
-    },
-    {
-      "client_info": {
-        "mobilesdk_app_id": "1:145946844862:android:35ec7a00c3481d94",
+        "mobilesdk_app_id": "1:47436114658:android:35ec7a00c3481d94",
         "android_client_info": {
           "package_name": "com.example.leo.fitnessdiy"
         }
       },
       "oauth_client": [
         {
-          "client_id": "145946844862-oshjav6a4mq4760hnt0m1940gkhdnrri.apps.googleusercontent.com",
+          "client_id": "47436114658-rqa1vg0ujgrigjr06v5bq9mh602b4d8v.apps.googleusercontent.com",
           "client_type": 1,
           "android_info": {
             "package_name": "com.example.leo.fitnessdiy",
@@ -111,13 +23,13 @@
           }
         },
         {
-          "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com",
+          "client_id": "47436114658-nbvl0jljj7m3ghkf2j3uf8nutqft1k17.apps.googleusercontent.com",
           "client_type": 3
         }
       ],
       "api_key": [
         {
-          "current_key": "AIzaSyBlESSrC8NqbRvIHRn4DSCfps5TctNLGjE"
+          "current_key": "AIzaSyByNyWfdtliAQrLe1-yytroe_S_JIvhS00"
         }
       ],
       "services": {
@@ -128,7 +40,7 @@
           "status": 2,
           "other_platform_oauth_client": [
             {
-              "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com",
+              "client_id": "47436114658-nbvl0jljj7m3ghkf2j3uf8nutqft1k17.apps.googleusercontent.com",
               "client_type": 3
             }
           ]
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0e576b99e30248188704eb8e685f8813a8ca7a2a..bfabb151d20282e3b0fb0c9c9e7fbfc02b2cecc0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,6 +9,9 @@
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
 
+    <uses-feature
+        android:name="android.hardware.sensor.proximity"
+        android:required="true" />
     <!--
          The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
          Google Maps Android API v2, but you must specify either coarse or fine
@@ -57,7 +60,8 @@
         <activity
             android:name=".JoggingActivity"
             android:label="@string/title_activity_jogging" />
-        <activity android:name=".SettingActivity"></activity>
+        <activity android:name=".SettingActivity" />
+        <activity android:name=".SensorActivity"></activity>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java
index 58ec25dfed95ea1f6185b45f1edc2161f738c1b1..605cfd55adf79478f13d55aacc858ae2e3d28aab 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java
@@ -2,6 +2,7 @@ package com.example.leo.fitnessdiy;
 
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.os.AsyncTask;
 import android.support.annotation.NonNull;
 import android.support.design.widget.FloatingActionButton;
 import android.support.v7.app.AppCompatActivity;
@@ -15,6 +16,7 @@ import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.firebase.client.authentication.Constants;
 import com.firebase.ui.auth.AuthUI;
 import com.firebase.ui.database.FirebaseListAdapter;
 import com.google.android.gms.tasks.OnCompleteListener;
@@ -22,13 +24,22 @@ import com.google.android.gms.tasks.Task;
 import com.google.firebase.auth.FirebaseAuth;
 import com.google.firebase.database.FirebaseDatabase;
 
+import org.json.JSONObject;
+
 import java.util.Date;
 
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+
 /**
  * Created by Heil on 2/18/2018.
  */
 
 public class ChatActivity extends AppCompatActivity {
+    private  static  String LEGACY_SERVER_KEY = "AIzaSyAe9-zGwsfRuRw_rA9fp6NmY2v_En5Yv0M";
 
     private static final int SIGN_IN_REQUEST_CODE = 1;
     private FirebaseListAdapter<ChatMessage> adapter;
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java b/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java
index 5225c8bf6a44f88efe75e04b543dcd9697389e77..ea5d16322e57ecacd374b955a03219bce8ae190c 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java
@@ -14,11 +14,13 @@ import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.firebase.client.Firebase;
 import com.firebase.ui.auth.AuthUI;
 import com.firebase.ui.database.FirebaseListAdapter;
 import com.google.android.gms.tasks.OnCompleteListener;
 import com.google.android.gms.tasks.Task;
 import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.database.DataSnapshot;
 import com.google.firebase.database.FirebaseDatabase;
 
 import java.util.Date;
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java
index 2c237eeda8b856f37755f74e1d20d8cabb0969fe..f5cd9b9bc9850476e86d44e48be3f7923c51add3 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java
@@ -2,6 +2,10 @@ package com.example.leo.fitnessdiy;
 
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
 import android.net.Uri;
 import android.support.design.widget.FloatingActionButton;
 import android.support.v7.app.AppCompatActivity;
@@ -14,6 +18,7 @@ import android.view.View;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
+import android.widget.Toast;
 
 public class HomeActivity extends AppCompatActivity
         implements ExerciseFragment.OnFragmentInteractionListener,
@@ -22,6 +27,12 @@ public class HomeActivity extends AppCompatActivity
 
     private FloatingActionButton chatButton;
 
+    // Sensor variable declaration
+    private SensorManager sensorManager;
+    private Sensor proximitySensor;
+    private SensorEventListener proximitySensorListener;
+
+
     private final String LOG_TAG = "BACKGROUND";
     @Override
     public void onFragmentInteraction(Uri uri) {
@@ -56,6 +67,30 @@ public class HomeActivity extends AppCompatActivity
         mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
         int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme);
         getWindow().getDecorView().setBackground(getResources().getDrawable(background));
+
+        // Proximity Sensor
+        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
+        proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
+
+        if (proximitySensor == null) {
+            Toast.makeText(this, "Proximity sensor is not available !", Toast.LENGTH_LONG).show();
+            finish();
+        }
+
+        proximitySensorListener = new SensorEventListener() {
+            @Override
+            public void onSensorChanged(SensorEvent sensorEvent) {
+                if (sensorEvent.values[0] < proximitySensor.getMaximumRange()) {
+                    Intent i = new Intent(getApplicationContext(), ChatActivity.class);
+                    startActivity(i);
+                }
+            }
+
+            @Override
+            public void onAccuracyChanged(Sensor sensor, int i) {
+            }
+        };
+
     }
 
     public void openHistory(View view) {
@@ -96,5 +131,18 @@ public class HomeActivity extends AppCompatActivity
         startActivity(i);
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        sensorManager.registerListener(proximitySensorListener, proximitySensor,
+                2 * 1000 * 1000);
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        sensorManager.unregisterListener(proximitySensorListener);
+    }
+
 
 }
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java
index eba5dcfcfacd61e068b8a79e8214493a7542fc66..52996efb84a964c64f2ff978a81967d85b0a955b 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java
@@ -1,20 +1,34 @@
 package com.example.leo.fitnessdiy;
 
+import android.content.Intent;
 import android.content.SharedPreferences;
+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.RadioButton;
 
-public class LevelActivity extends AppCompatActivity {
+import com.example.leo.fitnessdiy.model.Users;
+import com.example.leo.fitnessdiy.model.UsersSharedPreferences;
+import com.example.leo.fitnessdiy.routes.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Scanner;
 
+public class LevelActivity extends AppCompatActivity {
+    private SharedPreferences mPreferences;
+    String sharedPrefFile = "com.example.leo.fitnessdiy";
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_level);
 
-        SharedPreferences mPreferences;
-        String sharedPrefFile = "com.example.leo.fitnessdiy";
+
         final String BACKGROUND_KEY = "background";
         mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
 
@@ -24,23 +38,55 @@ public class LevelActivity extends AppCompatActivity {
 
     public void selectLevel(View view) {
         boolean checked = ((RadioButton) view).isChecked();
-
+        String level = "";
         switch (view.getId()){
             case R.id.level_begineer:
                 if(checked){
-
+                    level = "begineer";
                 }
                 break;
             case R.id.level_intermediate:
                 if(checked){
-
+                    level = "intermediate";
                 }
                 break;
             case R.id.level_advanced:
                 if(checked){
-
+                    level = "advanced";
                 }
                 break;
         }
+        mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
+        SharedPreferences.Editor preferencesEditor = mPreferences.edit();
+        preferencesEditor.putString(UsersSharedPreferences.LEVEL_USERS, level);
+        preferencesEditor.apply();
+        Log.d("LEVEL", mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "level salah"));
+        editLevel(level, mPreferences);
+        Intent i = new Intent(getApplicationContext(), HomeActivity.class);
+        startActivity(i);
+    }
+
+    public void editLevel(String level, SharedPreferences mPreferences){
+        int user = mPreferences.getInt(UsersSharedPreferences.ID_USERS, 0);
+        String urlstring = api.EDIT_LEVEL_URL+"user="+user+"&level="+level;
+        if (android.os.Build.VERSION.SDK_INT > 9) {
+            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
+            StrictMode.setThreadPolicy(policy);
+        }
+        try {
+            URL url = new URL(urlstring);
+            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
+            try {
+                InputStream in = urlConnection.getInputStream();
+
+                Scanner scanner = new Scanner(in);
+            } finally {
+                urlConnection.disconnect();
+            }
+        }catch (MalformedURLException e){
+            e.printStackTrace();
+        }catch (IOException e) {
+            e.printStackTrace();
+        }
     }
 }
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 464b094dcd7378bba6d24f0a3068becca97ef2f9..2685d604b324bfb290215c97f9bab26c91b1921d 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java
@@ -9,8 +9,10 @@ import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
 import android.widget.EditText;
+import android.widget.Toast;
 
 import com.example.leo.fitnessdiy.model.Users;
+import com.example.leo.fitnessdiy.model.UsersSharedPreferences;
 
 import java.io.BufferedWriter;
 import java.io.IOException;
@@ -23,14 +25,15 @@ import java.util.Scanner;
 
 public class LoginActivity extends AppCompatActivity {
     private String LOG_TAG = "LOGIN ACTIVITY";
+    private SharedPreferences mPreferences;
+    private String sharedPrefFile = "com.example.leo.fitnessdiy";
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_login);
 
-        SharedPreferences mPreferences;
-        String sharedPrefFile = "com.example.leo.fitnessdiy";
         final String BACKGROUND_KEY = "background";
+
         mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
         int background = R.drawable.green_theme;
         try{
@@ -53,24 +56,33 @@ public class LoginActivity extends AppCompatActivity {
         Users user = null;
         try {
             response = getResponseFromHttpUrlPost(email, password);
-            Log.d("RESPONSE", response);
+//            Log.d("RESPONSE", response);
         } catch (IOException e){
             e.printStackTrace();
         }
         if(!response.equals("not_found")) {
+            Log.d(LOG_TAG, response);
             user = Users.initializeData(response);
+//            Log.d(LOG_TAG, "" + user.getId());
+//            Log.d(LOG_TAG, user.getUsername());
+//            Log.d(LOG_TAG, user.getEmail());
+//            Log.d(LOG_TAG, user.getLevel());
+            mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
+            UsersSharedPreferences.setUserSharedPreferences(mPreferences, user);
+//            Log.d(LOG_TAG, mPreferences.getString(UsersSharedPreferences.EMAIL_USERS, "user tidak ditemukan"));
+//            Log.d(LOG_TAG, mPreferences.getString(UsersSharedPreferences.PASSWORD_USERS, "user tidak ditemukan"));
         }
         if(user == null){
-            Log.d(LOG_TAG, "Email atau password salah");
+            Toast.makeText(getApplicationContext(), "Email atau password salah", Toast.LENGTH_SHORT).show();
         } 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();
@@ -110,4 +122,9 @@ public class LoginActivity extends AppCompatActivity {
         }
         return null;
     }
+
+    public void toRegister(View view) {
+        Intent i = new Intent(getApplicationContext(), RegistrationActivity.class);
+        startActivity(i);
+    }
 }
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 96b5ae0399db087115758eccbd496ce4f5da8166..fd56f20182fb0326b35588b18e876fcc9a7a306b 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java
@@ -12,6 +12,7 @@ import android.widget.TextView;
 
 import com.example.leo.fitnessdiy.Utilities.NetworkUtils;
 import com.example.leo.fitnessdiy.model.Users;
+import com.example.leo.fitnessdiy.model.UsersSharedPreferences;
 import com.example.leo.fitnessdiy.routes.api;
 
 import org.json.JSONArray;
@@ -24,29 +25,26 @@ import java.util.ArrayList;
 
 public class PlankActivity extends AppCompatActivity {
     private String LOG_TAG = "TES PLANK ACTIVITY";
-    Users user = getUser(1);
-
+    String sharedPrefFile = "com.example.leo.fitnessdiy";
+    private SharedPreferences mPreferences;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_plank);
 
         SharedPreferences mPreferences;
-        String sharedPrefFile = "com.example.leo.fitnessdiy";
+
         final String BACKGROUND_KEY = "background";
-        mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
 
+        mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
         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")){
+    public int setCountTime(String level){
+        if(level.equals("begineer")){
             return 60000;
-        } else if(user.getLevel().equals("intermediate")){
+        } else if(level.equals("intermediate")){
             return 120000;
         } else {
             return 180000;
@@ -64,7 +62,9 @@ public class PlankActivity extends AppCompatActivity {
 
     public void countDownPlank(View view) {
         final TextView countText = findViewById(R.id.count_timer);
-        new CountDownTimer(setCountTime(user), 1000){
+        mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
+        String level = mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "begineer");
+        new CountDownTimer(setCountTime(level), 1000){
             @Override
             public void onTick(long l) {
                 String waktu = milisecondToMinutes(l);
@@ -79,22 +79,6 @@ public class PlankActivity extends AppCompatActivity {
     }
 
 
-
-    public Users getUser(int user_id){
-        Users user = new Users();
-        try {
-            URL url = new URL("http://ekiwae21.000webhostapp.com/fitness-server/users.php?user="+user_id);
-            String fetchResults = NetworkUtils.getResponseFromHttpUrl(url);
-            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) {
         String url = (String)view.getTag();
 
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java
index c2bdd3de4656e72b9a2e949c536db9ff3b72caef..dccec83fc0fd4daad31f837fefddc4a5750bece0 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java
@@ -8,6 +8,8 @@ import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import android.widget.TextView;
 
+import com.example.leo.fitnessdiy.model.UsersSharedPreferences;
+
 /**
  * Created by Heil on 2/19/2018.
  */
@@ -24,10 +26,24 @@ public class PushupActivity extends AppCompatActivity{
         final String BACKGROUND_KEY = "background";
         mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
 
+        String level = mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "begineer");
+        setPushUpFrequency(level);
+
         int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme);
         getWindow().getDecorView().setBackground(getResources().getDrawable(background));
     }
 
+    public void setPushUpFrequency(String level){
+        TextView pushUpTask = (TextView)findViewById(R.id.pushUpTask);
+        if(level.equals("begineer")){
+            pushUpTask.setText("Do Push Up 30 times");
+        }else if(level.equals("intermediate")){
+            pushUpTask.setText("Do Push Up 60 times");
+        }else if(level.equals("advanced")){
+            pushUpTask.setText("Do Push Up 90 times");
+        }
+    }
+
     public void openVideo(View view) {
         String url = (String)view.getTag();
 
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..d2d6b23ddeb00321d7185f394d6f4c37fced8803
--- /dev/null
+++ b/app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java
@@ -0,0 +1,58 @@
+package com.example.leo.fitnessdiy;
+
+import android.content.Intent;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.widget.Toast;
+
+public class SensorActivity extends AppCompatActivity {
+
+    private SensorManager sensorManager;
+    private Sensor proximitySensor;
+    private SensorEventListener proximitySensorListener;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
+        proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
+
+        if (proximitySensor == null) {
+            Toast.makeText(this, "Proximity sensor is not available !", Toast.LENGTH_LONG).show();
+            finish();
+        }
+
+        proximitySensorListener = new SensorEventListener() {
+            @Override
+            public void onSensorChanged(SensorEvent sensorEvent) {
+                if (sensorEvent.values[0] < proximitySensor.getMaximumRange()) {
+                    Intent i = new Intent(getApplicationContext(), ChatActivity.class);
+                    startActivity(i);
+                }
+            }
+
+            @Override
+            public void onAccuracyChanged(Sensor sensor, int i) {
+            }
+        };
+
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        sensorManager.registerListener(proximitySensorListener, proximitySensor,
+                2 * 1000 * 1000);
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        sensorManager.unregisterListener(proximitySensorListener);
+    }
+}
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java
index 0e49742d968efb1ba59afe8583d723af8b0c596a..b7e04551cd53201ed166155392df73fee08f53e6 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java
@@ -8,6 +8,8 @@ import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import android.widget.TextView;
 
+import com.example.leo.fitnessdiy.model.UsersSharedPreferences;
+
 /**
  * Created by Heil on 2/19/2018.
  */
@@ -24,10 +26,24 @@ public class SitupActivity extends AppCompatActivity{
         final String BACKGROUND_KEY = "background";
         mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE);
 
+        String level = mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "begineer");
+        setSitUpFrequency(level);
+
         int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme);
         getWindow().getDecorView().setBackground(getResources().getDrawable(background));
     }
 
+    public void setSitUpFrequency(String level){
+        TextView pushUpTask = (TextView)findViewById(R.id.pushUpTask);
+        if(level.equals("begineer")){
+            pushUpTask.setText("Do Push Up 30 times");
+        }else if(level.equals("intermediate")){
+            pushUpTask.setText("Do Push Up 60 times");
+        }else if(level.equals("advanced")){
+            pushUpTask.setText("Do Push Up 90 times");
+        }
+    }
+
     public void openVideo(View view) {
         String url = (String)view.getTag();
 
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 5a0ab64af6d344325a7f13e70e495c97b6c26d66..0371f94739ca391be62e8c95aafe9acd962a003f 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
@@ -71,15 +71,16 @@ public class Users {
     public static Users initializeData(String data) {
         Users user = new Users();
         try {
-            JSONArray parser = new JSONArray(data);
-            JSONObject json = parser.getJSONObject(0);
+//            JSONArray parser = new JSONArray(data);
+            JSONObject json = new JSONObject(data);
+//                    parser.getJSONObject(0);
 
-            int id = json.getInt("id");
+            int id = Integer.parseInt(json.getString("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");
+            int age = Integer.parseInt(json.getString("age"));
             String address = json.getString("address");
             String level = json.getString("level");
             user = new Users(id, username, password, email, phone_number, age, address, level);
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/model/UsersSharedPreferences.java b/app/src/main/java/com/example/leo/fitnessdiy/model/UsersSharedPreferences.java
new file mode 100644
index 0000000000000000000000000000000000000000..d82d4f4eaf4496d77d75e093ec22c4b509f7a6d2
--- /dev/null
+++ b/app/src/main/java/com/example/leo/fitnessdiy/model/UsersSharedPreferences.java
@@ -0,0 +1,40 @@
+package com.example.leo.fitnessdiy.model;
+
+import android.content.SharedPreferences;
+
+public class UsersSharedPreferences {
+    public static final String ID_USERS = "id_users";
+    public static final String USERNAME_USERS = "username_users";
+    public static final String PASSWORD_USERS = "password_users";
+    public static final String EMAIL_USERS = "email_users";
+    public static final String PHONE_NUMBER_USERS = "phone_number_users";
+    public static final String AGE_USERS = "age_users";
+    public static final String ADDRESS_USERS = "address_users";
+    public static final String LEVEL_USERS = "level_users";
+
+    public static void setUserSharedPreferences(SharedPreferences mPreferences, Users user){
+        SharedPreferences.Editor preferencesEditor = mPreferences.edit();
+        preferencesEditor.putInt(ID_USERS, user.getId());
+        preferencesEditor.putString(USERNAME_USERS, user.getUsername());
+        preferencesEditor.putString(PASSWORD_USERS, user.getPassword());
+        preferencesEditor.putString(EMAIL_USERS, user.getEmail());
+        preferencesEditor.putString(PHONE_NUMBER_USERS, user.getPhone_number());
+        preferencesEditor.putInt(AGE_USERS, user.getAge());
+        preferencesEditor.putString(ADDRESS_USERS, user.getAddress());
+        preferencesEditor.putString(LEVEL_USERS, user.getLevel());
+        preferencesEditor.apply();
+    }
+
+    public static void setDefaultSharedPreferences(SharedPreferences mPreferences){
+        SharedPreferences.Editor preferencesEditor = mPreferences.edit();
+        preferencesEditor.putInt(ID_USERS, 0);
+        preferencesEditor.putString(USERNAME_USERS, "");
+        preferencesEditor.putString(PASSWORD_USERS, "");
+        preferencesEditor.putString(EMAIL_USERS, "");
+        preferencesEditor.putString(PHONE_NUMBER_USERS, "");
+        preferencesEditor.putInt(AGE_USERS, 0);
+        preferencesEditor.putString(ADDRESS_USERS, "");
+        preferencesEditor.putString(LEVEL_USERS, "");
+        preferencesEditor.apply();
+    }
+}
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java b/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java
index c2cc686be728c486e56683a0b1c881811e2489f3..f1d5dbfad197a4cad4a60ff9d34871f69d9fb2da 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java
@@ -28,4 +28,6 @@ public class api {
     public static final String PUSHUP_HISTORY_URL = BASE_URL + "pushup_history.php?user=";
 
     public static final String SITUP_HISTORY_URL = BASE_URL + "situp_history.php?user=";
+
+    public static final String EDIT_LEVEL_URL = BASE_URL + "edit_level.php?";
 }
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 5cb058486c3cb4ad0c2ff5829add4e2fceada9ad..3790c4741099f4ff7ec1dad8646436043b88f5d1 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -32,4 +32,12 @@
         android:text="@string/login"
         android:layout_margin="8dp"
         android:onClick="doLogin"/>
+
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:text="REGISTER"
+        android:layout_margin="8dp"
+        android:onClick="toRegister"/>
 </LinearLayout>
diff --git a/app/src/main/res/layout/activity_sensor.xml b/app/src/main/res/layout/activity_sensor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f4ff271e9d1b2f10e1628e1f6abbb8c2ee73e25f
--- /dev/null
+++ b/app/src/main/res/layout/activity_sensor.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout 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.example.leo.fitnessdiy.SensorActivity">
+
+</android.support.constraint.ConstraintLayout>
diff --git a/gradle.properties b/gradle.properties
index 43350e51b766e93ecedf2a45b8fcf9f0e411dee3..4c6d70e7cf07d01fa1732dbb07cf63e9f6af50a5 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -12,3 +12,8 @@
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
+#Thu Feb 22 15:51:55 ICT 2018
+systemProp.http.proxyPassword=07007831
+systemProp.http.proxyHost=cache.itb.ac.id
+systemProp.http.proxyUser=rizki_halasan
+systemProp.http.proxyPort=8080