diff --git a/build.gradle b/build.gradle
index e6d3881..327b2ba 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
-ext.compileSdkVersion = 18
-ext.buildToolsVersion = "21.1.1"
+ext.compileSdkVersion = 22
+ext.buildToolsVersion = "22.0.1"
ext.minSdkVersion = 18
ext.targetSdkVersion = 22
diff --git a/library/library.iml b/library/library.iml
index f457fe4..7656b88 100644
--- a/library/library.iml
+++ b/library/library.iml
@@ -85,12 +85,12 @@
-
+
+
-
\ No newline at end of file
diff --git a/sample_app/build.gradle b/sample_app/build.gradle
index 7375806..7cb7815 100644
--- a/sample_app/build.gradle
+++ b/sample_app/build.gradle
@@ -8,6 +8,20 @@ final def androidVersionCode = 100
final def targetSdk = rootProject.targetSdkVersion;
final def minSdkRed = rootProject.minSdkVersion;
+repositories {
+ maven {
+ url "https://repo.commonsware.com.s3.amazonaws.com"
+ }
+}
+
+dependencies {
+ compile 'com.jakewharton:butterknife:7.0.1'
+ compile 'com.android.support:appcompat-v7:22.2.0'
+ compile 'com.commonsware.cwac:merge:1.1.0'
+ compile fileTree(include: ['*.jar'], dir: 'libs')
+ compile project(':library')
+}
+
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
@@ -33,8 +47,3 @@ android {
productFlavors {
}
}
-
-dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- compile project(':library')
-}
diff --git a/sample_app/libs/android-support-v4.jar b/sample_app/libs/android-support-v4.jar
deleted file mode 100644
index 96644ed..0000000
Binary files a/sample_app/libs/android-support-v4.jar and /dev/null differ
diff --git a/sample_app/libs/butterknife-4.0.1.jar b/sample_app/libs/butterknife-4.0.1.jar
deleted file mode 100644
index e048516..0000000
Binary files a/sample_app/libs/butterknife-4.0.1.jar and /dev/null differ
diff --git a/sample_app/libs/merge-1.0.1.jar b/sample_app/libs/merge-1.0.1.jar
deleted file mode 100644
index fb49c15..0000000
Binary files a/sample_app/libs/merge-1.0.1.jar and /dev/null differ
diff --git a/sample_app/libs/sacklist-1.0.0.jar b/sample_app/libs/sacklist-1.0.0.jar
deleted file mode 100644
index 3a49a76..0000000
Binary files a/sample_app/libs/sacklist-1.0.0.jar and /dev/null differ
diff --git a/sample_app/sample_app.iml b/sample_app/sample_app.iml
index 0282668..cfe2b1d 100644
--- a/sample_app/sample_app.iml
+++ b/sample_app/sample_app.iml
@@ -69,6 +69,10 @@
+
+
+
+
@@ -84,14 +88,16 @@
-
+
-
-
-
+
+
+
+
-
-
+
+
+
\ No newline at end of file
diff --git a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceControlActivity.java b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceControlActivity.java
index a421b88..5e3753b 100644
--- a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceControlActivity.java
+++ b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceControlActivity.java
@@ -16,7 +16,6 @@
package uk.co.alt236.btlescan.activities;
-import android.app.Activity;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattService;
import android.content.BroadcastReceiver;
@@ -27,6 +26,7 @@ import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
+import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
@@ -40,8 +40,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import butterknife.Bind;
import butterknife.ButterKnife;
-import butterknife.InjectView;
import uk.co.alt236.bluetoothlelib.device.BluetoothLeDevice;
import uk.co.alt236.bluetoothlelib.resolvers.GattAttributeResolver;
import uk.co.alt236.bluetoothlelib.util.ByteUtils;
@@ -54,23 +54,23 @@ import uk.co.alt236.btlescan.services.BluetoothLeService;
* communicates with {@code BluetoothLeService}, which in turn interacts with the
* Bluetooth LE API.
*/
-public class DeviceControlActivity extends Activity {
+public class DeviceControlActivity extends AppCompatActivity {
public static final String EXTRA_DEVICE = "extra_device";
private final static String TAG = DeviceControlActivity.class.getSimpleName();
private static final String LIST_NAME = "NAME";
private static final String LIST_UUID = "UUID";
- @InjectView(R.id.gatt_services_list)
- ExpandableListView mGattServicesList;
- @InjectView(R.id.connection_state)
- TextView mConnectionState;
- @InjectView(R.id.uuid)
- TextView mGattUUID;
- @InjectView(R.id.description)
- TextView mGattUUIDDesc;
- @InjectView(R.id.data_as_string)
- TextView mDataAsString;
- @InjectView(R.id.data_as_array)
- TextView mDataAsArray;
+ @Bind(R.id.gatt_services_list)
+ protected ExpandableListView mGattServicesList;
+ @Bind(R.id.connection_state)
+ protected TextView mConnectionState;
+ @Bind(R.id.uuid)
+ protected TextView mGattUUID;
+ @Bind(R.id.description)
+ protected TextView mGattUUIDDesc;
+ @Bind(R.id.data_as_string)
+ protected TextView mDataAsString;
+ @Bind(R.id.data_as_array)
+ protected TextView mDataAsArray;
private BluetoothGattCharacteristic mNotifyCharacteristic;
private BluetoothLeService mBluetoothLeService;
private List> mGattCharacteristics = new ArrayList<>();
@@ -282,14 +282,14 @@ public class DeviceControlActivity extends Activity {
mDeviceName = device.getName();
mDeviceAddress = device.getAddress();
- ButterKnife.inject(this);
+ ButterKnife.bind(this);
// Sets up UI references.
((TextView) findViewById(R.id.device_address)).setText(mDeviceAddress);
mGattServicesList.setOnChildClickListener(servicesListClickListner);
- getActionBar().setTitle(mDeviceName);
- getActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setTitle(mDeviceName);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
final Intent gattServiceIntent = new Intent(this, BluetoothLeService.class);
bindService(gattServiceIntent, mServiceConnection, BIND_AUTO_CREATE);
diff --git a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java
index 6f2c131..fbc9045 100644
--- a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java
+++ b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/DeviceDetailsActivity.java
@@ -1,11 +1,14 @@
package uk.co.alt236.btlescan.activities;
-import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
import android.widget.LinearLayout;
+import android.widget.ListView;
import android.widget.TextView;
import com.commonsware.cwac.merge.MergeAdapter;
@@ -13,6 +16,7 @@ import com.commonsware.cwac.merge.MergeAdapter;
import java.util.Collection;
import java.util.Locale;
+import butterknife.Bind;
import butterknife.ButterKnife;
import uk.co.alt236.bluetoothlelib.device.BluetoothLeDevice;
import uk.co.alt236.bluetoothlelib.device.adrecord.AdRecord;
@@ -24,9 +28,13 @@ import uk.co.alt236.bluetoothlelib.util.IBeaconUtils;
import uk.co.alt236.btlescan.R;
import uk.co.alt236.btlescan.util.TimeFormatter;
-public class DeviceDetailsActivity extends ListActivity {
+public class DeviceDetailsActivity extends AppCompatActivity {
public static final String EXTRA_DEVICE = "extra_device";
-
+ @Bind(android.R.id.list)
+ protected ListView mList;
+ @Nullable
+ @Bind(android.R.id.empty)
+ protected View mEmpty;
private BluetoothLeDevice mDevice;
private void appendAdRecordView(final MergeAdapter adapter, final String title, final AdRecord record) {
@@ -129,7 +137,9 @@ public class DeviceDetailsActivity extends ListActivity {
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
- ButterKnife.inject(this);
+ ButterKnife.bind(this);
+
+ mList.setEmptyView(mEmpty);
mDevice = getIntent().getParcelableExtra(EXTRA_DEVICE);
@@ -194,7 +204,7 @@ public class DeviceDetailsActivity extends ListActivity {
}
}
- getListView().setAdapter(adapter);
+ mList.setAdapter(adapter);
}
private static String formatTime(final long time) {
diff --git a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/MainActivity.java b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/MainActivity.java
index f5f4536..153f522 100644
--- a/sample_app/src/main/java/uk/co/alt236/btlescan/activities/MainActivity.java
+++ b/sample_app/src/main/java/uk/co/alt236/btlescan/activities/MainActivity.java
@@ -1,23 +1,24 @@
package uk.co.alt236.btlescan.activities;
import android.app.AlertDialog;
-import android.app.ListActivity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.util.Linkify;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
+import butterknife.Bind;
import butterknife.ButterKnife;
-import butterknife.InjectView;
import uk.co.alt236.bluetoothlelib.device.BluetoothLeDevice;
import uk.co.alt236.btlescan.R;
import uk.co.alt236.btlescan.adapters.LeDeviceListAdapter;
@@ -26,13 +27,17 @@ import uk.co.alt236.btlescan.util.BluetoothLeScanner;
import uk.co.alt236.btlescan.util.BluetoothUtils;
import uk.co.alt236.easycursor.objectcursor.EasyObjectCursor;
-public class MainActivity extends ListActivity {
- @InjectView(R.id.tvBluetoothLe)
- TextView mTvBluetoothLeStatus;
- @InjectView(R.id.tvBluetoothStatus)
- TextView mTvBluetoothStatus;
- @InjectView(R.id.tvItemCount)
- TextView mTvItemCount;
+public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
+ @Bind(R.id.tvBluetoothLe)
+ protected TextView mTvBluetoothLeStatus;
+ @Bind(R.id.tvBluetoothStatus)
+ protected TextView mTvBluetoothStatus;
+ @Bind(R.id.tvItemCount)
+ protected TextView mTvItemCount;
+ @Bind(android.R.id.list)
+ protected ListView mList;
+ @Bind(android.R.id.empty)
+ protected View mEmpty;
private BluetoothUtils mBluetoothUtils;
private BluetoothLeScanner mScanner;
@@ -87,8 +92,9 @@ public class MainActivity extends ListActivity {
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- ButterKnife.inject(this);
-
+ ButterKnife.bind(this);
+ mList.setEmptyView(mEmpty);
+ mList.setOnItemClickListener(this);
mDeviceStore = new BluetoothLeDeviceStore();
mBluetoothUtils = new BluetoothUtils(this);
mScanner = new BluetoothLeScanner(mLeScanCallback, mBluetoothUtils);
@@ -108,7 +114,7 @@ public class MainActivity extends ListActivity {
menu.findItem(R.id.menu_refresh).setActionView(R.layout.actionbar_progress_indeterminate);
}
- if (getListView().getCount() > 0) {
+ if (mList.getCount() > 0) {
menu.findItem(R.id.menu_share).setVisible(true);
} else {
menu.findItem(R.id.menu_share).setVisible(false);
@@ -118,7 +124,7 @@ public class MainActivity extends ListActivity {
}
@Override
- protected void onListItemClick(final ListView l, final View v, final int position, final long id) {
+ public void onItemClick(AdapterView> adapterView, View view, int position, long l) {
final BluetoothLeDevice device = mLeDeviceListAdapter.getItem(position);
if (device == null) return;
@@ -181,7 +187,7 @@ public class MainActivity extends ListActivity {
updateItemCount(0);
mLeDeviceListAdapter = new LeDeviceListAdapter(this, mDeviceStore.getDeviceCursor());
- setListAdapter(mLeDeviceListAdapter);
+ mList.setAdapter(mLeDeviceListAdapter);
mBluetoothUtils.askUserToEnableBluetoothIfNeeded();
if (mIsBluetoothOn && mIsBluetoothLePresent) {
diff --git a/sample_app/src/main/res/menu/details.xml b/sample_app/src/main/res/menu/details.xml
index a36f333..dde8544 100644
--- a/sample_app/src/main/res/menu/details.xml
+++ b/sample_app/src/main/res/menu/details.xml
@@ -14,14 +14,15 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-