Skip to content

Commit 34338a6

Browse files
author
Anuj Deshpande
committed
Add wifi scan list
1 parent 05c4d54 commit 34338a6

14 files changed

+495
-58
lines changed

app/build.gradle

+8-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ apply plugin: 'com.google.protobuf'
44
android {
55
signingConfigs {
66
config {
7-
keyAlias 'nameOfSigningKey'
8-
storeFile file('/path/to/signing/key')
9-
storePassword '123456'
10-
keyPassword '123456'
7+
keyAlias 'nameofcert'
8+
storeFile file('path to cert')
9+
storePassword 'password'
10+
keyPassword 'password'
1111
}
1212
}
1313
compileSdkVersion 27
1414
defaultConfig {
15-
applicationId "com.espressif.provision"
15+
applicationId "com.espressif.provavsble"
1616
minSdkVersion 21
1717
targetSdkVersion 27
1818
versionCode 1
@@ -31,6 +31,7 @@ android {
3131
resValue "string", "ble_session_uuid", "0000ff51-0000-1000-8000-00805f9b34fb"
3232
resValue "string", "ble_config_uuid", "0000ff52-0000-1000-8000-00805f9b34fb"
3333
resValue "string", "ble_avsconfig_uuid", "0000ff54-0000-1000-8000-00805f9b34fb"
34+
resValue "string", "ble_scanconfig_uuid", "0000ff50-0000-1000-8000-00805f9b34fb"
3435
resValue "string", "ble_device_name_prefix", "ESP-Alexa-"
3536
signingConfig signingConfigs.config
3637
debuggable true
@@ -44,6 +45,8 @@ android {
4445
resValue "string", "ble_session_uuid", "0000ff51-0000-1000-8000-00805f9b34fb"
4546
resValue "string", "ble_config_uuid", "0000ff52-0000-1000-8000-00805f9b34fb"
4647
resValue "string", "ble_avsconfig_uuid", "0000ff54-0000-1000-8000-00805f9b34fb"
48+
resValue "string", "ble_scanconfig_uuid", "0000ff50-0000-1000-8000-00805f9b34fb"
49+
4750
resValue "string", "ble_device_name_prefix", "ESP-Alexa-"
4851
signingConfig signingConfigs.config
4952
}

app/src/main/AndroidManifest.xml

+4
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@
5252
android:name="com.espressif.ui.ProvisionActivity"
5353
android:label="@string/provision_activity_title"
5454
android:theme="@style/AppTheme.NoActionBar" />
55+
<activity
56+
android:name="com.espressif.ui.WiFiScanList"
57+
android:label="Wi-Fi Scan List"
58+
android:theme="@style/AppTheme.NoActionBar" />
5559
<activity
5660
android:name="com.espressif.ui.LoginWithAmazon"
5761
android:label="@string/title_activity_login_with_amazon"

app/src/main/java/com/espressif/provision/Provision.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import espressif.Constants;
3535
import espressif.WifiConfig;
3636
import espressif.WifiConstants;
37+
import espressif.WifiScan;
3738

3839
import static java.lang.Thread.sleep;
3940

@@ -55,6 +56,8 @@ public class Provision {
5556
public static final String CONFIG_SECURITY_SECURITY0 = "security0";
5657
public static final String CONFIG_WIFI_AP_KEY = "wifiAPPrefix";
5758
public static final String PROVISIONING_CONFIG_PATH = "prov-config";
59+
public static final String PROVISIONING_WIFI_SSID = "SSID";
60+
public static final String PROVISIONING_WIFI_SCAN_PATH = "prov-scan";
5861
private static final String TAG = "Espressif::" + Provision.class.getSimpleName();
5962
public ProvisioningListener provisioningListener;
6063
private Security security;
@@ -118,10 +121,10 @@ public static void showProvisioningUI (Activity activity,
118121
* 3. Provide Network information like SSID and Passphrase
119122
*
120123
* @param activity parent activity which is typically part of the app
121-
// * @param productId product ID in the Alexa Voice Services project
122-
// * @param productDSN device serial number
123-
// * @param codeVerifier random value used as a code challenge. This should typically be sent to
124-
// * to received from the device to use in its communication with Alexa
124+
// * @param productId product ID in the Alexa Voice Services project
125+
// * @param productDSN device serial number
126+
// * @param codeVerifier random value used as a code challenge. This should typically be sent to
127+
// * to received from the device to use in its communication with Alexa
125128
* @param config Config dictionary
126129
* Currently supported configurations are
127130
* HashMap<String, String> config = new HashMap<>();
@@ -244,6 +247,7 @@ public void onFailure(Exception e) {
244247
}
245248
});
246249
}
250+
247251
}
248252

249253
private byte[] createSetWifiConfigRequest(String ssid, String passphrase) {

app/src/main/java/com/espressif/ui/BLEProvisionLanding.java

+1
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ public void run() {
187187
rescanButton.setEnabled(true);
188188
HashMap<String, String> configUUIDMap = new HashMap<>();
189189
configUUIDMap.put(Provision.PROVISIONING_CONFIG_PATH, configUUID);
190+
configUUIDMap.put("prov-scan","0000ff50-0000-1000-8000-00805f9b34fb");
190191
if(avsconfigUUID != null) {
191192
configUUIDMap.put(ConfigureAVS.AVS_CONFIG_PATH, avsconfigUUID);
192193
}

app/src/main/java/com/espressif/ui/LoginWithAmazon.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,14 @@
4848

4949
import static com.espressif.avs.ConfigureAVS.AVS_CONFIG_PATH;
5050

51+
5152
public class LoginWithAmazon extends AppCompatActivity {
5253
public static BLETransport BLE_TRANSPORT = null;
5354
private static final String TAG = "Espressif::" + LoginWithAmazon.class.getSimpleName();
54-
public Session session;
5555
final Security security = new Security1("abcd1234");
5656
public Transport transport;
57+
public Session session;
58+
5759
public String[] DeviceDetails = new String[3];
5860
int galat_hai =0;
5961
@Override
@@ -91,13 +93,13 @@ public void onClick(View v) {
9193
@Override
9294
public void LoginSucceeded(String clientId, String authCode, String redirectUri, String codeVerifier) {
9395
ProvisionActivity.BLE_TRANSPORT = BLE_TRANSPORT;
94-
Intent launchProvisionInstructions = new Intent(getApplicationContext(), ProvisionActivity.class);
96+
Intent launchProvisionInstructions = new Intent(getApplicationContext(), WiFiScanList.class);
9597
launchProvisionInstructions.putExtras(getIntent());
9698
launchProvisionInstructions.putExtra(ConfigureAVS.CLIENT_ID_KEY, clientId);
9799
launchProvisionInstructions.putExtra(ConfigureAVS.AUTH_CODE_KEY, authCode);
98100
launchProvisionInstructions.putExtra(ConfigureAVS.REDIRECT_URI_KEY, redirectUri);
99101
launchProvisionInstructions.putExtra(ConfigureAVS.CODE_VERIFIER_KEY, codeVerifier);
100-
102+
// launchProvisionInstructions.putExtra("Session",session);
101103
startActivityForResult(launchProvisionInstructions, Provision.REQUEST_PROVISIONING_CODE);
102104
}
103105

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class MainActivity extends AppCompatActivity {
5252
private static final String PASSPHRASE = "Zoey2611";
5353

5454
private String clientId, authCode, redirectUri, codeVerifier;
55-
private String PRODUCT_ID, CODE_VERIFIER, POP, BASE_URL, NETWORK_NAME_PREFIX, SERVICE_UUID, SESSION_UUID, CONFIG_UUID, AVS_CONFIG_UUID, DEVICE_NAME_PREFIX;
55+
private String PRODUCT_ID, CODE_VERIFIER, POP, BASE_URL, NETWORK_NAME_PREFIX, SERVICE_UUID, SESSION_UUID, CONFIG_UUID, AVS_CONFIG_UUID, DEVICE_NAME_PREFIX, WIFISCAN_CONFIG_UUID;
5656

5757
private void ProvisionWithDataApis() {
5858
final Activity thisActivity = this;
@@ -67,7 +67,7 @@ private void ProvisionWithDataApis() {
6767
HashMap<String, String> configUUIDMap = new HashMap<>();
6868
configUUIDMap.put(Provision.PROVISIONING_CONFIG_PATH, CONFIG_UUID);
6969
configUUIDMap.put(ConfigureAVS.AVS_CONFIG_PATH, AVS_CONFIG_UUID);
70-
70+
configUUIDMap.put("prov-scan",WIFISCAN_CONFIG_UUID);
7171
final BLETransport bleTransport = new BLETransport(this,
7272
UUID.fromString(SERVICE_UUID),
7373
UUID.fromString(SESSION_UUID),
@@ -142,6 +142,7 @@ protected void onCreate(Bundle savedInstanceState) {
142142
SESSION_UUID = getResources().getString(R.string.ble_session_uuid);
143143
CONFIG_UUID = getResources().getString(R.string.ble_config_uuid);
144144
AVS_CONFIG_UUID = getResources().getString(R.string.ble_avsconfig_uuid);
145+
WIFISCAN_CONFIG_UUID = "0000ff50-0000-1000-8000-00805f9b34fb";
145146
DEVICE_NAME_PREFIX = getResources().getString(R.string.ble_device_name_prefix);
146147

147148
final String transportVersion, securityVersion;
@@ -173,6 +174,7 @@ public void onClick(View view) {
173174
config.put(BLETransport.SESSION_UUID_KEY, SESSION_UUID);
174175
config.put(BLETransport.CONFIG_UUID_KEY, CONFIG_UUID);
175176
config.put(ConfigureAVS.AVS_CONFIG_UUID_KEY, AVS_CONFIG_UUID);
177+
config.put("prov-scan",WIFISCAN_CONFIG_UUID);
176178
config.put(BLETransport.DEVICE_NAME_PREFIX_KEY, DEVICE_NAME_PREFIX);
177179

178180
Provision.showProvisioningWithAmazonUI(thisActivity,
@@ -195,6 +197,7 @@ public void onClick(View view) {
195197
config.put(BLETransport.SESSION_UUID_KEY, SESSION_UUID);
196198
config.put(BLETransport.CONFIG_UUID_KEY, CONFIG_UUID);
197199
config.put(BLETransport.DEVICE_NAME_PREFIX_KEY, DEVICE_NAME_PREFIX);
200+
198201
Provision.showProvisioningUI(thisActivity, config);
199202
}
200203
});

app/src/main/java/com/espressif/ui/ProvisionActivity.java

+40-29
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import android.view.View;
2626
import android.widget.Button;
2727
import android.widget.EditText;
28+
import android.widget.TextView;
2829
import android.widget.Toast;
2930

3031
import com.espressif.avs.ConfigureAVS;
@@ -57,6 +58,7 @@ public class ProvisionActivity extends AppCompatActivity {
5758
private String authCode;
5859
private String redirectUri;
5960
private String codeVerifier;
61+
private TextView ssidInput;
6062

6163
@Override
6264
protected void onCreate(Bundle savedInstanceState) {
@@ -66,7 +68,14 @@ protected void onCreate(Bundle savedInstanceState) {
6668
toolbar.setTitle(R.string.provision_activity_title);
6769
setSupportActionBar(toolbar);
6870

71+
6972
Intent intent = getIntent();
73+
final String WiFiSSID = intent.getStringExtra(Provision.PROVISIONING_WIFI_SSID);
74+
ssidInput = findViewById(R.id.ssid_input_layout);
75+
ssidInput.setText(WiFiSSID);
76+
ssid = WiFiSSID;
77+
Log.d("ProvisionActivity","Selected AP -"+WiFiSSID);
78+
7079
final String pop = intent.getStringExtra(Provision.CONFIG_PROOF_OF_POSSESSION_KEY);
7180
final String baseUrl = intent.getStringExtra(Provision.CONFIG_BASE_URL_KEY);
7281
final String transportVersion = intent.getStringExtra(Provision.CONFIG_TRANSPORT_KEY);
@@ -82,24 +91,24 @@ protected void onCreate(Bundle savedInstanceState) {
8291
final String avsconfigUUID = intent.getStringExtra(ConfigureAVS.AVS_CONFIG_UUID_KEY);
8392
final String deviceNamePrefix = intent.getStringExtra(BLETransport.DEVICE_NAME_PREFIX_KEY);
8493

85-
final EditText ssidInput = findViewById(R.id.ssid_input);
86-
ssidInput.addTextChangedListener(new TextWatcher() {
87-
@Override
88-
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
89-
90-
}
9194

92-
@Override
93-
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
94-
ssid = charSequence.toString().trim();
95-
validateForm();
96-
}
97-
98-
@Override
99-
public void afterTextChanged(Editable editable) {
100-
101-
}
102-
});
95+
// ssidInput.addTextChangedListener(new TextWatcher() {
96+
// @Override
97+
// public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
98+
// ssidInput.setText(WiFiSSID);
99+
// }
100+
//
101+
// @Override
102+
// public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
103+
// ssid = charSequence.toString().trim();
104+
// validateForm();
105+
// }
106+
//
107+
// @Override
108+
// public void afterTextChanged(Editable editable) {
109+
//
110+
// }
111+
// });
103112

104113
final EditText passphraseInput = findViewById(R.id.password_input);
105114
passphraseInput.addTextChangedListener(new TextWatcher() {
@@ -111,7 +120,7 @@ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2)
111120
@Override
112121
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
113122
passphrase = charSequence.toString().trim();
114-
validateForm();
123+
// validateForm();
115124
}
116125

117126
@Override
@@ -120,12 +129,13 @@ public void afterTextChanged(Editable editable) {
120129
}
121130
});
122131

123-
final Button provision = findViewById(R.id.provision_button);
132+
final Button provisionButton = findViewById(R.id.provision_button);
133+
provisionButton.setEnabled(true);
124134
final Activity thisActivity = this;
125-
provision.setOnClickListener(new View.OnClickListener() {
135+
provisionButton.setOnClickListener(new View.OnClickListener() {
126136
@Override
127137
public void onClick(View view) {
128-
toggleFormState(false);
138+
// toggleFormState(false);
129139

130140
final Security security;
131141
if (securityVersion.equals(Provision.CONFIG_SECURITY_SECURITY1)) {
@@ -145,6 +155,7 @@ public void onClick(View view) {
145155
if(avsconfigUUID != null) {
146156
configUUIDMap.put(ConfigureAVS.AVS_CONFIG_PATH, avsconfigUUID);
147157
}
158+
configUUIDMap.put("prov-scan","0000ff50-0000-1000-8000-00805f9b34fb");
148159
final BLETransport bleTransport = new BLETransport(thisActivity,
149160
UUID.fromString(deviceUUID),
150161
UUID.fromString(sessionUUID),
@@ -348,28 +359,28 @@ public void run() {
348359
}
349360

350361
private void validateForm() {
351-
Button provision = findViewById(R.id.provision_button);
362+
Button provisionButton = findViewById(R.id.provision_button);
352363

353364
boolean enabled = this.ssid != null &&
354365
this.ssid.length() > 0;
355-
provision.setEnabled(enabled);
366+
provisionButton.setEnabled(enabled);
356367
}
357368

358369
private void toggleFormState(boolean isEnabled) {
359370
final View loadingIndicator = findViewById(R.id.progress_indicator);
360-
final EditText ssidInput = findViewById(R.id.ssid_input);
371+
361372
final EditText passphraseInput = findViewById(R.id.password_input);
362-
final Button provision = findViewById(R.id.provision_button);
373+
final Button provisionButton = findViewById(R.id.provision_button);
363374

364375
if (isEnabled) {
365376
loadingIndicator.setVisibility(View.GONE);
366-
provision.setEnabled(true);
367-
ssidInput.setEnabled(true);
377+
provisionButton.setEnabled(true);
378+
368379
passphraseInput.setEnabled(true);
369380
} else {
370381
loadingIndicator.setVisibility(View.VISIBLE);
371-
provision.setEnabled(false);
372-
ssidInput.setEnabled(false);
382+
provisionButton.setEnabled(false);
383+
373384
passphraseInput.setEnabled(false);
374385
}
375386
}

0 commit comments

Comments
 (0)