diff --git a/.idea/modules.xml b/.idea/modules.xml
index abc31fc679bb491e423c03e7bd677ff03ed00d98..223896e347e46d8dfc55407a6dddd77831a8af77 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,8 +2,9 @@
 <project version="4">
   <component name="ProjectModuleManager">
     <modules>
-      <module fileurl="file://$PROJECT_DIR$/android.iml" filepath="$PROJECT_DIR$/android.iml" />
+      <module fileurl="file://F:\informatika\pbd\fitness\android.iml" filepath="F:\informatika\pbd\fitness\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/Adapter/RecyclerViewAdapter.java b/app/src/main/java/com/example/leo/fitnessdiy/Adapter/RecyclerViewAdapter.java
index d6eaf16c7a2703c7bd0af5c7bcbd550093e55a21..12f9cbf92af641f656d7c6cb025b4a7826d3a664 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/Adapter/RecyclerViewAdapter.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/Adapter/RecyclerViewAdapter.java
@@ -8,7 +8,6 @@ import android.view.ViewGroup;
 import android.widget.TextView;
 
 import com.example.leo.fitnessdiy.R;
-import com.example.leo.fitnessdiy.model.History;
 
 import java.util.List;
 
@@ -16,54 +15,54 @@ import java.util.List;
  * Created by Leo on 16/02/2018.
  */
 
-public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.HistoryViewHolder> {
-    private List<History> histories;
+//public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.HistoryViewHolder> {
+//    private List<History> histories;
+//
+//    public RecyclerViewAdapter(List<History> h) {
+//        this.histories = h;
+//    }
+//    @Override
+//    public HistoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+//        View view = LayoutInflater.from(parent.getContext())
+//                .inflate(R.layout.card, parent, false);
+//
+//        HistoryViewHolder hvh = new HistoryViewHolder(view);
+//
+//        return hvh;
+//    }
+//
+//    @Override
+//    public void onBindViewHolder(HistoryViewHolder holder, int position) {
+//        holder.sportName.setText(histories.get(position).getSport_name());
+//        holder.sportDate.setText(histories.get(position).getSport_date());
+//        holder.sportStart.setText(histories.get(position).getSport_start());
+//        holder.sportEnd.setText(histories.get(position).getSport_end());
+//    }
+//
+//    @Override
+//    public int getItemCount() {
+//        return histories.size();
+//    }
+//
+//    @Override
+//    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
+//        super.onAttachedToRecyclerView(recyclerView);
+//    }
+//
+//    public static class HistoryViewHolder extends RecyclerView.ViewHolder {
+//        TextView sportName;
+//        TextView sportDate;
+//        TextView sportStart;
+//        TextView sportEnd;
+//
+//        public HistoryViewHolder(View itemView) {
+//            super(itemView);
+//
+//            sportName = (TextView) itemView.findViewById(R.id.sport_name);
+//            sportDate = (TextView) itemView.findViewById(R.id.sport_date);
+//            sportStart = (TextView) itemView.findViewById(R.id.sport_start);
+//            sportEnd = (TextView) itemView.findViewById(R.id.sport_end);
+//        }
+//    }
 
-    public RecyclerViewAdapter(List<History> h) {
-        this.histories = h;
-    }
-    @Override
-    public HistoryViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        View view = LayoutInflater.from(parent.getContext())
-                .inflate(R.layout.card, parent, false);
-
-        HistoryViewHolder hvh = new HistoryViewHolder(view);
-
-        return hvh;
-    }
-
-    @Override
-    public void onBindViewHolder(HistoryViewHolder holder, int position) {
-        holder.sportName.setText(histories.get(position).getSport_name());
-        holder.sportDate.setText(histories.get(position).getSport_date());
-        holder.sportStart.setText(histories.get(position).getSport_start());
-        holder.sportEnd.setText(histories.get(position).getSport_end());
-    }
-
-    @Override
-    public int getItemCount() {
-        return histories.size();
-    }
-
-    @Override
-    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
-        super.onAttachedToRecyclerView(recyclerView);
-    }
-
-    public static class HistoryViewHolder extends RecyclerView.ViewHolder {
-        TextView sportName;
-        TextView sportDate;
-        TextView sportStart;
-        TextView sportEnd;
-
-        public HistoryViewHolder(View itemView) {
-            super(itemView);
-
-            sportName = (TextView) itemView.findViewById(R.id.sport_name);
-            sportDate = (TextView) itemView.findViewById(R.id.sport_date);
-            sportStart = (TextView) itemView.findViewById(R.id.sport_start);
-            sportEnd = (TextView) itemView.findViewById(R.id.sport_end);
-        }
-    }
-
-}
+//}
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/HIstoryActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/HIstoryActivity.java
index 4c314cf31a331b5929b115ab6a96a98e6988783a..cfb5b6f7d83cf448cc602c0a2953eba59595d4d3 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/HIstoryActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/HIstoryActivity.java
@@ -10,10 +10,11 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.widget.TextView;
 
