From d467b37493a5d3645a4642b265b1d0488b94963b Mon Sep 17 00:00:00 2001 From: Daniele Gobbetti Date: Tue, 25 Oct 2016 17:49:21 +0200 Subject: [PATCH] ControlCenterv2: further steps: Close drawer before launching activities (feels sloow). Implement device deletion (untested). Add app-management icon, remove tap-connected-device-for-primary-activity, hidden (not removed) text hint. Use level-list for device icon. Use the new control center when tapping GB notifications. Added icons to the legacy control center context menu, perhaps it can be embedded in the card? --- .../activities/ControlCenterv2.java | 5 +- .../adapter/GBDeviceAdapterv2.java | 105 ++++++++++-------- .../freeyourgadget/gadgetbridge/util/GB.java | 10 +- .../res/drawable/ic_action_manage_apps.xml | 9 ++ .../main/res/drawable/level_list_device.xml | 14 +++ .../activity_controlcenterv2_app_bar_main.xml | 4 +- app/src/main/res/layout/device_itemv2.xml | 15 ++- .../main/res/menu/controlcenter_context.xml | 10 +- 8 files changed, 117 insertions(+), 55 deletions(-) create mode 100644 app/src/main/res/drawable/ic_action_manage_apps.xml create mode 100644 app/src/main/res/drawable/level_list_device.xml diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java index b99b0e19..5b385028 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenterv2.java @@ -203,6 +203,9 @@ public class ControlCenterv2 extends AppCompatActivity @Override public boolean onNavigationItemSelected(MenuItem item) { + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + switch (item.getItemId()) { case R.id.action_settings: Intent settingsIntent = new Intent(this, SettingsActivity.class); @@ -221,8 +224,6 @@ public class ControlCenterv2 extends AppCompatActivity return true; } - DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); - drawer.closeDrawer(GravityCompat.START); return true; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapterv2.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapterv2.java index 153cb816..2234154c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapterv2.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapterv2.java @@ -1,10 +1,12 @@ package nodomain.freeyourgadget.gadgetbridge.adapter; import android.app.Activity; +import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.support.v4.content.LocalBroadcastManager; import android.support.v7.widget.RecyclerView; import android.transition.TransitionManager; import android.view.LayoutInflater; @@ -17,6 +19,7 @@ import android.widget.ListView; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; +import android.widget.Toast; import java.util.List; @@ -25,9 +28,11 @@ import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.ConfigureAlarms; import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsActivity; import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator; +import nodomain.freeyourgadget.gadgetbridge.devices.DeviceManager; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.BatteryState; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; +import nodomain.freeyourgadget.gadgetbridge.util.GB; /** * Adapter for displaying GBDevice instances. @@ -57,29 +62,23 @@ public class GBDeviceAdapterv2 extends RecyclerView.Adapter primaryActivity = coordinator.getPrimaryActivity(); - if (primaryActivity != null) { - Intent startIntent = new Intent(context, primaryActivity); - startIntent.putExtra(GBDevice.EXTRA_DEVICE, device); - context.startActivity(startIntent); - } - } else { - //TODO: move somewhere else - GBApplication.deviceService().connect(device); - } + //TODO: move somewhere else? + GBApplication.deviceService().connect(device); } }); holder.deviceImageView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { - //TODO: move somewhere else + //TODO: move somewhere else? GBApplication.deviceService().disconnect(); return true; } @@ -87,6 +86,7 @@ public class GBDeviceAdapterv2 extends RecyclerView.Adapter appsManagementActivity = coordinator.getAppsManagementActivity(); + if (appsManagementActivity != null) { + Intent startIntent = new Intent(context, appsManagementActivity); + startIntent.putExtra(GBDevice.EXTRA_DEVICE, device); + context.startActivity(startIntent); + } + } + } + ); + //set alarms holder.setAlarmsView.setVisibility(coordinator.supportsAlarmConfiguration() ? View.VISIBLE : View.GONE); holder.setAlarmsView.setOnClickListener(new View.OnClickListener() @@ -218,40 +236,37 @@ public class GBDeviceAdapterv2 extends RecyclerView.Adapter + + diff --git a/app/src/main/res/drawable/level_list_device.xml b/app/src/main/res/drawable/level_list_device.xml new file mode 100644 index 00000000..7de9a84f --- /dev/null +++ b/app/src/main/res/drawable/level_list_device.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_controlcenterv2_app_bar_main.xml b/app/src/main/res/layout/activity_controlcenterv2_app_bar_main.xml index f779c848..754a45bd 100644 --- a/app/src/main/res/layout/activity_controlcenterv2_app_bar_main.xml +++ b/app/src/main/res/layout/activity_controlcenterv2_app_bar_main.xml @@ -23,7 +23,7 @@ - - +--> + + + android:icon="@drawable/ic_action_fetch_activity_data" + android:title="@string/controlcenter_fetch_activity_data" + android:layout_width="wrap_content" + android:layout_height="wrap_content" />