Created
May 18, 2017 11:18
-
-
Save ssaurel/37f60bcf8c6abf462d971458846a144f to your computer and use it in GitHub Desktop.
Main Activity for the Thermometer tutorial on the SSaurel's Channel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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