-import com.example.leo.fitnessdiy.Adapter.RecyclerViewAdapter;
 import com.example.leo.fitnessdiy.Utilities.NetworkUtils;
 import com.example.leo.fitnessdiy.model.History;
 import com.example.leo.fitnessdiy.model.Jogging;
+import com.example.leo.fitnessdiy.model.PushUp;
+import com.example.leo.fitnessdiy.model.SitUp;
 import com.example.leo.fitnessdiy.routes.api;
 
 
@@ -22,6 +23,7 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.io.IOException;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
@@ -30,49 +32,46 @@ import java.util.List;
 public class HIstoryActivity extends AppCompatActivity {
     public static  final String TAG = HIstoryActivity.class.getSimpleName();
     private RecyclerView mRecyclerView;
-    private List<History> histories;
+    private List<Jogging> joggingHistory;
+    private List<PushUp> pushupHistory;
+    private List<SitUp> situpHistory;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_history);
-        if (android.os.Build.VERSION.SDK_INT > 9) {
-            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
-            StrictMode.setThreadPolicy(policy);
-        }
-
-        String fetchResults = null;
-        try {
-
-//            fetchResults = "[{\"id\":\"1\",\"id_user\":\"1\",\"sport_name\":\"jogging\",\"sport_date\":\"2018-02-14\",\"sport_time_start\":\"09:00:00\",\"sport_time_end\":\"11:00:00\",\"created_at\":null,\"updated_at\":null},{\"id\":\"2\",\"id_user\":\"1\",\"sport_name\":\"jogging\",\"sport_date\":\"2018-02-15\",\"sport_time_start\":\"09:00:00\",\"sport_time_end\":\"11:00:00\",\"created_at\":null,\"updated_at\":null},{\"id\":\"3\",\"id_user\":\"1\",\"sport_name\":\"plank\",\"sport_date\":\"2018-02-16\",\"sport_time_start\":\"09:00:00\",\"sport_time_end\":\"09:45:00\",\"created_at\":null,\"updated_at\":null},{\"id\":\"4\",\"id_user\":\"1\",\"sport_name\":\"push-up\",\"sport_date\":\"2018-02-16\",\"sport_time_start\":\"10:00:00\",\"sport_time_end\":\"10:30:00\",\"created_at\":null,\"updated_at\":null}]";
-            fetchResults = NetworkUtils.getResponseFromHttpUrl(new URL(api.HISTORY_URL + "1"));
 
-            initializeData(fetchResults);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-
-        mRecyclerView = (RecyclerView) findViewById(R.id.rv_history);
-
-        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
-
-        mRecyclerView.setLayoutManager(layoutManager);
-        mRecyclerView.setHasFixedSize(true);
-        RecyclerViewAdapter rv = new RecyclerViewAdapter(histories);
-        mRecyclerView.setAdapter(rv);
+//        mRecyclerView = (RecyclerView) findViewById(R.id.rv_history);
+//
+//        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+//
+//        mRecyclerView.setLayoutManager(layoutManager);
+//        mRecyclerView.setHasFixedSize(true);
+//        RecyclerViewAdapter rv = new RecyclerViewAdapter(histories);
+//        mRecyclerView.setAdapter(rv);
     }
 
