package com.aegiswallet.activities; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; import android.support.wearable.view.WatchViewStub; import android.util.Log; import android.view.View; import android.view.WindowInsets; import android.widget.TextView; import com.aegiswallet.R; import java.util.Calendar; public class WatchFaceActivity extends Activity { private final static IntentFilter intentFilter; private boolean isDimmed = false; private String TAG = "AegisWearWatchFace"; private Handler mHandler; TextView time; TextView timeAmPm; TextView btcValue; TextView walletBalance; SharedPreferences prefs; static { intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_TIME_TICK); intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); intentFilter.addAction(Intent.ACTION_TIME_CHANGED); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "inside the watch face activity"); WatchViewStub stub = new WatchViewStub(this); stub.setRectLayout(R.layout.rect_activity_watch_face); stub.setRoundLayout(R.layout.round_activity_watch_face); stub.requestApplyInsets(); stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() { @Override public void onLayoutInflated(final WatchViewStub stub) { Log.d(TAG, "Layout is inflated!"); time = (TextView) stub.findViewById(R.id.time); timeAmPm = (TextView) stub.findViewById(R.id.time_ampm); btcValue = (TextView) stub.findViewById(R.id.bitcoin_value); walletBalance = (TextView) stub.findViewById(R.id.wallet_balance); View rootView = stub.getRootView(); rootView.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { @Override public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) { stub.onApplyWindowInsets(insets); final boolean round = insets.isRound(); Log.d("WatchFaceActivity", "Is the screen round: " + round); return insets; } }); } }); setContentView(stub); prefs = PreferenceManager.getDefaultSharedPreferences(this); timeInfoReceiver.onReceive(this, registerReceiver(null, intentFilter)); registerReceiver(timeInfoReceiver, intentFilter); } public BroadcastReceiver timeInfoReceiver = new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent intent) { Log.v("WatchFace", "timeChanged();"); updateLayout(); } }; @Override protected void onPause() { super.onPause(); isDimmed = true; Log.d(TAG, "dimmed"); updateLayout(); } @Override protected void onResume() { super.onResume(); isDimmed = false; Log.d(TAG, "not dimmed"); updateLayout(); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(timeInfoReceiver); } public void updateLayout() { Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); String am_pm; if(calendar.get(Calendar.AM_PM) == 0) am_pm = "AM"; else am_pm = "PM"; String btcValueString = prefs.getString("BTCAMOUNT", ""); String hourText = hour + ""; if(hour == 0) hour = 12; if(hour < 10) hourText = "0" + hourText; String minuteText = minute + ""; if(minute < 10) minuteText = "0" + minuteText; if(time != null) { time.setText(hourText + ":" + minuteText); timeAmPm.setText(am_pm); btcValue.setText(btcValueString); walletBalance.setText(prefs.getString("BALANCE", "")); } else { Log.d("WatchFace", "time is null for some reason..."); } } }