From 9d74cee093f527da4ea1c6d085f42e21b4628857 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 31 Mar 2015 23:34:19 +0200 Subject: [PATCH] add icons for pebble and watchfaces. Store app type in GBDeviceApp. Store device type in GBDevice. --- LICENSE.artwork | 10 ++-- .../gadgetbridge/AppManagerActivity.java | 3 +- .../BluetoothCommunicationService.java | 9 +++- .../gadgetbridge/ControlCenter.java | 10 +++- .../freeyourgadget/gadgetbridge/GBDevice.java | 43 ++++++++++++------ .../gadgetbridge/GBDeviceApp.java | 15 +++++- .../gadgetbridge/adapter/GBDeviceAdapter.java | 14 ++++++ .../adapter/GBDeviceAppAdapter.java | 10 ++++ .../gadgetbridge/protocol/PebbleProtocol.java | 16 +++++-- .../res/drawable-hdpi/ic_device_pebble.png | Bin 0 -> 1999 bytes .../main/res/drawable-hdpi/ic_watchface.png | Bin 0 -> 2553 bytes .../res/drawable-mdpi/ic_device_pebble.png | Bin 0 -> 1325 bytes .../main/res/drawable-mdpi/ic_watchface.png | Bin 0 -> 1616 bytes .../res/drawable-xhdpi/ic_device_pebble.png | Bin 0 -> 2663 bytes .../main/res/drawable-xhdpi/ic_watchface.png | Bin 0 -> 3581 bytes .../res/drawable-xxhdpi/ic_device_pebble.png | Bin 0 -> 4203 bytes .../main/res/drawable-xxhdpi/ic_watchface.png | Bin 0 -> 6044 bytes app/src/main/res/layout/device_item.xml | 3 +- 18 files changed, 105 insertions(+), 28 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_device_pebble.png create mode 100644 app/src/main/res/drawable-hdpi/ic_watchface.png create mode 100644 app/src/main/res/drawable-mdpi/ic_device_pebble.png create mode 100644 app/src/main/res/drawable-mdpi/ic_watchface.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_device_pebble.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_watchface.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_device_pebble.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_watchface.png diff --git a/LICENSE.artwork b/LICENSE.artwork index d4b56ec03..e5029951e 100644 --- a/LICENSE.artwork +++ b/LICENSE.artwork @@ -1,4 +1,8 @@ -The following artwork is licensed under the -Creative Commons Attribution-Share Alike 4.0 International license: +The following artwork is licensed under the following licenses -"GET IT ON F-Droid" button by Laura Kalbag. Source: https://ind.ie/about/blog/f-droid-button/ +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0): + ic_device_pebble.png (gadgetbridge.png from https://gitlab.com/xphnx/twelf_cm12_theme/) + ic_watchface.png (clock.png from https://gitlab.com/xphnx/twelf_cm12_theme/) + +Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0): + "GET IT ON F-Droid" button by Laura Kalbag. Source: https://ind.ie/about/blog/f-droid-button/ diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AppManagerActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AppManagerActivity.java index a58cf08f3..4796ab137 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AppManagerActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AppManagerActivity.java @@ -38,8 +38,9 @@ public class AppManagerActivity extends Activity { String appCreator = intent.getStringExtra("app_creator" + i.toString()); int id = intent.getIntExtra("app_id" + i.toString(), -1); int index = intent.getIntExtra("app_index" + i.toString(), -1); + GBDeviceApp.Type appType = GBDeviceApp.Type.values()[intent.getIntExtra("app_type" + i.toString(), 0)]; - appList.add(new GBDeviceApp(id, index, appName, appCreator, "")); + appList.add(new GBDeviceApp(id, index, appName, appCreator, "", appType)); } mGBDeviceAppAdapter.notifyDataSetChanged(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java index 184d569c5..1514dfb54 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/BluetoothCommunicationService.java @@ -166,6 +166,7 @@ public class BluetoothCommunicationService extends Service { appInfoIntent.putExtra("app_creator" + i.toString(), appInfoCmd.apps[i].getCreator()); appInfoIntent.putExtra("app_id" + i.toString(), appInfoCmd.apps[i].getId()); appInfoIntent.putExtra("app_index" + i.toString(), appInfoCmd.apps[i].getIndex()); + appInfoIntent.putExtra("app_type" + i.toString(), appInfoCmd.apps[i].getType().ordinal()); } LocalBroadcastManager.getInstance(this).sendBroadcast(appInfoIntent); break; @@ -251,7 +252,13 @@ public class BluetoothCommunicationService extends Service { } BluetoothDevice btDevice = mBtAdapter.getRemoteDevice(btDeviceAddress); if (btDevice != null) { - gbdevice = new GBDevice(btDeviceAddress, btDevice.getName()); + GBDevice.Type deviceType = GBDevice.Type.UNKNOWN; + if (btDevice.getName().indexOf("Pebble") == 0) { + deviceType = GBDevice.Type.PEBBLE; + } else if (btDevice.getName().equals("MI")) { + deviceType = GBDevice.Type.MIBAND; + } + gbdevice = new GBDevice(btDeviceAddress, btDevice.getName(), deviceType); gbdevice.setState(GBDevice.State.CONNECTING); sendDeviceUpdateIntent(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/ControlCenter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/ControlCenter.java index aa840bf87..d47be4c21 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/ControlCenter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/ControlCenter.java @@ -171,10 +171,16 @@ public class ControlCenter extends Activity { } else { Set pairedDevices = btAdapter.getBondedDevices(); for (BluetoothDevice device : pairedDevices) { + GBDevice.Type deviceType = GBDevice.Type.UNKNOWN; if (device.getName().indexOf("Pebble") == 0) { - // Matching device found - deviceList.add(new GBDevice(device.getAddress(), device.getName())); + deviceType = GBDevice.Type.PEBBLE; + } else if (device.getName().equals("MI")) { + deviceType = GBDevice.Type.MIBAND; } + else { + continue; + } + deviceList.add(new GBDevice(device.getAddress(), device.getName(), deviceType)); } if (!deviceList.isEmpty()) { hintTextView.setText("tap a device to connect"); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java index d33666612..fb7d22e8a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDevice.java @@ -3,26 +3,14 @@ package nodomain.freeyourgadget.gadgetbridge; public class GBDevice { private final String name; private final String address; + private final Type type; private String firmwareVersion = null; private State state = State.NOT_CONNECTED; - public void setState(State state) { - this.state = state; - } - - public enum State { - NOT_CONNECTED, - CONNECTING, - CONNECTED - } - - public GBDevice(String address, String name) { + public GBDevice(String address, String name, Type type) { this.address = address; this.name = name; - } - - public void setFirmwareVersion(String firmwareVersion) { - this.firmwareVersion = firmwareVersion; + this.type = type; } public String getName() { @@ -37,10 +25,18 @@ public class GBDevice { return firmwareVersion; } + public void setFirmwareVersion(String firmwareVersion) { + this.firmwareVersion = firmwareVersion; + } + public State getState() { return state; } + public void setState(State state) { + this.state = state; + } + String getStateString() { switch (state) { case NOT_CONNECTED: @@ -60,4 +56,21 @@ public class GBDevice { return getStateString(); } } + + public Type getType() { + return type; + } + + public enum State { + NOT_CONNECTED, + CONNECTING, + CONNECTED + } + + public enum Type { + UNKNOWN, + PEBBLE, + MIBAND + } + } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDeviceApp.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDeviceApp.java index fbf443a22..8d43642ba 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDeviceApp.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBDeviceApp.java @@ -6,13 +6,15 @@ public class GBDeviceApp { private final String version; private final int id; private final int index; + private final Type type; - public GBDeviceApp(int id, int index, String name, String creator, String version) { + public GBDeviceApp(int id, int index, String name, String creator, String version, Type type) { this.id = id; this.index = index; this.name = name; this.creator = creator; this.version = version; + this.type = type; } public String getName() { @@ -34,4 +36,15 @@ public class GBDeviceApp { public int getIndex() { return index; } + + public Type getType() { + return type; + } + + public enum Type { + UNKNOWN, + WATCHFACE, + APP_GENERIC, + APP_ACTIVITYTRACKER, + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java index 4c55695a6..ef559b7de 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java @@ -5,6 +5,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.ImageView; import android.widget.TextView; import java.util.List; @@ -36,9 +37,22 @@ public class GBDeviceAdapter extends ArrayAdapter { } TextView deviceStatusLabel = (TextView) view.findViewById(R.id.device_status); TextView deviceNameLabel = (TextView) view.findViewById(R.id.device_name); + ImageView deviceImageView = (ImageView) view.findViewById(R.id.device_image); + deviceStatusLabel.setText(device.getInfoString()); deviceNameLabel.setText(device.getName()); + switch (device.getType()) { + case PEBBLE: + deviceImageView.setImageResource(R.drawable.ic_device_pebble); + break; + case MIBAND: + deviceImageView.setImageResource(R.drawable.ic_launcher); //FIXME: add icon + break; + default: + deviceImageView.setImageResource(R.drawable.ic_launcher); + } + return view; } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java index dd7667079..c2b923059 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java @@ -5,6 +5,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.ImageView; import android.widget.TextView; import java.util.List; @@ -36,8 +37,17 @@ public class GBDeviceAppAdapter extends ArrayAdapter { } TextView deviceStatusLabel = (TextView) view.findViewById(R.id.device_status); TextView deviceNameLabel = (TextView) view.findViewById(R.id.device_name); + ImageView deviceImageView = (ImageView) view.findViewById(R.id.device_image); + deviceStatusLabel.setText(deviceApp.getVersion() + " by " + deviceApp.getCreator()); deviceNameLabel.setText(deviceApp.getName()); + switch (deviceApp.getType()) { + case WATCHFACE: + deviceImageView.setImageResource(R.drawable.ic_watchface); + break; + default: + deviceImageView.setImageResource(R.drawable.ic_device_pebble); + } return view; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java index 7962b9382..2cec28d30 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java @@ -325,17 +325,27 @@ public class PebbleProtocol { int banks = buf.getInt(); int banksUsed = buf.getInt(); byte[] appName = new byte[32]; - byte[] creatorName = new byte[32]; + byte[] appCreator = new byte[32]; appInfoCmd.apps = new GBDeviceApp[banksUsed]; for (int i = 0; i < banksUsed; i++) { int id = buf.getInt(); int index = buf.getInt(); buf.get(appName, 0, 32); - buf.get(creatorName, 0, 32); + buf.get(appCreator, 0, 32); int flags = buf.getInt(); + + GBDeviceApp.Type appType; + switch (flags) { + case 1: + appType = GBDeviceApp.Type.WATCHFACE; + break; + default: + appType = GBDeviceApp.Type.APP_GENERIC; + break; + } Short appVersion = buf.getShort(); - appInfoCmd.apps[i] = new GBDeviceApp(id, index, new String(appName).trim(), new String(creatorName).trim(), appVersion.toString()); + appInfoCmd.apps[i] = new GBDeviceApp(id, index, new String(appName).trim(), new String(appCreator).trim(), appVersion.toString(), appType); } cmd = appInfoCmd; break; diff --git a/app/src/main/res/drawable-hdpi/ic_device_pebble.png b/app/src/main/res/drawable-hdpi/ic_device_pebble.png new file mode 100644 index 0000000000000000000000000000000000000000..b089f42a0824a6fa31e862dc9af17ea2f6373e85 GIT binary patch literal 1999 zcmaiw`#aP9AIINnw290ip~M`fWaOr~(ZR4b5+fyFX>Idq#txdzL@bPk4#P$6uu{o! zl#*j8Mt7v+NIBH4a_2kbj;I{Im-`?1Uf1*S%kz4?Uf1h-rIUOKn(9XC002!dqGtdA zfVc`=4FGU>@-6`Y0E>3_3WUSq@H6l*F#rG&MGTGxz~bjBD)-X+$p8RD9{wor5a%RM zK;c3_AQ0Fx*pbmRN)%+v;nEAHb{hcz^jD=o29F5=Iwgz_@u*w|9WrImIP9E);0XYL z#;Sqi^TIh?5E~WFjupOF_5uJ5R(lUFMByu{n@a~bq-9`Num#qoGt29>`$gYo6CJvb~D#HBGPOw6Hh3KzmL8Ih1_IFA?QVrNJD zcX$P zY&<6%@9Uj<)BN4~qVY=kt4>9-x4s@e%i7vV9$*ryGFPJFUIud)@4e=oYi%KEN4U=# zBf=GdWf7zURRMDueK0>uNng7x2pTE!YU!O1 zlhL0IE%840Hr{BwoNuW8U-RlYP%SXSshQ!_lyO=XW)(|vaM9mw43V#`7U41Ol4+-i zK6bFre@!hc4E`$`rsOcIiXAqb*V-w8Ogq~Bs|nfu&ua@Q;@J|z%78nmqYy%t4Ffhk z1AJ`Oa33(O!pEq4mj-OlolNR7;O)uA>diid@ZDSE1dp?SieFdc>{_q3{^YR%>JfJs zS|a`tIx*D zQS@0FudXB*C5DS`xS`kDo7nw+Wl%k#6J=g(9P+dga{8o{8s1JjhXTi^ejTBcVzhF- zk;VtA<>3i9Bjtjbc4SC}%SenkHFZluv-a^}FF&DAK#WcRKJ%e$-$n|Cs?SuY6Cuko{v%HbiEia|XMGg)vro+`UFAVJAq%o~{A{*ROHgtQ8qQr(JGy1scwI)8Wi zOzNZ80Xh4_(1Ez6X5HUs3rw8!XcL)ol4@O|Hd{iJBoQS^?U6{tBh0=@+_Mv|_vh;= z%iOx+*grzzpV#k5|8f9YoF8VumP9BL&XuF=thqXPE&~7In-*OKtT@l{J?xDM*QU=Q zhGND|r=W7rXzC7zQt0De7)pj(Q%6L77_#gGPllYZ3I5r|ZRM`= zqsoA~4I5bvmLBic72Yp?~l}v|c!-%5UFxENDVrQek%e#E5s(MN`S_ zyZ5Wj!mUs+QcUpRz&MB+;v@LJ`RCx@s^~9T6E+(~55BvfK}RCz#mEC)^K~a+j8F z0m?i${#)EK$NA%8diq+ftZue)iW;=+&iV22tKVC4?Vn9fXk~wJ!eh7Ggza_0 zMaBH_=A%7VJT#tHV0KKrIr?7GFy7z6z$~qEBQnxT9_lBlrrht$a9!h&au00B-2_tY zD=UlhGr~nJ1I1>R4T)e?^x@g!mv2ALEN{P~Ssm)$d-n`sM>jPu!~;2KV?&nnn@h9T zOAAj`E-g8?gtmI&}e`WZM#$jR>aDec}R;Y+s{3g`!$+EEcw`Gg38X5TDJ!$ zPo=5Ye7r9zgk01NXl|_d!kjo+a*IA6vE~T-HjMe;U|uz^doI1veK@(b#`BV^#-fQ3 W)}GpH4pjmGfEV7^v)cVc^8Wz*V2win literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_watchface.png b/app/src/main/res/drawable-hdpi/ic_watchface.png new file mode 100644 index 0000000000000000000000000000000000000000..002f1a4e3b6e91587be71b06a7fa4edb9af51d3d GIT binary patch literal 2553 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_watchface.png b/app/src/main/res/drawable-mdpi/ic_watchface.png new file mode 100644 index 0000000000000000000000000000000000000000..132fd6c321ec935e3ba45e7bb77d951d9bc0286b GIT binary patch literal 1616 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_watchface.png b/app/src/main/res/drawable-xhdpi/ic_watchface.png new file mode 100644 index 0000000000000000000000000000000000000000..802abf3c1ddeb5b644d3df23b64f51b8beee9120 GIT binary patch literal 3581 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_watchface.png b/app/src/main/res/drawable-xxhdpi/ic_watchface.png new file mode 100644 index 0000000000000000000000000000000000000000..46b1f2466bf84790e2ab8ec7b13e6fdb0a8b54a5 GIT binary patch literal 6044 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/device_item.xml b/app/src/main/res/layout/device_item.xml index c1de3063f..464f80f44 100644 --- a/app/src/main/res/layout/device_item.xml +++ b/app/src/main/res/layout/device_item.xml @@ -9,8 +9,7 @@ android:id="@+id/device_image" android:layout_width="48dp" android:layout_height="48dp" - android:layout_alignParentLeft="true" - android:src="@drawable/ic_launcher"/> + android:layout_alignParentLeft="true" />