-    public void initializeData(String data) {
-        this.histories = new ArrayList<>();
+    public void getJoggingData() {
         try {
-            JSONArray parser = new JSONArray(data);
-            for (int i = 0; i < parser.length(); i++) {
-                JSONObject json = parser.getJSONObject(i);
-                histories.add(new History(json.getString("sport_name"),
-                        json.getString("sport_date"),
-                        json.getString("sport_time_start"),
-                        json.getString("sport_time_end")));
+            String response = NetworkUtils.getResponseFromHttpUrl(
+                    new URL(api.JOGGING_HISTORY_URL + "1")
+            );
+            JSONArray jsonArray = new JSONArray(response);
+            for (int i = 0; i < jsonArray.length(); i++) {
+                JSONObject jsonObject = jsonArray.getJSONObject(i);
+                joggingHistory.add(new Jogging(
+                        jsonObject.getString("jogging_date"),
+                        jsonObject.getString("jogging_time_start"),
+                        jsonObject.getString("jogging_time_end"),
+                        (float) jsonObject.getDouble("jogging_distance"),
+                        jsonObject.getString("starting_point"),
+                        jsonObject.getString("end_point")
+                ));
             }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
         } catch (JSONException e) {
             e.printStackTrace();
         }
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/JoggingActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/JoggingActivity.java
index 03507928c368003c89ed48d24be52627ffcb1ad1..5ade481ec5d14cce8d75864d6d587049733b6880 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/JoggingActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/JoggingActivity.java
@@ -59,6 +59,7 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import java.io.IOException;
+import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.text.SimpleDateFormat;
@@ -111,10 +112,7 @@ public class JoggingActivity extends FragmentActivity implements OnMapReadyCallb
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        if (android.os.Build.VERSION.SDK_INT > 9) {
-            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
-            StrictMode.setThreadPolicy(policy);
-        }
+
         // save instance state
         if (savedInstanceState != null) {
             mLastKnownLocation = savedInstanceState.getParcelable(KEY_LOCATION);
@@ -454,7 +452,7 @@ public class JoggingActivity extends FragmentActivity implements OnMapReadyCallb
     }
 
     public void stopJogging(View view) {
-        infoJoggingEnd.setText("\n" + getCurrentLocation());
+        infoJoggingEnd.setText(getCurrentLocation());
         mButton.setText("START");
         mButton.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -477,32 +475,31 @@ public class JoggingActivity extends FragmentActivity implements OnMapReadyCallb
         );
         // TODO : id_user sesuai id user yang login
         int id_user = 1;
+        String url = api.newJoggingHistory(
+                id_user,
+                jogging.getDate(),
+                jogging.getStart(),
+                jogging.getEnd(),
+                jogging.getDistance(),
+                jogging.getStartingPoint(),
+                jogging.getEndPoint()
+        );
+        Log.d(TAG, url);
         try {
-            String url = api.newJoggingHistory(
-                    id_user,
-                    jogging.getDate(),
-                    jogging.getStart(),
-                    jogging.getEnd(),
-                    jogging.getDistance(),
-                    jogging.getStartingPoint(),
-                    jogging.getEndPoint()
-            );
-            Log.d(TAG, url);
             String response = NetworkUtils.getResponseFromHttpUrl(
                     new URL(url)
             );
-            JSONObject jsonObject = new JSONObject(response);
-            if (jsonObject.getString("error") == null) {
-                Log.d(TAG, "Inserting new record successful");
-            } else {
-                Log.e(TAG, jsonObject.getString("error"));
-            }
+            Log.d(TAG, response);
+//            JSONObject jsonObject = new JSONObject(response);
+//            if (jsonObject.getString("error") == null) {
+//                Log.d(TAG, "Inserting new record successful");
+//            } else {
+//                Log.e(TAG, jsonObject.getString("error"));
+//            }
         } catch (MalformedURLException e) {
             e.printStackTrace();
         } catch (IOException e) {
             e.printStackTrace();
-        } catch (JSONException e) {
-            e.printStackTrace();
         }
     }
 
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 ee601a947d021a256ae62214f85108794e146e05..96b5ae0399db087115758eccbd496ce4f5da8166 100644
--- a/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java
+++ b/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java
@@ -11,7 +11,6 @@ import android.view.View;
 import android.widget.TextView;
 
 import com.example.leo.fitnessdiy.Utilities.NetworkUtils;
-import com.example.leo.fitnessdiy.model.History;
 import com.example.leo.fitnessdiy.model.Users;
 import com.example.leo.fitnessdiy.routes.api;
 
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/model/Plank.java b/app/src/main/java/com/example/leo/fitnessdiy/model/Plank.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e5ca6d49a648967e49745c8d453b692107c5a37
--- /dev/null
+++ b/app/src/main/java/com/example/leo/fitnessdiy/model/Plank.java
@@ -0,0 +1,51 @@
+package com.example.leo.fitnessdiy.model;
+
+/**
+ * Created by Leo on 22/02/2018.
+ */
+
+public class Plank {
+    private String date;
+    private String start;
+    private String end;
+    private int duration;
+
+    public Plank(String date, String start, String end, int duration) {
+        this.date = date;
+        this.start = start;
+        this.end = end;
+        this.duration = duration;
+    }
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    public String getStart() {
+        return start;
+    }
+
+    public void setStart(String start) {
+        this.start = start;
+    }
+
+    public String getEnd() {
+        return end;
+    }
+
+    public void setEnd(String end) {
+        this.end = end;
+    }
+
+    public int getDuration() {
+        return duration;
+    }
+
+    public void setDuration(int duration) {
+        this.duration = duration;
+    }
+}
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/model/PushUp.java b/app/src/main/java/com/example/leo/fitnessdiy/model/PushUp.java
new file mode 100644
index 0000000000000000000000000000000000000000..4475511cc74037588f1aba534ef7aec3fedf41ab
--- /dev/null
+++ b/app/src/main/java/com/example/leo/fitnessdiy/model/PushUp.java
@@ -0,0 +1,51 @@
+package com.example.leo.fitnessdiy.model;
+
+/**
+ * Created by Leo on 22/02/2018.
+ */
+
+public class PushUp {
+    private String date;
+    private String start;
+    private String end;
+    private String frequency;
+
+    public PushUp(String date, String start, String end, String frequency) {
+        this.date = date;
+        this.start = start;
+        this.end = end;
+        this.frequency = frequency;
+    }
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    public String getStart() {
+        return start;
+    }
+
+    public void setStart(String start) {
+        this.start = start;
+    }
+
+    public String getEnd() {
+        return end;
+    }
+
+    public void setEnd(String end) {
+        this.end = end;
+    }
+
+    public String getFrequency() {
+        return frequency;
+    }
+
+    public void setFrequency(String frequency) {
+        this.frequency = frequency;
+    }
+}
diff --git a/app/src/main/java/com/example/leo/fitnessdiy/model/SitUp.java b/app/src/main/java/com/example/leo/fitnessdiy/model/SitUp.java
new file mode 100644
index 0000000000000000000000000000000000000000..8974abb425794b40fb88936d5de013b994afa979
--- /dev/null
+++ b/app/src/main/java/com/example/leo/fitnessdiy/model/SitUp.java
@@ -0,0 +1,62 @@
+package com.example.leo.fitnessdiy.model;
+
+import com.example.leo.fitnessdiy.Utilities.NetworkUtils;
+import com.example.leo.fitnessdiy.routes.api;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * Created by Leo on 22/02/2018.
+ */
+
+public class SitUp {
+    private String date;
+    private String start;
+    private String end;
+    private String frequency;
+
+    public SitUp(String date, String start, String end, String frequency) {
+        this.date = date;
+        this.start = start;
+        this.end = end;
+        this.frequency = frequency;
+    }
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    public String getStart() {
+        return start;
+    }
+
+    public void setStart(String start) {
+        this.start = start;
+    }
+
+    public String getEnd() {
+        return end;
+    }
+
+    public void setEnd(String end) {
+        this.end = end;
+    }
+
+    public String getFrequency() {
+        return frequency;
+    }
+
+    public void setFrequency(String frequency) {
+        this.frequency = frequency;
+    }
+}
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 3a8cd6acd997e402f742b87564b7809d1b2d1b7e..8da80def697ef55d74a180e72dbaa2b6a0a6e828 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
@@ -20,4 +20,10 @@ public class api {
                 "&date="+date+"&start="+start+"&end="+end+"&distance="+distance+"&spoint="+
                 sPoint+"&epoint=" + ePoint;
     }
+
+    public static final String JOGGING_HISTORY_URL = BASE_URL + "jogging_history.php?user=";
+
+    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=";
 }
diff --git a/app/src/main/res/layout/activity_history.xml b/app/src/main/res/layout/activity_history.xml
index b982d3c6ef1f2bdae574d6de7f81da931d124b5d..609d7034a5828ab3f77867703ecab31ce9e849a9 100644
--- a/app/src/main/res/layout/activity_history.xml
+++ b/app/src/main/res/layout/activity_history.xml
@@ -6,8 +6,14 @@
     android:layout_height="match_parent"
     xmlns:card_view="http://schemas.android.com/tools"
     tools:context="com.example.leo.fitnessdiy.HIstoryActivity"
+    android:padding="16dp"
     android:orientation="vertical">
 
+    <android.support.v7.widget.CardView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+    </android.support.v7.widget.CardView>
     <android.support.v7.widget.RecyclerView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
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>