Skip to content

Commit 262d0f3

Browse files
committed
update
1 parent 9384181 commit 262d0f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+283
-3784
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This is a demo app to control the ESP device which run [BluFi](https://github.co
88
- See [doc](doc/Introduction_to_the_EspBlufi_API_Interface_for_Android__en.md)
99

1010
## Release APKS
11-
- See [releases](https://github.com/EspressifApp/EspRelease/tree/master/EspBlufi)
11+
- See [releases](https://github.com/EspressifApp/EspBlufiForAndroid/releases)
1212

1313
## Update Log
1414
- See [Log](log/updatelog-en.md)

app/build.gradle

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 28
4+
compileSdkVersion 29
55

66
defaultConfig {
77
applicationId "com.espressif.espblufi"
88
minSdkVersion 18
9-
targetSdkVersion 28
10-
versionCode 19
11-
versionName "1.4.2"
9+
targetSdkVersion 29
10+
versionCode 20
11+
versionName "1.4.3"
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
}
1414
buildTypes {
@@ -26,13 +26,15 @@ android {
2626
dependencies {
2727
implementation fileTree(include: ['*.jar'], dir: 'libs')
2828

29-
implementation 'androidx.appcompat:appcompat:1.0.2'
29+
implementation 'androidx.appcompat:appcompat:1.1.0'
3030
implementation 'com.google.android.material:material:1.0.0'
3131
implementation 'androidx.gridlayout:gridlayout:1.0.0'
32+
implementation 'androidx.preference:preference:1.1.0'
3233

33-
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
34+
implementation 'io.reactivex.rxjava2:rxjava:2.2.12'
3435
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
3536

37+
implementation 'xxj.phiman:xxjtools:1.0.1'
38+
3639
implementation project(':blufilibrary')
37-
implementation project(':apptools')
3840
}

app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
<uses-permission android:name="android.permission.BLUETOOTH" />
99
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
1010
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
11-
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
1211
<uses-permission android:name="android.permission.INTERNET" />
1312

1413
<application

app/src/main/java/com/espressif/espblufi/app/BlufiApp.java

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@
77
import com.espressif.espblufi.constants.SettingsConstants;
88

99
import java.util.HashMap;
10-
import java.util.Random;
10+
import java.util.HashSet;
1111
import java.util.Set;
1212

13-
import libs.espressif.utils.RandomUtil;
14-
1513
public class BlufiApp extends Application {
1614
private static BlufiApp instance;
1715

@@ -41,26 +39,6 @@ public void onTerminate() {
4139
mCache.clear();
4240
}
4341

44-
public String putCache(Object value) {
45-
synchronized (mCache) {
46-
int keyLength = new Random().nextInt(20) + 20;
47-
String key = RandomUtil.randomString(keyLength);
48-
mCache.put(key, value);
49-
return key;
50-
}
51-
}
52-
53-
public Object takeCache(String key) {
54-
synchronized (mCache) {
55-
Object result = mCache.get(key);
56-
if (result != null) {
57-
mCache.remove(key);
58-
}
59-
60-
return result;
61-
}
62-
}
63-
6442
public boolean settingsPut(String key, Object value) {
6543
SharedPreferences.Editor editor = mSettingsShared.edit();
6644
if (value instanceof String) {
@@ -75,12 +53,11 @@ public boolean settingsPut(String key, Object value) {
7553
editor.putLong(key, (Long) value);
7654
} else if (value instanceof Set) {
7755
Set set = (Set) value;
78-
if (!set.isEmpty()) {
79-
if (!(set.iterator().next() instanceof String)) {
80-
return false;
81-
}
56+
Set<String> newSet = new HashSet<>();
57+
for (Object object : set) {
58+
newSet.add((String)object);
8259
}
83-
editor.putStringSet(key, (Set<String>)set);
60+
editor.putStringSet(key, newSet);
8461
} else {
8562
return false;
8663
}
@@ -101,6 +78,7 @@ public Object settingsGet(String key, Object defaultValue) {
10178
} else if (defaultValue instanceof Long) {
10279
return mSettingsShared.getLong(key, (Long) defaultValue);
10380
} else if (defaultValue instanceof Set) {
81+
//noinspection unchecked
10482
return mSettingsShared.getStringSet(key, (Set<String>) defaultValue);
10583
} else {
10684
return null;

app/src/main/java/com/espressif/espblufi/ui/BlufiActivity.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import android.bluetooth.BluetoothProfile;
99
import android.content.Intent;
1010
import android.graphics.Color;
11+
import android.os.Build;
1112
import android.os.Bundle;
1213
import android.text.TextUtils;
1314
import android.view.View;
@@ -39,13 +40,12 @@
3940
import blufi.espressif.response.BlufiScanResult;
4041
import blufi.espressif.response.BlufiStatusResponse;
4142
import blufi.espressif.response.BlufiVersionResponse;
42-
import libs.espressif.app.SdkUtil;
43-
import libs.espressif.log.EspLog;
43+
import tools.xxj.phiman.log.XxjLog;
4444

4545
public class BlufiActivity extends BaseActivity {
4646
private static final int REQUEST_CONFIGURE = 0x20;
4747

48-
private final EspLog mLog = new EspLog(getClass());
48+
private final XxjLog mLog = new XxjLog(getClass());
4949

5050
private BluetoothDevice mDevice;
5151
private BluetoothGatt mGatt;
@@ -180,7 +180,7 @@ private void connectGatt() {
180180
mGatt.close();
181181
}
182182
GattCallback callback = new GattCallback();
183-
if (SdkUtil.isAtLeastM_23()) {
183+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
184184
mGatt = mDevice.connectGatt(this, false, callback, BluetoothDevice.TRANSPORT_LE);
185185
} else {
186186
mGatt = mDevice.connectGatt(this, false, callback);
@@ -321,7 +321,7 @@ public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState
321321
if (status == BluetoothGatt.GATT_SUCCESS) {
322322
switch (newState) {
323323
case BluetoothProfile.STATE_CONNECTED:
324-
if (SdkUtil.isAtLeastL_21()) {
324+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
325325
gatt.requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_HIGH);
326326
int mtu = (int) BlufiApp.getInstance().settingsGet(
327327
SettingsConstants.PREF_SETTINGS_KEY_MTU_LENGTH, BlufiConstants.DEFAULT_MTU_LENGTH);

app/src/main/java/com/espressif/espblufi/ui/ConfigureOptionsActivity.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
import io.reactivex.Observable;
4040
import io.reactivex.android.schedulers.AndroidSchedulers;
4141
import io.reactivex.schedulers.Schedulers;
42-
import libs.espressif.log.EspLog;
43-
import libs.espressif.net.NetUtil;
42+
import tools.xxj.phiman.log.XxjLog;
43+
import tools.xxj.phiman.net.XxjNetUtil;
4444

4545
public class ConfigureOptionsActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {
4646
private static final int OP_MODE_POS_STA = 0;
@@ -62,7 +62,7 @@ public class ConfigureOptionsActivity extends BaseActivity implements AdapterVie
6262

6363
private static final String PREF_AP = "blufi_conf_aps";
6464

65-
private EspLog mLog = new EspLog(getClass());
65+
private XxjLog mLog = new XxjLog(getClass());
6666

6767
private Spinner mDeviceModeSp;
6868

@@ -141,7 +141,7 @@ public void afterTextChanged(Editable s) {
141141
mStationSsidET.setText(getConnectionSSID());
142142
WifiInfo info = ((WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE)).getConnectionInfo();
143143
if (info != null) {
144-
byte[] ssidBytes = NetUtil.getOriginalSsidBytes(info);
144+
byte[] ssidBytes = XxjNetUtil.getOriginalSsidBytes(info);
145145
mStationSsidET.setTag(ssidBytes);
146146
}
147147

@@ -323,7 +323,7 @@ private void showWifiListDialog() {
323323
.setSingleChoiceItems(wifiSSIDs, checkedItem, (dialog, which) -> {
324324
mStationSsidET.setText(wifiSSIDs[which]);
325325
ScanResult scanResult = mWifiList.get(which);
326-
byte[] ssidBytes = NetUtil.getOriginalSsidBytes(scanResult);
326+
byte[] ssidBytes = XxjNetUtil.getOriginalSsidBytes(scanResult);
327327
mStationSsidET.setTag(ssidBytes);
328328
dialog.dismiss();
329329
})
@@ -383,7 +383,7 @@ private boolean checkSta(BlufiConfigureParams params) {
383383
}
384384
}
385385
}
386-
if (NetUtil.is5GHz(freq)) {
386+
if (XxjNetUtil.is5GHz(freq)) {
387387
mStationSsidET.setError(getString(R.string.configure_station_wifi_5g_error));
388388
new AlertDialog.Builder(this)
389389
.setMessage(R.string.configure_station_wifi_5g_dialog_message)

app/src/main/java/com/espressif/espblufi/ui/MainActivity.java

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.Manifest;
44
import android.bluetooth.BluetoothAdapter;
55
import android.bluetooth.BluetoothDevice;
6+
import android.bluetooth.le.ScanResult;
67
import android.content.Intent;
78
import android.location.LocationManager;
89
import android.os.Build;
@@ -22,6 +23,7 @@
2223
import androidx.annotation.NonNull;
2324
import androidx.appcompat.app.AppCompatActivity;
2425
import androidx.appcompat.widget.Toolbar;
26+
import androidx.core.location.LocationManagerCompat;
2527
import androidx.recyclerview.widget.RecyclerView;
2628
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
2729

@@ -39,10 +41,10 @@
3941
import java.util.concurrent.Executors;
4042
import java.util.concurrent.Future;
4143

42-
import libs.espressif.app.PermissionHelper;
43-
import libs.espressif.ble.EspBleUtils;
44-
import libs.espressif.ble.ScanListener;
45-
import libs.espressif.log.EspLog;
44+
import tools.xxj.phiman.app.XxjPermissionHelper;
45+
import tools.xxj.phiman.ble.XxjBleScanListener;
46+
import tools.xxj.phiman.ble.XxjBleUtils;
47+
import tools.xxj.phiman.log.XxjLog;
4648

4749
public class MainActivity extends AppCompatActivity {
4850
private static final long TIMEOUT_SCAN = 4000L;
@@ -52,9 +54,9 @@ public class MainActivity extends AppCompatActivity {
5254

5355
private static final int MENU_SETTINGS = 0x01;
5456

55-
private final EspLog mLog = new EspLog(getClass());
57+
private final XxjLog mLog = new XxjLog(getClass());
5658

57-
private PermissionHelper mPermissionHelper;
59+
private XxjPermissionHelper mPermissionHelper;
5860

5961
private SwipeRefreshLayout mRefreshLayout;
6062

@@ -91,14 +93,14 @@ protected void onCreate(Bundle savedInstanceState) {
9193
mDeviceRssiMap = new HashMap<>();
9294
mScanCallback = new ScanCallback();
9395

94-
mPermissionHelper = new PermissionHelper(this, REQUEST_PERMISSION);
96+
mPermissionHelper = new XxjPermissionHelper(this, REQUEST_PERMISSION);
9597
mPermissionHelper.setOnPermissionsListener((permission, granted) -> {
96-
if (granted && permission.equals(Manifest.permission.ACCESS_COARSE_LOCATION)) {
98+
if (granted && permission.equals(Manifest.permission.ACCESS_FINE_LOCATION)) {
9799
mRefreshLayout.setRefreshing(true);
98100
scan();
99101
}
100102
});
101-
mPermissionHelper.requestAuthorities(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION});
103+
mPermissionHelper.requestAuthorities(new String[]{Manifest.permission.ACCESS_FINE_LOCATION});
102104
}
103105

104106
@Override
@@ -151,16 +153,12 @@ private void scan() {
151153
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
152154
// Check location enable
153155
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
154-
if (locationManager != null) {
155-
boolean locationGPS = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
156-
boolean locationNetwork = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
157-
if (!locationGPS && !locationNetwork) {
158-
Toast.makeText(this, R.string.main_location_disable_msg, Toast.LENGTH_SHORT).show();
159-
mRefreshLayout.setRefreshing(false);
160-
return;
161-
}
156+
boolean locationEnable = locationManager != null && LocationManagerCompat.isLocationEnabled(locationManager);
157+
if (!locationEnable) {
158+
Toast.makeText(this, R.string.main_location_disable_msg, Toast.LENGTH_SHORT).show();
159+
mRefreshLayout.setRefreshing(false);
160+
return;
162161
}
163-
164162
}
165163

166164
mDeviceRssiMap.clear();
@@ -171,7 +169,7 @@ private void scan() {
171169
mScanStartTime = SystemClock.elapsedRealtime();
172170

173171
mLog.d("Start scan ble");
174-
EspBleUtils.startScanBle(mScanCallback);
172+
XxjBleUtils.startScanBle(mScanCallback);
175173
mUpdateFuture = mThreadPool.submit(() -> {
176174
while (!Thread.currentThread().isInterrupted()) {
177175
try {
@@ -189,14 +187,14 @@ private void scan() {
189187
onIntervalScanUpdate(false);
190188
}
191189

192-
EspBleUtils.stopScanBle(mScanCallback);
190+
XxjBleUtils.stopScanBle(mScanCallback);
193191
onIntervalScanUpdate(true);
194192
mLog.d("Scan ble thread is interrupted");
195193
});
196194
}
197195

198196
private void stopScan() {
199-
EspBleUtils.stopScanBle(mScanCallback);
197+
XxjBleUtils.stopScanBle(mScanCallback);
200198
if (mUpdateFuture != null) {
201199
mUpdateFuture.cancel(true);
202200
}
@@ -253,10 +251,10 @@ public void onClick(View v) {
253251
}
254252
}
255253

256-
private class ScanCallback implements ScanListener {
254+
private class ScanCallback implements XxjBleScanListener {
257255

258256
@Override
259-
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
257+
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord, ScanResult scanResult) {
260258
String name = device.getName();
261259
if (!TextUtils.isEmpty(mBlufiFilter)) {
262260
if (name == null || !name.startsWith(mBlufiFilter)) {
@@ -282,7 +280,7 @@ public void onBindViewHolder(@NonNull BleHolder holder, int position) {
282280
BluetoothDevice device = mBleList.get(position);
283281
holder.device = device;
284282

285-
String name = device.getName() == null ? getString(R.string.string_unknown) : device.getName();
283+
String name = device.getName() == null ? getString(R.string.string_unknown) : device.getName();
286284
holder.text1.setText(name);
287285

288286
SpannableStringBuilder info = new SpannableStringBuilder();

0 commit comments

Comments
 (0)