package net.maxbraun.mirror; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import net.maxbraun.mirror.DataUpdater.UpdateListener; import net.maxbraun.mirror.Weather.WeatherData; import java.util.Locale; /** * A compact version of {@link HomeActivity}. */ public class CompactHomeActivity extends Activity { /** * The listener used to populate the UI with weather data. */ private final UpdateListener<WeatherData> weatherUpdateListener = new UpdateListener<WeatherData>() { @Override public void onUpdate(WeatherData data) { if (data != null) { // Populate the current temperature rounded to a whole number. String temperature = String.format(Locale.US, "%d°", Math.round(data.currentTemperature)); temperatureView.setText(temperature); // Populate the icon for the current weather. iconView.setImageResource(data.currentIcon); // Show all the views. temperatureView.setVisibility(View.VISIBLE); iconView.setVisibility(View.VISIBLE); } else { // Hide everything if there is no data. temperatureView.setVisibility(View.GONE); iconView.setVisibility(View.GONE); } } }; private TextView temperatureView; private ImageView iconView; private Weather weather; private Util util; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home_compact); temperatureView = (TextView) findViewById(R.id.temperature); iconView = (ImageView) findViewById(R.id.icon); weather = new Weather(this, weatherUpdateListener); util = new Util(this); } @Override protected void onStart() { super.onStart(); weather.start(); } @Override protected void onStop() { weather.stop(); super.onStop(); } @Override protected void onResume() { super.onResume(); util.hideNavigationBar(temperatureView); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return util.onKeyUp(keyCode, event); } }