mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2025-06-05 21:49:48 +02:00
Liveview: Initial support for Liveview devices
Working so far: stable connection, setting time and sending notifications.
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.liveview;
|
||||
//Changed by Renze: Fixed brightness constants
|
||||
|
||||
/**
|
||||
* Message constants reverse-engineered by Andrew de Quincey (<a
|
||||
* href="http://adq.livejournal.com">http://adq.livejournal.com</a>).
|
||||
*
|
||||
* @author Robert <xperimental@solidproject.de>
|
||||
*/
|
||||
public final class LiveviewConstants {
|
||||
|
||||
public static final byte MSG_GETCAPS = 1;
|
||||
public static final byte MSG_GETCAPS_RESP = 2;
|
||||
|
||||
public static final byte MSG_DISPLAYTEXT = 3;
|
||||
public static final byte MSG_DISPLAYTEXT_ACK = 4;
|
||||
|
||||
public static final byte MSG_DISPLAYPANEL = 5;
|
||||
public static final byte MSG_DISPLAYPANEL_ACK = 6;
|
||||
|
||||
public static final byte MSG_DEVICESTATUS = 7;
|
||||
public static final byte MSG_DEVICESTATUS_ACK = 8;
|
||||
|
||||
public static final byte MSG_DISPLAYBITMAP = 19;
|
||||
public static final byte MSG_DISPLAYBITMAP_ACK = 20;
|
||||
|
||||
public static final byte MSG_CLEARDISPLAY = 21;
|
||||
public static final byte MSG_CLEARDISPLAY_ACK = 22;
|
||||
|
||||
public static final byte MSG_SETMENUSIZE = 23;
|
||||
public static final byte MSG_SETMENUSIZE_ACK = 24;
|
||||
|
||||
public static final byte MSG_GETMENUITEM = 25;
|
||||
public static final byte MSG_GETMENUITEM_RESP = 26;
|
||||
|
||||
public static final byte MSG_GETALERT = 27;
|
||||
public static final byte MSG_GETALERT_RESP = 28;
|
||||
|
||||
public static final byte MSG_NAVIGATION = 29;
|
||||
public static final byte MSG_NAVIGATION_RESP = 30;
|
||||
|
||||
public static final byte MSG_SETSTATUSBAR = 33;
|
||||
public static final byte MSG_SETSTATUSBAR_ACK = 34;
|
||||
|
||||
public static final byte MSG_GETMENUITEMS = 35;
|
||||
|
||||
public static final byte MSG_SETMENUSETTINGS = 36;
|
||||
public static final byte MSG_SETMENUSETTINGS_ACK = 37;
|
||||
|
||||
public static final byte MSG_GETTIME = 38;
|
||||
public static final byte MSG_GETTIME_RESP = 39;
|
||||
|
||||
public static final byte MSG_SETLED = 40;
|
||||
public static final byte MSG_SETLED_ACK = 41;
|
||||
|
||||
public static final byte MSG_SETVIBRATE = 42;
|
||||
public static final byte MSG_SETVIBRATE_ACK = 43;
|
||||
|
||||
public static final byte MSG_ACK = 44;
|
||||
|
||||
public static final byte MSG_SETSCREENMODE = 64;
|
||||
public static final byte MSG_SETSCREENMODE_ACK = 65;
|
||||
|
||||
public static final byte MSG_GETSCREENMODE = 66;
|
||||
public static final byte MSG_GETSCREENMODE_RESP = 67;
|
||||
|
||||
public static final int DEVICESTATUS_OFF = 0;
|
||||
public static final int DEVICESTATUS_ON = 1;
|
||||
public static final int DEVICESTATUS_MENU = 2;
|
||||
|
||||
public static final byte RESULT_OK = 0;
|
||||
public static final byte RESULT_ERROR = 1;
|
||||
public static final byte RESULT_OOM = 2;
|
||||
public static final byte RESULT_EXIT = 3;
|
||||
public static final byte RESULT_CANCEL = 4;
|
||||
|
||||
public static final int NAVACTION_PRESS = 0;
|
||||
public static final int NAVACTION_LONGPRESS = 1;
|
||||
public static final int NAVACTION_DOUBLEPRESS = 2;
|
||||
|
||||
public static final int NAVTYPE_UP = 0;
|
||||
public static final int NAVTYPE_DOWN = 1;
|
||||
public static final int NAVTYPE_LEFT = 2;
|
||||
public static final int NAVTYPE_RIGHT = 3;
|
||||
public static final int NAVTYPE_SELECT = 4;
|
||||
public static final int NAVTYPE_MENUSELECT = 5;
|
||||
|
||||
public static final int ALERTACTION_CURRENT = 0;
|
||||
public static final int ALERTACTION_FIRST = 1;
|
||||
public static final int ALERTACTION_LAST = 2;
|
||||
public static final int ALERTACTION_NEXT = 3;
|
||||
public static final int ALERTACTION_PREV = 4;
|
||||
|
||||
public static final int BRIGHTNESS_OFF = 49;
|
||||
public static final int BRIGHTNESS_DIM = 50;
|
||||
public static final int BRIGHTNESS_MAX = 51;
|
||||
|
||||
public static final String CLIENT_SOFTWARE_VERSION = "0.0.3";
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.liveview;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBException;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractDeviceCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
|
||||
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
||||
import nodomain.freeyourgadget.gadgetbridge.entities.Device;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
|
||||
|
||||
public class LiveviewCoordinator extends AbstractDeviceCoordinator {
|
||||
@Override
|
||||
public DeviceType getSupportedType(GBDeviceCandidate candidate) {
|
||||
String name = candidate.getDevice().getName();
|
||||
if (name != null && name.startsWith("LiveView")) {
|
||||
return DeviceType.LIVEVIEW;
|
||||
}
|
||||
return DeviceType.UNKNOWN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeviceType getDeviceType() {
|
||||
return DeviceType.LIVEVIEW;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Activity> getPairingActivity() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Activity> getPrimaryActivity() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InstallHandler findInstallHandler(Uri uri, Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsActivityDataFetching() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsActivityTracking() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SampleProvider<? extends ActivitySample> getSampleProvider(GBDevice device, DaoSession session) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsScreenshots() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsAlarmConfiguration() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsHeartRateMeasurement(GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTapString() {
|
||||
//TODO: changeme
|
||||
return R.string.tap_connected_device_for_activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getManufacturer() {
|
||||
return "Sony Ericsson";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsAppsManagement() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Activity> getAppsManagementActivity() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException {
|
||||
// nothing to delete, yet
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user