From 3a9352b825642b06a466a4d4e3f65db47ff6850b Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Thu, 16 Dec 2021 22:25:07 +0100 Subject: [PATCH 1/6] Wear: watchface home2 add simplyfied charging ui --- .../androidaps/watchfaces/BaseWatchFace.java | 4 +- .../androidaps/watchfaces/Home2.java | 90 ++++++++++++++++--- .../main/res/layout/rect_activity_home_2.xml | 22 +++-- .../main/res/layout/round_activity_home_2.xml | 34 +++---- wear/src/main/res/values/dimens.xml | 8 ++ wear/src/main/res/values/strings.xml | 2 + .../xml/watch_face_configuration_home2.xml | 15 +++- 7 files changed, 132 insertions(+), 43 deletions(-) create mode 100644 wear/src/main/res/values/dimens.xml diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java index 19118e068c..efb3caa631 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java @@ -72,7 +72,8 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc public TextView mTime, mHour, mMinute, mSgv, mDirection, mTimestamp, mUploaderBattery, mRigBattery, mDelta, mAvgDelta, mStatus, mBasalRate, mIOB1, mIOB2, mCOB1, mCOB2, mBgi, mLoop, mDay, mDayName, mMonth, isAAPSv2, mHighLight, mLowLight; public ImageView mGlucoseDial, mDeltaGauge, mHourHand, mMinuteHand; public RelativeLayout mRelativeLayout; - public LinearLayout mLinearLayout, mLinearLayout2, mDate, mChartTap, mMainMenuTap; + public LinearLayout mLinearLayout, mLinearLayout2, mLinearLayout3, mDate, mChartTap, + mMainMenuTap; public int ageLevel = 1; public int loopLevel = 1; public int highColor = Color.YELLOW; @@ -167,6 +168,7 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc mHighLight = stub.findViewById(R.id.highLight); mLowLight = stub.findViewById(R.id.lowLight); mRelativeLayout = stub.findViewById(R.id.main_layout); + mLinearLayout3 = stub.findViewById(R.id.primary_layout); mLinearLayout = stub.findViewById(R.id.secondary_layout); mLinearLayout2 = stub.findViewById(R.id.tertiary_layout); mGlucoseDial = stub.findViewById(R.id.glucose_dial); diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java index f83c7f2b5b..458fa048cd 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java @@ -1,11 +1,18 @@ package info.nightscout.androidaps.watchfaces; import android.content.Intent; +import android.content.IntentFilter; import android.graphics.Color; + import androidx.annotation.ColorInt; import androidx.core.content.ContextCompat; + +import android.os.BatteryManager; import android.support.wearable.watchface.WatchFaceStyle; +import android.util.TypedValue; import android.view.LayoutInflater; +import android.view.View; +import android.widget.LinearLayout; import com.ustwo.clockwise.common.WatchMode; @@ -28,23 +35,23 @@ public class Home2 extends BaseWatchFace { @Override protected void onTapCommand(int tapType, int x, int y, long eventTime) { - int extra = mSgv!=null?(mSgv.getRight() - mSgv.getLeft())/2:0; + int extra = mSgv != null ? (mSgv.getRight() - mSgv.getLeft()) / 2 : 0; - if (tapType == TAP_TYPE_TAP&& - x >=chart.getLeft() && - x <= chart.getRight()&& + if (tapType == TAP_TYPE_TAP && + x >= chart.getLeft() && + x <= chart.getRight() && y >= chart.getTop() && - y <= chart.getBottom()){ - if (eventTime - chartTapTime < 800){ + y <= chart.getBottom()) { + if (eventTime - chartTapTime < 800) { changeChartTimeframe(); } chartTapTime = eventTime; - } else if (tapType == TAP_TYPE_TAP&& - x + extra >=mSgv.getLeft() && - x - extra <= mSgv.getRight()&& + } else if (tapType == TAP_TYPE_TAP && + x + extra >= mSgv.getLeft() && + x - extra <= mSgv.getRight() && y >= mSgv.getTop() && - y <= mSgv.getBottom()){ - if (eventTime - sgvTapTime < 800){ + y <= mSgv.getBottom()) { + if (eventTime - sgvTapTime < 800) { Intent intent = new Intent(this, MainMenuActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); @@ -55,12 +62,12 @@ public class Home2 extends BaseWatchFace { private void changeChartTimeframe() { int timeframe = Integer.parseInt(sharedPrefs.getString("chart_timeframe", "3")); - timeframe = (timeframe%5) + 1; + timeframe = (timeframe % 5) + 1; sharedPrefs.edit().putString("chart_timeframe", "" + timeframe).apply(); } @Override - protected WatchFaceStyle getWatchFaceStyle(){ + protected WatchFaceStyle getWatchFaceStyle() { return new WatchFaceStyle.Builder(this).setAcceptsTapEvents(true).build(); } @@ -176,7 +183,7 @@ public class Home2 extends BaseWatchFace { if (getCurrentWatchMode() == WatchMode.INTERACTIVE) { - @ColorInt final int dividerTxtColor = dividerMatchesBg ? Color.BLACK : + @ColorInt final int dividerTxtColor = dividerMatchesBg ? Color.BLACK : ContextCompat.getColor(getApplicationContext(), R.color.dark_midColor); @ColorInt final int dividerBgColor = ContextCompat.getColor(getApplicationContext(), dividerMatchesBg ? R.color.light_background : R.color.light_stripe_background); @@ -257,4 +264,59 @@ public class Home2 extends BaseWatchFace { } } } + + + @Override + public void setDataFields() { + super.setDataFields(); + if (sharedPrefs.getBoolean("simplify_ui_charging", false) && isCharging()) { + LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + 0, + 0.5f + ); + mLinearLayout3.setLayoutParams(param); + mLinearLayout3.setWeightSum(0.7f); + mLinearLayout.setVisibility(View.GONE); + mLoop.setVisibility(View.INVISIBLE); + chart.setVisibility(View.GONE); + mIOB1.setVisibility(View.GONE); + mIOB2.setVisibility(View.GONE); + mCOB1.setVisibility(View.GONE); + mCOB2.setVisibility(View.GONE); + mTimestamp.setVisibility(View.GONE); + mTime.setTextSize(35); + mDirection.setTextSize(35); + mSgv.setTextSize(50); + } else { + TypedValue outValue = new TypedValue(); + getResources().getValue(R.dimen.home2_primary_layout_height, outValue, true); + float layoutHeight = outValue.getFloat(); + LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + 0, + layoutHeight + ); + mLinearLayout3.setLayoutParams(param); + mLinearLayout.setVisibility(View.VISIBLE); + mLoop.setVisibility(View.VISIBLE); + chart.setVisibility(View.VISIBLE); + mIOB1.setVisibility(View.VISIBLE); + mIOB2.setVisibility(View.VISIBLE); + mCOB1.setVisibility(View.VISIBLE); + mCOB2.setVisibility(View.VISIBLE); + mTimestamp.setVisibility(View.VISIBLE); + mDirection.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.home2_direction_text_size)); + mSgv.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.home2_sgv_text_size)); + mTime.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.home2_time_text_size)); + } + } + + private boolean isCharging() { + IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); + Intent batteryStatus = this.registerReceiver(null, iFilter); + int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); + return status == BatteryManager.BATTERY_STATUS_CHARGING || + status == BatteryManager.BATTERY_STATUS_FULL; + } } diff --git a/wear/src/main/res/layout/rect_activity_home_2.xml b/wear/src/main/res/layout/rect_activity_home_2.xml index 3708761c1f..d3e7c1fdb9 100644 --- a/wear/src/main/res/layout/rect_activity_home_2.xml +++ b/wear/src/main/res/layout/rect_activity_home_2.xml @@ -1,9 +1,12 @@ + tools:context=".watchfaces.Home2" + tools:deviceIds="wear_square"> @@ -42,11 +46,11 @@ android:layout_marginBottom="-2dp" android:gravity="bottom|right" android:paddingLeft="5dp" - android:paddingRight="5dp" android:paddingTop="-2dp" + android:paddingRight="5dp" android:text="---" android:textColor="#FFFFFF" - android:textSize="38sp" /> + android:textSize="@dimen/home2_sgv_text_size" /> + android:textSize="@dimen/home2_time_text_size" /> + tools:context=".watchfaces.Home2" + tools:deviceIds="wear_round"> - + android:layout_weight="0.05" + android:orientation="vertical" /> @@ -49,11 +52,11 @@ android:layout_marginBottom="-2dp" android:gravity="bottom|right" android:paddingLeft="5dp" - android:paddingRight="5dp" android:paddingTop="-2dp" + android:paddingRight="5dp" android:text="---" android:textColor="#FFFFFF" - android:textSize="38sp" /> + android:textSize="@dimen/home2_sgv_text_size" /> + android:textSize="@dimen/home2_time_text_size" /> - + android:layout_weight="0.05" + android:orientation="vertical" /> - \ No newline at end of file + diff --git a/wear/src/main/res/values/dimens.xml b/wear/src/main/res/values/dimens.xml new file mode 100644 index 0000000000..e612a04d25 --- /dev/null +++ b/wear/src/main/res/values/dimens.xml @@ -0,0 +1,8 @@ + + + + 0.27 + 38sp + 22sp + 30sp + diff --git a/wear/src/main/res/values/strings.xml b/wear/src/main/res/values/strings.xml index 9c4bca91da..cf78cc7339 100644 --- a/wear/src/main/res/values/strings.xml +++ b/wear/src/main/res/values/strings.xml @@ -136,6 +136,8 @@ white black multicolor + Simplify Charging UI + Only show time and BG when charging Vibrate hourly diff --git a/wear/src/main/res/xml/watch_face_configuration_home2.xml b/wear/src/main/res/xml/watch_face_configuration_home2.xml index 76379ba9dd..efc27df610 100644 --- a/wear/src/main/res/xml/watch_face_configuration_home2.xml +++ b/wear/src/main/res/xml/watch_face_configuration_home2.xml @@ -8,7 +8,7 @@ android:summary="Dark theme" android:title="@string/pref_dark" app:wear_iconOff="@drawable/settings_off" - app:wear_iconOn="@drawable/settings_on"/> + app:wear_iconOn="@drawable/settings_on" /> + app:wear_iconOn="@drawable/settings_on" /> + + + From 30d500fa7572ea33541011a80dadb4800eff6449 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Thu, 16 Dec 2021 22:27:37 +0100 Subject: [PATCH 2/6] Wear: fix direction arrow showing as emoticon --- .../nightscout/androidaps/complications/SgvComplication.java | 2 +- .../info/nightscout/androidaps/watchfaces/BaseWatchFace.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wear/src/main/java/info/nightscout/androidaps/complications/SgvComplication.java b/wear/src/main/java/info/nightscout/androidaps/complications/SgvComplication.java index 11d7d8efbb..37c38c76d7 100644 --- a/wear/src/main/java/info/nightscout/androidaps/complications/SgvComplication.java +++ b/wear/src/main/java/info/nightscout/androidaps/complications/SgvComplication.java @@ -34,7 +34,7 @@ public class SgvComplication extends BaseComplicationProviderService { switch (dataType) { case ComplicationData.TYPE_SHORT_TEXT: final ComplicationData.Builder builder = new ComplicationData.Builder(ComplicationData.TYPE_SHORT_TEXT) - .setShortText(ComplicationText.plainText(raw.sSgv + raw.sDirection)) + .setShortText(ComplicationText.plainText(raw.sSgv + raw.sDirection + "\uFE0E")) .setShortTitle(ComplicationText.plainText(displayFormat.shortTrend(raw))) .setTapAction(complicationPendingIntent); diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java index efb3caa631..0bc8eefa6c 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java @@ -287,7 +287,7 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc if (mDirection != null) { if (sharedPrefs.getBoolean("show_direction", true)) { - mDirection.setText(rawData.sDirection); + mDirection.setText(rawData.sDirection+"\uFE0E"); mDirection.setVisibility(View.VISIBLE); } else { mDirection.setVisibility(View.GONE); From 51a88cff6cf5fc474a35203d4e4023f9fd4a1f0a Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Tue, 21 Dec 2021 21:38:23 +0100 Subject: [PATCH 3/6] Wear: add battery receiver home2 --- wear/src/main/AndroidManifest.xml | 4 ++++ .../androidaps/watchfaces/Home2.java | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml index b16b04f6d1..04b178307d 100644 --- a/wear/src/main/AndroidManifest.xml +++ b/wear/src/main/AndroidManifest.xml @@ -100,6 +100,9 @@ + + + @@ -544,6 +547,7 @@ + diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java index 458fa048cd..180b1dd935 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java @@ -1,5 +1,7 @@ package info.nightscout.androidaps.watchfaces; +import android.content.BroadcastReceiver; +import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; @@ -29,9 +31,28 @@ public class Home2 extends BaseWatchFace { super.onCreate(); LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); layoutView = inflater.inflate(R.layout.activity_home_2, null); + + IntentFilter intentBatteryFilter = new IntentFilter(); + intentBatteryFilter.addAction(BatteryManager.ACTION_CHARGING); + intentBatteryFilter.addAction(BatteryManager.ACTION_DISCHARGING); + registerReceiver(batteryReceiver, intentBatteryFilter); performViewSetup(); } + private BroadcastReceiver batteryReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + setDataFields(); + invalidate(); + } + }; + + @Override + public void onDestroy() { + unregisterReceiver(batteryReceiver); + super.onDestroy(); + } + @Override protected void onTapCommand(int tapType, int x, int y, long eventTime) { From 0d6a8aedf71ce6581e7b475753dd09bae6f809e8 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Wed, 29 Dec 2021 20:06:43 +0100 Subject: [PATCH 4/6] Wear: move simple ui to layout --- .../androidaps/watchfaces/BaseWatchFace.java | 83 +++++++++++++++++-- .../androidaps/watchfaces/Home2.java | 73 +--------------- .../main/res/layout/rect_activity_home_2.xml | 15 ++-- wear/src/main/res/layout/simple_ui.xml | 81 ++++++++++++++++++ wear/src/main/res/values/dimens.xml | 8 -- 5 files changed, 167 insertions(+), 93 deletions(-) create mode 100644 wear/src/main/res/layout/simple_ui.xml delete mode 100644 wear/src/main/res/values/dimens.xml diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java index 0bc8eefa6c..57a01519aa 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/BaseWatchFace.java @@ -10,6 +10,7 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; +import android.os.BatteryManager; import android.os.PowerManager; import android.os.Vibrator; import android.preference.PreferenceManager; @@ -25,6 +26,7 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.core.content.ContextCompat; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.google.android.gms.wearable.DataMap; @@ -40,7 +42,6 @@ import javax.inject.Inject; import dagger.android.AndroidInjection; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.complications.BaseComplicationProviderService; import info.nightscout.androidaps.data.ListenerService; import info.nightscout.androidaps.data.RawDisplayData; import info.nightscout.androidaps.interaction.utils.Persistence; @@ -59,7 +60,6 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc @Inject Persistence persistence; public final static IntentFilter INTENT_FILTER; - public static final long[] vibratePattern = {0, 400, 300, 400, 300, 400}; static { INTENT_FILTER = new IntentFilter(); @@ -70,10 +70,11 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc public final Point displaySize = new Point(); public TextView mTime, mHour, mMinute, mSgv, mDirection, mTimestamp, mUploaderBattery, mRigBattery, mDelta, mAvgDelta, mStatus, mBasalRate, mIOB1, mIOB2, mCOB1, mCOB2, mBgi, mLoop, mDay, mDayName, mMonth, isAAPSv2, mHighLight, mLowLight; + public TextView mSimpleSvg, mSimpleDirection, mSimpleTime; public ImageView mGlucoseDial, mDeltaGauge, mHourHand, mMinuteHand; + public View mSimpleUi; public RelativeLayout mRelativeLayout; - public LinearLayout mLinearLayout, mLinearLayout2, mLinearLayout3, mDate, mChartTap, - mMainMenuTap; + public LinearLayout mLinearLayout, mLinearLayout2, mDate, mChartTap, mMainMenuTap; public int ageLevel = 1; public int loopLevel = 1; public int highColor = Color.YELLOW; @@ -101,6 +102,8 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc protected SharedPreferences sharedPrefs; private LocalBroadcastManager localBroadcastManager; private MessageReceiver messageReceiver; + private BroadcastReceiver batteryReceiver; + protected boolean isCharging = false; @Override public void onCreate() { @@ -122,6 +125,26 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc sharedPrefs.registerOnSharedPreferenceChangeListener(this); persistence.turnOff(); + + setupBatteryReceiver(); + } + + private void setupBatteryReceiver() { + if (sharedPrefs.getBoolean("simplify_ui_charging", false)) { + IntentFilter intentBatteryFilter = new IntentFilter(); + intentBatteryFilter.addAction(BatteryManager.ACTION_CHARGING); + intentBatteryFilter.addAction(BatteryManager.ACTION_DISCHARGING); + isCharging = checkIsCharging(); + batteryReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + isCharging = checkIsCharging(); + setDataFields(); + invalidate(); + } + }; + registerReceiver(batteryReceiver, intentBatteryFilter); + } } @Override @@ -168,7 +191,6 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc mHighLight = stub.findViewById(R.id.highLight); mLowLight = stub.findViewById(R.id.lowLight); mRelativeLayout = stub.findViewById(R.id.main_layout); - mLinearLayout3 = stub.findViewById(R.id.primary_layout); mLinearLayout = stub.findViewById(R.id.secondary_layout); mLinearLayout2 = stub.findViewById(R.id.tertiary_layout); mGlucoseDial = stub.findViewById(R.id.glucose_dial); @@ -178,8 +200,11 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc mChartTap = stub.findViewById(R.id.chart_zoom_tap); mMainMenuTap = stub.findViewById(R.id.main_menu_tap); chart = stub.findViewById(R.id.chart); + mSimpleUi = stub.findViewById(R.id.simple_ui); + mSimpleSvg = stub.findViewById(R.id.simple_sgv); + mSimpleDirection = stub.findViewById(R.id.simple_direction); + mSimpleTime = stub.findViewById(R.id.simple_watch_time); layoutSet = true; - setDataFields(); setColor(); } @@ -219,6 +244,9 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc if (sharedPrefs != null) { sharedPrefs.unregisterOnSharedPreferenceChangeListener(this); } + if (batteryReceiver != null) { + unregisterReceiver(batteryReceiver); + } super.onDestroy(); } @@ -258,8 +286,16 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc } } + private boolean checkIsCharging() { + IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); + Intent batteryStatus = this.registerReceiver(null, iFilter); + int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); + return status == BatteryManager.BATTERY_STATUS_CHARGING || + status == BatteryManager.BATTERY_STATUS_FULL; + } + private void checkVibrateHourly(WatchFaceTime oldTime, WatchFaceTime newTime) { - Boolean hourlyVibratePref = sharedPrefs.getBoolean("vibrate_Hourly", false); + boolean hourlyVibratePref = sharedPrefs.getBoolean("vibrate_Hourly", false); if (hourlyVibratePref && layoutSet && newTime.hasHourChanged(oldTime)) { Log.i("hourlyVibratePref", "true --> " + newTime.toString()); Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); @@ -450,6 +486,37 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc mLoop.setVisibility(View.GONE); } } + setDataFieldsSimpleUi(); + } + + void setDataFieldsSimpleUi() { + if (sharedPrefs.getBoolean("simplify_ui_charging", false) && isCharging) { + mSimpleUi.setVisibility(View.VISIBLE); + + mSimpleSvg.setText(rawData.sSgv); + if (ageLevel() <= 0) { + mSimpleSvg.setPaintFlags(mSimpleSvg.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + } else { + mSimpleSvg.setPaintFlags(mSimpleSvg.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG); + } + if (rawData.sgvLevel == 1) { + mSimpleSvg.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.dark_highColor)); + mSimpleDirection.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.dark_highColor)); + } else if (rawData.sgvLevel == 0) { + mSimpleSvg.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.dark_midColor)); + mSimpleDirection.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.dark_midColor)); + } else if (rawData.sgvLevel == -1) { + mSimpleSvg.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.dark_lowColor)); + mSimpleDirection.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.dark_lowColor)); + } + + mSimpleDirection.setText(rawData.sDirection+"\uFE0E"); + + final java.text.DateFormat timeFormat = DateFormat.getTimeFormat(BaseWatchFace.this); + mSimpleTime.setText(timeFormat.format(System.currentTimeMillis())); + } else { + mSimpleUi.setVisibility(View.GONE); + } } public void setDateAndTime() { @@ -528,7 +595,7 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferenc @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - + setupBatteryReceiver(); if ("delta_granularity".equals(key)) { ListenerService.requestData(this); } diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java index 180b1dd935..a9470f884d 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java @@ -11,6 +11,7 @@ import androidx.core.content.ContextCompat; import android.os.BatteryManager; import android.support.wearable.watchface.WatchFaceStyle; +import android.util.Log; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; @@ -32,27 +33,9 @@ public class Home2 extends BaseWatchFace { LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); layoutView = inflater.inflate(R.layout.activity_home_2, null); - IntentFilter intentBatteryFilter = new IntentFilter(); - intentBatteryFilter.addAction(BatteryManager.ACTION_CHARGING); - intentBatteryFilter.addAction(BatteryManager.ACTION_DISCHARGING); - registerReceiver(batteryReceiver, intentBatteryFilter); performViewSetup(); } - private BroadcastReceiver batteryReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - setDataFields(); - invalidate(); - } - }; - - @Override - public void onDestroy() { - unregisterReceiver(batteryReceiver); - super.onDestroy(); - } - @Override protected void onTapCommand(int tapType, int x, int y, long eventTime) { @@ -286,58 +269,4 @@ public class Home2 extends BaseWatchFace { } } - - @Override - public void setDataFields() { - super.setDataFields(); - if (sharedPrefs.getBoolean("simplify_ui_charging", false) && isCharging()) { - LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - 0, - 0.5f - ); - mLinearLayout3.setLayoutParams(param); - mLinearLayout3.setWeightSum(0.7f); - mLinearLayout.setVisibility(View.GONE); - mLoop.setVisibility(View.INVISIBLE); - chart.setVisibility(View.GONE); - mIOB1.setVisibility(View.GONE); - mIOB2.setVisibility(View.GONE); - mCOB1.setVisibility(View.GONE); - mCOB2.setVisibility(View.GONE); - mTimestamp.setVisibility(View.GONE); - mTime.setTextSize(35); - mDirection.setTextSize(35); - mSgv.setTextSize(50); - } else { - TypedValue outValue = new TypedValue(); - getResources().getValue(R.dimen.home2_primary_layout_height, outValue, true); - float layoutHeight = outValue.getFloat(); - LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - 0, - layoutHeight - ); - mLinearLayout3.setLayoutParams(param); - mLinearLayout.setVisibility(View.VISIBLE); - mLoop.setVisibility(View.VISIBLE); - chart.setVisibility(View.VISIBLE); - mIOB1.setVisibility(View.VISIBLE); - mIOB2.setVisibility(View.VISIBLE); - mCOB1.setVisibility(View.VISIBLE); - mCOB2.setVisibility(View.VISIBLE); - mTimestamp.setVisibility(View.VISIBLE); - mDirection.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.home2_direction_text_size)); - mSgv.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.home2_sgv_text_size)); - mTime.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.home2_time_text_size)); - } - } - - private boolean isCharging() { - IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); - Intent batteryStatus = this.registerReceiver(null, iFilter); - int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); - return status == BatteryManager.BATTERY_STATUS_CHARGING || - status == BatteryManager.BATTERY_STATUS_FULL; - } } diff --git a/wear/src/main/res/layout/rect_activity_home_2.xml b/wear/src/main/res/layout/rect_activity_home_2.xml index d3e7c1fdb9..f15bfa33bf 100644 --- a/wear/src/main/res/layout/rect_activity_home_2.xml +++ b/wear/src/main/res/layout/rect_activity_home_2.xml @@ -20,7 +20,7 @@ android:layout_width="fill_parent" android:layout_height="0px" android:layout_gravity="center_horizontal" - android:layout_weight="@dimen/home2_primary_layout_height" + android:layout_weight="0.27" android:gravity="center_horizontal" android:orientation="horizontal" android:textAlignment="center"> @@ -50,7 +50,7 @@ android:paddingRight="5dp" android:text="---" android:textColor="#FFFFFF" - android:textSize="@dimen/home2_sgv_text_size" /> + android:textSize="38sp" /> + android:textSize="30sp" /> - \ No newline at end of file + + + diff --git a/wear/src/main/res/layout/simple_ui.xml b/wear/src/main/res/layout/simple_ui.xml new file mode 100644 index 0000000000..0780f3e83b --- /dev/null +++ b/wear/src/main/res/layout/simple_ui.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wear/src/main/res/values/dimens.xml b/wear/src/main/res/values/dimens.xml deleted file mode 100644 index e612a04d25..0000000000 --- a/wear/src/main/res/values/dimens.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - 0.27 - 38sp - 22sp - 30sp - From 00dc779ed1bb9a537f5bf63da9910f07684f5494 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Wed, 29 Dec 2021 20:21:57 +0100 Subject: [PATCH 5/6] Wear: add simple ui for other base watch faces --- wear/src/main/AndroidManifest.xml | 15 +++++++++ .../res/layout/rect_activity_digitalstyle.xml | 26 ++++++++++++++-- .../main/res/layout/rect_activity_home.xml | 5 +++ .../res/layout/rect_activity_home_large.xml | 5 +++ wear/src/main/res/layout/rect_cockpit.xml | 5 +++ wear/src/main/res/layout/rect_steampunk.xml | 7 ++++- .../layout/round_activity_digitalstyle.xml | 31 ++++++++++++++++--- .../main/res/layout/round_activity_home.xml | 5 +++ .../main/res/layout/round_activity_home_2.xml | 13 +++++--- .../res/layout/round_activity_home_large.xml | 5 +++ wear/src/main/res/layout/round_cockpit.xml | 5 +++ wear/src/main/res/layout/round_steampunk.xml | 7 ++++- .../xml/watch_face_configuration_cockpit.xml | 12 +++++-- .../watch_face_configuration_digitalstyle.xml | 9 ++++++ .../res/xml/watch_face_configuration_home.xml | 9 ++++++ .../watch_face_configuration_largehome.xml | 9 ++++++ .../watch_face_configuration_steampunk.xml | 9 ++++++ 17 files changed, 161 insertions(+), 16 deletions(-) diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml index 04b178307d..eb12cc4f02 100644 --- a/wear/src/main/AndroidManifest.xml +++ b/wear/src/main/AndroidManifest.xml @@ -79,6 +79,9 @@ + + + @@ -124,6 +127,9 @@ + + + @@ -145,6 +151,9 @@ + + + @@ -166,6 +175,9 @@ + + + + + + diff --git a/wear/src/main/res/layout/rect_activity_digitalstyle.xml b/wear/src/main/res/layout/rect_activity_digitalstyle.xml index 8d22bc8e3d..76028d1c39 100644 --- a/wear/src/main/res/layout/rect_activity_digitalstyle.xml +++ b/wear/src/main/res/layout/rect_activity_digitalstyle.xml @@ -317,19 +317,21 @@ android:textColor="@color/white" android:textFontWeight="400" android:textSize="18sp" /> + + android:visibility="gone" /> + + + + @@ -540,6 +558,10 @@ + diff --git a/wear/src/main/res/layout/rect_activity_home.xml b/wear/src/main/res/layout/rect_activity_home.xml index a069b5ed28..1adf62fa5c 100644 --- a/wear/src/main/res/layout/rect_activity_home.xml +++ b/wear/src/main/res/layout/rect_activity_home.xml @@ -154,4 +154,9 @@ + + diff --git a/wear/src/main/res/layout/rect_activity_home_large.xml b/wear/src/main/res/layout/rect_activity_home_large.xml index a6da174128..e3fd3012e0 100644 --- a/wear/src/main/res/layout/rect_activity_home_large.xml +++ b/wear/src/main/res/layout/rect_activity_home_large.xml @@ -136,4 +136,9 @@ + + diff --git a/wear/src/main/res/layout/rect_cockpit.xml b/wear/src/main/res/layout/rect_cockpit.xml index cf26712258..26b0e79d64 100644 --- a/wear/src/main/res/layout/rect_cockpit.xml +++ b/wear/src/main/res/layout/rect_cockpit.xml @@ -488,4 +488,9 @@ + + \ No newline at end of file diff --git a/wear/src/main/res/layout/rect_steampunk.xml b/wear/src/main/res/layout/rect_steampunk.xml index 03bad38d4d..91efff6d31 100644 --- a/wear/src/main/res/layout/rect_steampunk.xml +++ b/wear/src/main/res/layout/rect_steampunk.xml @@ -378,4 +378,9 @@ android:layout_height="wrap_content" android:visibility="gone"/> - \ No newline at end of file + + + diff --git a/wear/src/main/res/layout/round_activity_digitalstyle.xml b/wear/src/main/res/layout/round_activity_digitalstyle.xml index 02a638d6ab..8357c48fa1 100644 --- a/wear/src/main/res/layout/round_activity_digitalstyle.xml +++ b/wear/src/main/res/layout/round_activity_digitalstyle.xml @@ -121,6 +121,7 @@ + + android:visibility="gone" /> + @@ -529,6 +532,21 @@ android:layout_gravity="bottom" android:layout_weight="1" android:gravity="center_horizontal|top" /> + + @@ -541,7 +559,10 @@ - + + + diff --git a/wear/src/main/res/layout/round_activity_home_2.xml b/wear/src/main/res/layout/round_activity_home_2.xml index e2a4b31730..35c07352a2 100644 --- a/wear/src/main/res/layout/round_activity_home_2.xml +++ b/wear/src/main/res/layout/round_activity_home_2.xml @@ -26,7 +26,7 @@ android:layout_width="fill_parent" android:layout_height="0px" android:layout_gravity="center_horizontal" - android:layout_weight="@dimen/home2_primary_layout_height" + android:layout_weight="0.27" android:gravity="center_horizontal" android:orientation="horizontal" android:textAlignment="center"> @@ -56,7 +56,7 @@ android:paddingRight="5dp" android:text="---" android:textColor="#FFFFFF" - android:textSize="@dimen/home2_sgv_text_size" /> + android:textSize="38sp" /> + android:textSize="30sp" /> + + diff --git a/wear/src/main/res/layout/round_activity_home_large.xml b/wear/src/main/res/layout/round_activity_home_large.xml index 9569d5d1ab..054584b842 100644 --- a/wear/src/main/res/layout/round_activity_home_large.xml +++ b/wear/src/main/res/layout/round_activity_home_large.xml @@ -135,4 +135,9 @@ + + diff --git a/wear/src/main/res/layout/round_cockpit.xml b/wear/src/main/res/layout/round_cockpit.xml index afdecf8a43..856f2ee6a3 100644 --- a/wear/src/main/res/layout/round_cockpit.xml +++ b/wear/src/main/res/layout/round_cockpit.xml @@ -488,4 +488,9 @@ + + \ No newline at end of file diff --git a/wear/src/main/res/layout/round_steampunk.xml b/wear/src/main/res/layout/round_steampunk.xml index c82caa2d4b..2d66ada9cb 100644 --- a/wear/src/main/res/layout/round_steampunk.xml +++ b/wear/src/main/res/layout/round_steampunk.xml @@ -378,4 +378,9 @@ android:layout_height="wrap_content" android:visibility="gone"/> - \ No newline at end of file + + + diff --git a/wear/src/main/res/xml/watch_face_configuration_cockpit.xml b/wear/src/main/res/xml/watch_face_configuration_cockpit.xml index 2e45811780..2e8ef3c100 100644 --- a/wear/src/main/res/xml/watch_face_configuration_cockpit.xml +++ b/wear/src/main/res/xml/watch_face_configuration_cockpit.xml @@ -2,13 +2,19 @@ - - - + + + diff --git a/wear/src/main/res/xml/watch_face_configuration_digitalstyle.xml b/wear/src/main/res/xml/watch_face_configuration_digitalstyle.xml index 5a29f508fa..d03498d32b 100644 --- a/wear/src/main/res/xml/watch_face_configuration_digitalstyle.xml +++ b/wear/src/main/res/xml/watch_face_configuration_digitalstyle.xml @@ -50,4 +50,13 @@ android:defaultValue="false" app:wear_iconOff="@drawable/settings_off" app:wear_iconOn="@drawable/settings_on" /> + + + diff --git a/wear/src/main/res/xml/watch_face_configuration_home.xml b/wear/src/main/res/xml/watch_face_configuration_home.xml index 6aae7b88eb..fbe3015eab 100644 --- a/wear/src/main/res/xml/watch_face_configuration_home.xml +++ b/wear/src/main/res/xml/watch_face_configuration_home.xml @@ -24,4 +24,13 @@ android:defaultValue="false" app:wear_iconOff="@drawable/settings_off" app:wear_iconOn="@drawable/settings_on" /> + + + diff --git a/wear/src/main/res/xml/watch_face_configuration_largehome.xml b/wear/src/main/res/xml/watch_face_configuration_largehome.xml index 6aae7b88eb..fbe3015eab 100644 --- a/wear/src/main/res/xml/watch_face_configuration_largehome.xml +++ b/wear/src/main/res/xml/watch_face_configuration_largehome.xml @@ -24,4 +24,13 @@ android:defaultValue="false" app:wear_iconOff="@drawable/settings_off" app:wear_iconOn="@drawable/settings_on" /> + + + diff --git a/wear/src/main/res/xml/watch_face_configuration_steampunk.xml b/wear/src/main/res/xml/watch_face_configuration_steampunk.xml index fea4e8f192..0b7358c1f6 100644 --- a/wear/src/main/res/xml/watch_face_configuration_steampunk.xml +++ b/wear/src/main/res/xml/watch_face_configuration_steampunk.xml @@ -16,4 +16,13 @@ android:defaultValue="false" app:wear_iconOff="@drawable/settings_off" app:wear_iconOn="@drawable/settings_on" /> + + + From 870ae58d570410ee0beabfb921b973c710ac1ee8 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Wed, 29 Dec 2021 20:30:20 +0100 Subject: [PATCH 6/6] Wear: clean import --- .../nightscout/androidaps/watchfaces/Home2.java | 8 -------- .../res/layout/rect_activity_digitalstyle.xml | 15 --------------- .../res/layout/round_activity_digitalstyle.xml | 14 -------------- 3 files changed, 37 deletions(-) diff --git a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java index a9470f884d..74a36f914b 100644 --- a/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java +++ b/wear/src/main/java/info/nightscout/androidaps/watchfaces/Home2.java @@ -1,21 +1,13 @@ package info.nightscout.androidaps.watchfaces; -import android.content.BroadcastReceiver; -import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.graphics.Color; import androidx.annotation.ColorInt; import androidx.core.content.ContextCompat; -import android.os.BatteryManager; import android.support.wearable.watchface.WatchFaceStyle; -import android.util.Log; -import android.util.TypedValue; import android.view.LayoutInflater; -import android.view.View; -import android.widget.LinearLayout; import com.ustwo.clockwise.common.WatchMode; diff --git a/wear/src/main/res/layout/rect_activity_digitalstyle.xml b/wear/src/main/res/layout/rect_activity_digitalstyle.xml index 76028d1c39..57a03fc718 100644 --- a/wear/src/main/res/layout/rect_activity_digitalstyle.xml +++ b/wear/src/main/res/layout/rect_activity_digitalstyle.xml @@ -532,21 +532,6 @@ android:layout_weight="1" android:gravity="center_horizontal|top" /> - - diff --git a/wear/src/main/res/layout/round_activity_digitalstyle.xml b/wear/src/main/res/layout/round_activity_digitalstyle.xml index 8357c48fa1..8eedf2ceff 100644 --- a/wear/src/main/res/layout/round_activity_digitalstyle.xml +++ b/wear/src/main/res/layout/round_activity_digitalstyle.xml @@ -533,20 +533,6 @@ android:layout_weight="1" android:gravity="center_horizontal|top" /> -