diff --git a/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java b/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java index eef29a1d95ea5ba991975b06e6ec1bc863a06117..21400eb03f7cc7092594e64ea82ea9fc11fb31f3 100644 --- a/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java +++ b/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java @@ -1,6 +1,7 @@ package com.chatman.activity; import android.content.Intent; +import android.hardware.Sensor; import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -21,6 +22,7 @@ import com.chatman.R; import com.chatman.adapter.ChatAdapter; import com.chatman.helper.FirebaseHelper; import com.chatman.helper.PreferencesHelper; +import com.chatman.helper.SensorHelper; import com.chatman.model.Chat; import com.chatman.model.ChatRoom; import com.google.firebase.database.ChildEventListener; @@ -45,6 +47,7 @@ public class ChatRoomActivity extends AppCompatActivity { private TextView toolbarName; private List<Chat> chatList; private String chatRoomId; + private SensorHelper mSensorHelper; @Override @@ -89,6 +92,8 @@ public class ChatRoomActivity extends AppCompatActivity { chatRv.setAdapter(adapter); chatRv.scrollToPosition(chatList.size() - 1); initializeListener(); + + mSensorHelper = new SensorHelper(this); } private void initializeListener() { @@ -179,4 +184,17 @@ public class ChatRoomActivity extends AppCompatActivity { } return super.onOptionsItemSelected(item); } + + @Override + public void onResume() { + super.onResume(); + mSensorHelper.listenSensor(Sensor.TYPE_PROXIMITY); + mSensorHelper.listenSensor(Sensor.TYPE_GYROSCOPE); + } + + @Override + public void onPause() { + super.onPause(); + mSensorHelper.unlistenSensor(); + } } diff --git a/android/app/src/main/java/com/chatman/activity/MainActivity.java b/android/app/src/main/java/com/chatman/activity/MainActivity.java index b8e03396ed555739e3bd0b6034655e8900a020ca..5ccc1652ef1d425bb14d7ee8063526e5c078f9ef 100644 --- a/android/app/src/main/java/com/chatman/activity/MainActivity.java +++ b/android/app/src/main/java/com/chatman/activity/MainActivity.java @@ -1,6 +1,10 @@ package com.chatman.activity; import android.content.Context; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -21,6 +25,7 @@ import com.chatman.R; import com.chatman.fragment.BotFragment; import com.chatman.fragment.HomeFragment; import com.chatman.fragment.ProfileFragment; +import com.chatman.helper.SensorHelper; public class MainActivity extends AppCompatActivity implements ProfileFragment.OnFragmentInteractionListener, @@ -29,6 +34,7 @@ public class MainActivity extends AppCompatActivity implements private Context context; private BottomNavigationView bottomNavbar; + private SensorHelper mSensorHelper; private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @@ -70,6 +76,9 @@ public class MainActivity extends AppCompatActivity implements } context = this; + //Set sensor + mSensorHelper = new SensorHelper(context); + // Bottom Navigation Bar bottomNavbar = findViewById(R.id.navigation); bottomNavbar.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); @@ -113,4 +122,17 @@ public class MainActivity extends AppCompatActivity implements public void onFragmentInteraction(Uri uri){ //you can leave it empty } + + @Override + public void onResume() { + super.onResume(); + mSensorHelper.listenSensor(Sensor.TYPE_PROXIMITY); + mSensorHelper.listenSensor(Sensor.TYPE_GYROSCOPE); + } + + @Override + public void onPause() { + super.onPause(); + mSensorHelper.unlistenSensor(); + } } diff --git a/android/app/src/main/java/com/chatman/helper/SensorHelper.java b/android/app/src/main/java/com/chatman/helper/SensorHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..6f77e578f68fa87cee7b1305960946ecea3929d3 --- /dev/null +++ b/android/app/src/main/java/com/chatman/helper/SensorHelper.java @@ -0,0 +1,55 @@ +package com.chatman.helper; + +import android.content.Context; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.widget.Toast; + +public class SensorHelper { + public static final String TAG = SensorHelper.class.getSimpleName(); + + private Context mContext; + private SensorManager sensorManager; + private SensorEventListener sensorListener; + + public SensorHelper(Context context) { + this.mContext = context; + sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); + sensorListener = initListener(mContext); + } + + public void listenSensor(int sensorType) { + if (sensorManager.getDefaultSensor(sensorType) != null) { + sensorManager.registerListener(sensorListener, sensorManager.getDefaultSensor(sensorType), SensorManager.SENSOR_DELAY_NORMAL); + } + } + + public void unlistenSensor() { + sensorManager.unregisterListener(sensorListener); + } + + public static SensorEventListener initListener(final Context context) { + return new SensorEventListener() { + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy){ + //you can leave it empty + } + + @Override + public void onSensorChanged(SensorEvent event) { + if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) { + //proximity + float distance = event.values[0]; + if (distance <= 5) { + Toast.makeText(context, "You are too close to device", Toast.LENGTH_SHORT).show(); + } + } + else if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) { + //gyro + } + } + }; + } +}