From 450d8691fad0d08db63521aa6082c69e198567eb Mon Sep 17 00:00:00 2001 From: robby syaifullah <robbysyaifullah19@gmail.com> Date: Thu, 22 Feb 2018 15:13:19 +0700 Subject: [PATCH] Add proximity Sensor on Home Activity --- app/build.gradle | 1 + app/google-services.json | 106 ++---------------- app/src/main/AndroidManifest.xml | 6 +- .../example/leo/fitnessdiy/ChatActivity.java | 11 ++ .../example/leo/fitnessdiy/ChatMessage.java | 2 + .../example/leo/fitnessdiy/HomeActivity.java | 48 ++++++++ .../leo/fitnessdiy/SensorActivity.java | 58 ++++++++++ app/src/main/res/layout/activity_sensor.xml | 9 ++ 8 files changed, 143 insertions(+), 98 deletions(-) create mode 100644 app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java create mode 100644 app/src/main/res/layout/activity_sensor.xml diff --git a/app/build.gradle b/app/build.gradle index 9597d51..d335be3 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 b82dd44..a4f5db1 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 0e576b9..bfabb15 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 58ec25d..605cfd5 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 5225c8b..ea5d163 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 2c237ee..f5cd9b9 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/SensorActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java new file mode 100644 index 0000000..d2d6b23 --- /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/res/layout/activity_sensor.xml b/app/src/main/res/layout/activity_sensor.xml new file mode 100644 index 0000000..f4ff271 --- /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> -- GitLab