Skip to content

Instantly share code, notes, and snippets.

@ssaurel
Created May 18, 2017 11:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ssaurel/37f60bcf8c6abf462d971458846a144f to your computer and use it in GitHub Desktop.
Save ssaurel/37f60bcf8c6abf462d971458846a144f to your computer and use it in GitHub Desktop.
Main Activity for the Thermometer tutorial on the SSaurel's Channel
package com.ssaurel.mythermometer;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager sensorManager;
private Thermometer thermometer;
private float temperature;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
thermometer = (Thermometer) findViewById(R.id.thermometer);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
loadAmbientTemperature();
}
@Override
protected void onPause() {
super.onPause();
unregisterAll();
}
private void simulateAmbientTemperature() {
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
temperature = Utils.randInt(-10, 35);
runOnUiThread(new Runnable() {
@Override
public void run() {
thermometer.setCurrentTemp(temperature);
getSupportActionBar().setTitle(getString(R.string.app_name) + " : " + temperature);
}
});
}
}, 0, 3500);
}
private void loadAmbientTemperature() {
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
if (sensor != null) {
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);
} else {
Toast.makeText(this, "No Ambient Temperature Sensor !", Toast.LENGTH_LONG).show();
}
}
private void unregisterAll() {
sensorManager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.values.length > 0) {
temperature = sensorEvent.values[0];
thermometer.setCurrentTemp(temperature);
getSupportActionBar().setTitle(getString(R.string.app_name) + " : " + temperature);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment