diff --git a/app/build.gradle b/app/build.gradle index f01ac6b4f..d72600d2e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,6 +48,7 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:support-v4:23.1.1' + compile 'com.android.support:design:23.3.0' compile 'com.github.tony19:logback-android-classic:1.1.1-4' compile 'org.slf4j:slf4j-api:1.7.7' compile 'com.github.PhilJay:MPAndroidChart:v2.2.3' diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java index 4d3c48a13..d9a3b1c36 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java @@ -1,12 +1,21 @@ package nodomain.freeyourgadget.gadgetbridge.activities; +import android.content.res.Configuration; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; import android.support.v4.app.NavUtils; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatDelegate; +import android.support.v7.widget.Toolbar; +import android.view.MenuInflater; import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,6 +29,7 @@ import org.slf4j.LoggerFactory; public abstract class AbstractSettingsActivity extends PreferenceActivity { private static final Logger LOG = LoggerFactory.getLogger(AbstractSettingsActivity.class); + private AppCompatDelegate delegate; /** * A preference value change listener that updates the preference's summary @@ -56,15 +66,15 @@ public abstract class AbstractSettingsActivity extends PreferenceActivity { } private static class ExtraSetSummaryOnChangeListener extends SimpleSetSummaryOnChangeListener { - private final Preference.OnPreferenceChangeListener delegate; + private final Preference.OnPreferenceChangeListener prefChangeListener; - public ExtraSetSummaryOnChangeListener(Preference.OnPreferenceChangeListener delegate) { - this.delegate = delegate; + public ExtraSetSummaryOnChangeListener(Preference.OnPreferenceChangeListener prefChangeListener) { + this.prefChangeListener = prefChangeListener; } @Override public boolean onPreferenceChange(Preference preference, Object value) { - boolean result = delegate.onPreferenceChange(preference, value); + boolean result = prefChangeListener.onPreferenceChange(preference, value); if (result) { return super.onPreferenceChange(preference, value); } @@ -74,11 +84,17 @@ public abstract class AbstractSettingsActivity extends PreferenceActivity { private static final SimpleSetSummaryOnChangeListener sBindPreferenceSummaryToValueListener = new SimpleSetSummaryOnChangeListener(); + @Override + protected void onCreate(Bundle savedInstanceState) { + getDelegate().installViewFactory(); + getDelegate().onCreate(savedInstanceState); + super.onCreate(savedInstanceState); + } + @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); - - getActionBar().setDisplayHomeAsUpEnabled(true); + getDelegate().onPostCreate(savedInstanceState); for (String prefKey : getPreferenceKeysWithSummary()) { final Preference pref = findPreference(prefKey); @@ -90,6 +106,67 @@ public abstract class AbstractSettingsActivity extends PreferenceActivity { } } + + @Override + protected void onPostResume() { + super.onPostResume(); + getDelegate().onPostResume(); + } + + @Override + protected void onTitleChanged(CharSequence title, int color) { + super.onTitleChanged(title, color); + getDelegate().setTitle(title); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + getDelegate().onConfigurationChanged(newConfig); + } + + @Override + protected void onStop() { + super.onStop(); + getDelegate().onStop(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getDelegate().onDestroy(); + } + + @Override + public MenuInflater getMenuInflater() { + return getDelegate().getMenuInflater(); + } + + @Override + public void setContentView(@LayoutRes int layoutResID) { + getDelegate().setContentView(layoutResID); + } + + @Override + public void setContentView(View view) { + getDelegate().setContentView(view); + } + + @Override + public void setContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().setContentView(view, params); + } + + @Override + public void addContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().addContentView(view, params); + } + + public void invalidateOptionsMenu() { + getDelegate().invalidateOptionsMenu(); + } + + /** * Subclasses should reimplement this to return the keys of those * preferences which should print its values as a summary below the @@ -141,4 +218,19 @@ public abstract class AbstractSettingsActivity extends PreferenceActivity { } return super.onOptionsItemSelected(item); } + + public ActionBar getSupportActionBar() { + return getDelegate().getSupportActionBar(); + } + + public void setSupportActionBar(@Nullable Toolbar toolbar) { + getDelegate().setSupportActionBar(toolbar); + } + + private AppCompatDelegate getDelegate() { + if (delegate == null) { + delegate = AppCompatDelegate.create(this, null); + } + return delegate; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java index a137ad0cb..9bfe12959 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java @@ -1,8 +1,8 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.Activity; import android.os.Bundle; import android.os.Parcelable; +import android.support.v7.app.AppCompatActivity; import android.text.format.DateFormat; import android.view.MenuItem; import android.widget.CheckBox; @@ -12,7 +12,7 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.impl.GBAlarm; -public class AlarmDetails extends Activity { +public class AlarmDetails extends AppCompatActivity { private GBAlarm alarm; private TimePicker timePicker; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AndroidPairingActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AndroidPairingActivity.java index 284f67915..f85d3ca09 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AndroidPairingActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AndroidPairingActivity.java @@ -1,11 +1,11 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.Activity; import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; import nodomain.freeyourgadget.gadgetbridge.R; -public class AndroidPairingActivity extends Activity { +public class AndroidPairingActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppBlacklistActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppBlacklistActivity.java index 630e9c047..06021c084 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppBlacklistActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppBlacklistActivity.java @@ -1,6 +1,5 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -12,6 +11,7 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.NavUtils; import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; @@ -34,7 +34,7 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; -public class AppBlacklistActivity extends Activity { +public class AppBlacklistActivity extends AppCompatActivity { private static final Logger LOG = LoggerFactory.getLogger(AppBlacklistActivity.class); private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @@ -53,7 +53,6 @@ public class AppBlacklistActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_appblacklist); - getActionBar().setDisplayHomeAsUpEnabled(true); final PackageManager pm = getPackageManager(); sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppManagerActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppManagerActivity.java index 6b566f3e2..f5182ee36 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppManagerActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AppManagerActivity.java @@ -1,6 +1,5 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -11,6 +10,7 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.NavUtils; import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.app.AppCompatActivity; import android.view.ContextMenu; import android.view.MenuItem; import android.view.View; @@ -37,7 +37,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.FileUtils; import nodomain.freeyourgadget.gadgetbridge.util.PebbleUtils; -public class AppManagerActivity extends Activity { +public class AppManagerActivity extends AppCompatActivity { public static final String ACTION_REFRESH_APPLIST = "nodomain.freeyourgadget.gadgetbridge.appmanager.action.refresh_applist"; private static final Logger LOG = LoggerFactory.getLogger(AppManagerActivity.class); @@ -134,7 +134,6 @@ public class AppManagerActivity extends Activity { sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); setContentView(R.layout.activity_appmanager); - getActionBar().setDisplayHomeAsUpEnabled(true); ListView appListView = (ListView) findViewById(R.id.appListView); mGBDeviceAppAdapter = new GBDeviceAppAdapter(this, appList); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java index a640faff2..d04338cc9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java @@ -1,11 +1,12 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.ListActivity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; +import android.widget.ListView; import java.util.Arrays; import java.util.HashSet; @@ -20,7 +21,7 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBAlarm; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_ALARMS; -public class ConfigureAlarms extends ListActivity { +public class ConfigureAlarms extends AppCompatActivity { private static final int REQ_CONFIGURE_ALARM = 1; @@ -33,7 +34,6 @@ public class ConfigureAlarms extends ListActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_configure_alarms); - getActionBar().setDisplayHomeAsUpEnabled(true); SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); preferencesAlarmListSet = sharedPrefs.getStringSet(PREF_MIBAND_ALARMS, new HashSet()); @@ -45,7 +45,8 @@ public class ConfigureAlarms extends ListActivity { mGBAlarmListAdapter = new GBAlarmListAdapter(this, preferencesAlarmListSet); - setListAdapter(mGBAlarmListAdapter); + ListView listView = (ListView) findViewById(R.id.alarm_list); + listView.setAdapter(mGBAlarmListAdapter); updateAlarmsFromPrefs(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java index 187c5c955..cb188ba46 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java @@ -15,15 +15,18 @@ import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.design.widget.FloatingActionButton; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.widget.SwipeRefreshLayout; +import android.support.v7.app.AppCompatActivity; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; +import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; @@ -45,7 +48,7 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.GB; -public class ControlCenter extends Activity { +public class ControlCenter extends AppCompatActivity { private static final Logger LOG = LoggerFactory.getLogger(ControlCenter.class); @@ -53,6 +56,9 @@ public class ControlCenter extends Activity { = "nodomain.freeyourgadget.gadgetbridge.controlcenter.action.set_version"; private TextView hintTextView; + private FloatingActionButton fab; + private ImageView background; + private SwipeRefreshLayout swipeLayout; private GBDeviceAdapter mGBDeviceAdapter; private GBDevice selectedDevice = null; @@ -123,8 +129,19 @@ public class ControlCenter extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_controlcenter); + hintTextView = (TextView) findViewById(R.id.hintTextView); ListView deviceListView = (ListView) findViewById(R.id.deviceListView); + fab = (FloatingActionButton) findViewById(R.id.fab); + background = (ImageView) findViewById(R.id.no_items_bg); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + launchDiscoveryActivity(); + } + }); + mGBDeviceAdapter = new GBDeviceAdapter(this, deviceList); deviceListView.setAdapter(this.mGBDeviceAdapter); deviceListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @@ -332,18 +349,19 @@ public class ControlCenter extends Activity { Intent quitIntent = new Intent(GBApplication.ACTION_QUIT); LocalBroadcastManager.getInstance(this).sendBroadcast(quitIntent); return true; - case R.id.action_discover: - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - startActivity(new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS)); - } else { - startActivity(new Intent(this, DiscoveryActivity.class)); - } - return true; } return super.onOptionsItemSelected(item); } + private void launchDiscoveryActivity() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + startActivity(new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS)); + } else { + startActivity(new Intent(this, DiscoveryActivity.class)); + } + } + @Override protected void onDestroy() { LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver); @@ -367,6 +385,12 @@ public class ControlCenter extends Activity { } } + if (deviceList.isEmpty()) { + background.setVisibility(View.VISIBLE); + } else { + background.setVisibility(View.INVISIBLE); + } + if (connected) { hintTextView.setText(R.string.tap_connected_device_for_app_mananger); } else if (!deviceList.isEmpty()) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java index dc7eb2f5f..524522e20 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java @@ -1,6 +1,5 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.Activity; import android.app.AlertDialog; import android.app.NotificationManager; import android.app.PendingIntent; @@ -14,6 +13,7 @@ import android.os.Bundle; import android.support.v4.app.NavUtils; import android.support.v4.app.NotificationCompat; import android.support.v4.app.RemoteInput; +import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.view.View; import android.widget.Button; @@ -37,7 +37,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.FileUtils; import nodomain.freeyourgadget.gadgetbridge.util.GB; -public class DebugActivity extends Activity { +public class DebugActivity extends AppCompatActivity { private static final Logger LOG = LoggerFactory.getLogger(DebugActivity.class); private static final String EXTRA_REPLY = "reply"; @@ -81,7 +81,6 @@ public class DebugActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_debug); - getActionBar().setDisplayHomeAsUpEnabled(true); IntentFilter filter = new IntentFilter(); filter.addAction(GBApplication.ACTION_QUIT); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DiscoveryActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DiscoveryActivity.java index 81a5a2f62..82f2c7e5a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DiscoveryActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DiscoveryActivity.java @@ -12,6 +12,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Parcelable; +import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.Button; @@ -32,7 +33,7 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.GB; -public class DiscoveryActivity extends Activity implements AdapterView.OnItemClickListener { +public class DiscoveryActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { private static final Logger LOG = LoggerFactory.getLogger(DiscoveryActivity.class); private static final long SCAN_DURATION = 60000; // 60s @@ -290,6 +291,11 @@ public class DiscoveryActivity extends Activity implements AdapterView.OnItemCli return false; } BluetoothAdapter adapter = bluetoothService.getAdapter(); + if (adapter == null) { + LOG.warn("No bluetooth available"); + this.adapter = null; + return false; + } if (!adapter.isEnabled()) { LOG.warn("Bluetooth not enabled"); Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java index 2f86bfaf2..4c18bb90b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java @@ -1,10 +1,10 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.NavUtils; +import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.MenuItem; import android.webkit.ConsoleMessage; @@ -32,7 +32,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.FileUtils; import nodomain.freeyourgadget.gadgetbridge.util.GB; import nodomain.freeyourgadget.gadgetbridge.util.PebbleUtils; -public class ExternalPebbleJSActivity extends Activity { +public class ExternalPebbleJSActivity extends AppCompatActivity { private static final Logger LOG = LoggerFactory.getLogger(ExternalPebbleJSActivity.class); @@ -61,7 +61,6 @@ public class ExternalPebbleJSActivity extends Activity { } setContentView(R.layout.activity_external_pebble_js); - getActionBar().setDisplayHomeAsUpEnabled(true); WebView myWebView = (WebView) findViewById(R.id.configureWebview); myWebView.clearCache(true); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FwAppInstallerActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FwAppInstallerActivity.java index 7f8d507f1..be79ea0a8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FwAppInstallerActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/FwAppInstallerActivity.java @@ -1,6 +1,5 @@ package nodomain.freeyourgadget.gadgetbridge.activities; -import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -9,6 +8,7 @@ import android.net.Uri; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.support.v4.content.LocalBroadcastManager; +import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.view.View; import android.widget.Button; @@ -35,7 +35,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.GB; -public class FwAppInstallerActivity extends Activity implements InstallActivity { +public class FwAppInstallerActivity extends AppCompatActivity implements InstallActivity { private static final Logger LOG = LoggerFactory.getLogger(FwAppInstallerActivity.class); private static final String ITEM_DETAILS = "details"; @@ -113,7 +113,7 @@ public class FwAppInstallerActivity extends Activity implements InstallActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_appinstaller); - getActionBar().setDisplayHomeAsUpEnabled(true); + GBDevice dev = getIntent().getParcelableExtra(GBDevice.EXTRA_DEVICE); if (dev != null) { device = dev; 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 a1ed4359a..92ca09b5f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAdapter.java @@ -60,11 +60,11 @@ public class GBDeviceAdapter extends ArrayAdapter { if (device.isBusy()) { deviceStatusLabel.setText(device.getBusyTask()); busyIndicator.setVisibility(View.VISIBLE); - batteryLabel.setVisibility(View.GONE); - batteryStatusLabel.setVisibility(View.GONE); + batteryLabel.setVisibility(View.INVISIBLE); + batteryStatusLabel.setVisibility(View.INVISIBLE); } else { deviceStatusLabel.setText(device.getStateString()); - busyIndicator.setVisibility(View.GONE); + busyIndicator.setVisibility(View.INVISIBLE); batteryLabel.setVisibility(View.VISIBLE); batteryStatusLabel.setVisibility(View.VISIBLE); } @@ -113,13 +113,25 @@ public class GBDeviceAdapter extends ArrayAdapter { switch (device.getType()) { case PEBBLE: - deviceImageView.setImageResource(R.drawable.ic_device_pebble); + if (device.isConnected()) { + deviceImageView.setImageResource(R.drawable.ic_device_pebble); + } else { + deviceImageView.setImageResource(R.drawable.ic_device_pebble_disabled); + } break; case MIBAND: - deviceImageView.setImageResource(R.drawable.ic_device_miband); + if (device.isConnected()) { + deviceImageView.setImageResource(R.drawable.ic_device_miband); + } else { + deviceImageView.setImageResource(R.drawable.ic_device_miband_disabled); + } break; default: - deviceImageView.setImageResource(R.drawable.ic_launcher); + if (device.isConnected()) { + deviceImageView.setImageResource(R.drawable.ic_launcher); + } else { + deviceImageView.setImageResource(R.drawable.ic_device_default_disabled); + } } return view; diff --git a/app/src/main/res/drawable-hdpi/ic_device_default_disabled.png b/app/src/main/res/drawable-hdpi/ic_device_default_disabled.png new file mode 100644 index 000000000..694e9cd94 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_device_default_disabled.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_device_miband_disabled.png b/app/src/main/res/drawable-hdpi/ic_device_miband_disabled.png new file mode 100644 index 000000000..43cabe9b4 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_device_miband_disabled.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_device_pebble_disabled.png b/app/src/main/res/drawable-hdpi/ic_device_pebble_disabled.png new file mode 100644 index 000000000..c5772510c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_device_pebble_disabled.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_device_default_disabled.png b/app/src/main/res/drawable-mdpi/ic_device_default_disabled.png new file mode 100644 index 000000000..113ad06c6 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_device_default_disabled.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_device_miband_disabled.png b/app/src/main/res/drawable-mdpi/ic_device_miband_disabled.png new file mode 100644 index 000000000..c1d9e92ab Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_device_miband_disabled.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_device_pebble_disabled.png b/app/src/main/res/drawable-mdpi/ic_device_pebble_disabled.png new file mode 100644 index 000000000..675a26a7f Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_device_pebble_disabled.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_device_default_disabled.png b/app/src/main/res/drawable-xhdpi/ic_device_default_disabled.png new file mode 100644 index 000000000..208c6abe8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_device_default_disabled.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_device_miband_disabled.png b/app/src/main/res/drawable-xhdpi/ic_device_miband_disabled.png new file mode 100644 index 000000000..e86b4071e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_device_miband_disabled.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_device_pebble_disabled.png b/app/src/main/res/drawable-xhdpi/ic_device_pebble_disabled.png new file mode 100644 index 000000000..705aad25e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_device_pebble_disabled.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_device_default_disabled.png b/app/src/main/res/drawable-xxhdpi/ic_device_default_disabled.png new file mode 100644 index 000000000..b4349b1ba Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_device_default_disabled.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_device_miband_disabled.png b/app/src/main/res/drawable-xxhdpi/ic_device_miband_disabled.png new file mode 100644 index 000000000..db5603a27 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_device_miband_disabled.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_device_pebble_disabled.png b/app/src/main/res/drawable-xxhdpi/ic_device_pebble_disabled.png new file mode 100644 index 000000000..c1eebfd59 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_device_pebble_disabled.png differ diff --git a/app/src/main/res/drawable/gadgetbridge_img.png b/app/src/main/res/drawable/gadgetbridge_img.png new file mode 100644 index 000000000..cdb748e00 Binary files /dev/null and b/app/src/main/res/drawable/gadgetbridge_img.png differ diff --git a/app/src/main/res/drawable/ic_add_black.png b/app/src/main/res/drawable/ic_add_black.png new file mode 100644 index 000000000..a633259ea Binary files /dev/null and b/app/src/main/res/drawable/ic_add_black.png differ diff --git a/app/src/main/res/layout/activity_configure_alarms.xml b/app/src/main/res/layout/activity_configure_alarms.xml index 3dd725a24..5d5fe957f 100644 --- a/app/src/main/res/layout/activity_configure_alarms.xml +++ b/app/src/main/res/layout/activity_configure_alarms.xml @@ -1,4 +1,4 @@ - - + diff --git a/app/src/main/res/layout/activity_controlcenter.xml b/app/src/main/res/layout/activity_controlcenter.xml index 39a5d2c82..7bdcc89fa 100644 --- a/app/src/main/res/layout/activity_controlcenter.xml +++ b/app/src/main/res/layout/activity_controlcenter.xml @@ -1,36 +1,62 @@ + + + android:paddingTop="0px"> + android:layout_centerHorizontal="true" /> - + + + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="@color/secondarytext" + android:textStyle="italic" + android:text="@string/tap_connected_device_for_app_mananger" /> + diff --git a/app/src/main/res/layout/device_item.xml b/app/src/main/res/layout/device_item.xml index 34c14667c..18431f2b8 100644 --- a/app/src/main/res/layout/device_item.xml +++ b/app/src/main/res/layout/device_item.xml @@ -1,6 +1,6 @@ - + android:contentDescription="@string/candidate_item_device_image" + tools:src="@drawable/ic_device_pebble" /> - + - + - + - + - + - - - - + + + android:paddingLeft="36dp" + android:visibility="gone" /> diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 945de4570..c8648cd42 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -2,8 +2,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="nodomain.freeyourgadget.gadgetbridge.activities.ControlCenter"> - -