Skip to content

Commit 83f85ff

Browse files
author
David Graeff
committed
buy fragment. scenes are executable again. crashes fixed. fix automatic first setup (save credentials etc). Refactor DeviceQuery.
1 parent 15f85d9 commit 83f85ff

File tree

87 files changed

+982
-568
lines changed

Some content is hidden

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

87 files changed

+982
-568
lines changed

NetPowerctrl.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</configuration>
99
</facet>
1010
</component>
11-
<component name="NewModuleRootManager" inherit-compiler-output="true">
11+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
1212
<exclude-output />
1313
<content url="file://$MODULE_DIR$">
1414
<excludeFolder url="file://$MODULE_DIR$/.gradle" />

app/app.iml

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@
1212
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
1313
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
1414
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
15-
<option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
1615
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
1716
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
18-
<option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugAndroidTestSources" />
17+
<afterSyncTasks>
18+
<task>generateDebugAndroidTestSources</task>
19+
<task>generateDebugSources</task>
20+
</afterSyncTasks>
1921
<option name="ALLOW_USER_CONFIGURATION" value="false" />
2022
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
2123
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
@@ -24,7 +26,7 @@
2426
</configuration>
2527
</facet>
2628
</component>
27-
<component name="NewModuleRootManager" inherit-compiler-output="false">
29+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
2830
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
2931
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
3032
<exclude-output />
@@ -71,12 +73,12 @@
7173
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
7274
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
7375
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.0.0/jars" />
74-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/cardview-v7/22.0.0/jars" />
75-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/palette-v7/22.0.0/jars" />
76-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.0.0/jars" />
77-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/22.0.0/jars" />
78-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/jars" />
79-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.github.gabrielemariotti.changeloglib/library/1.5.1/jars" />
76+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/cardview-v7/22.2.0/jars" />
77+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/palette-v7/22.2.0/jars" />
78+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.2.0/jars" />
79+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/22.2.0/jars" />
80+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.0/jars" />
81+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.github.gabrielemariotti.changeloglib/library/1.5.2/jars" />
8082
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.github.rey5137/material/1.1.0/jars" />
8183
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.wefika/flowlayout/0.3.4/jars" />
8284
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/jp.wasabeef/recyclerview-animators/1.2.0/jars" />
@@ -98,21 +100,21 @@
98100
<orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
99101
<orderEntry type="sourceFolder" forTests="false" />
100102
<orderEntry type="library" exported="" name="appcompat-v7-22.0.0" level="project" />
103+
<orderEntry type="library" exported="" name="recyclerview-v7-22.2.0" level="project" />
101104
<orderEntry type="library" exported="" name="recyclerview-animators-1.2.0" level="project" />
102105
<orderEntry type="library" exported="" name="material-1.1.0" level="project" />
103-
<orderEntry type="library" exported="" name="recyclerview-v7-22.0.0" level="project" />
104-
<orderEntry type="library" exported="" name="support-v4-22.0.0" level="project" />
105-
<orderEntry type="library" exported="" name="palette-v7-22.0.0" level="project" />
106+
<orderEntry type="library" exported="" name="support-annotations-22.2.0" level="project" />
107+
<orderEntry type="library" exported="" name="support-v4-22.2.0" level="project" />
106108
<orderEntry type="library" exported="" name="acra-4.6.2" level="project" />
107-
<orderEntry type="library" exported="" name="support-annotations-22.0.0" level="project" />
108109
<orderEntry type="library" exported="" name="ndeftools-1.2.4" level="project" />
109110
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" />
110111
<orderEntry type="library" exported="" name="zip4j-1.3.2" level="project" />
111-
<orderEntry type="library" exported="" name="library-1.5.1" level="project" />
112-
<orderEntry type="library" exported="" name="support-v13-22.0.0" level="project" />
112+
<orderEntry type="library" exported="" name="palette-v7-22.2.0" level="project" />
113+
<orderEntry type="library" exported="" name="library-1.5.2" level="project" />
113114
<orderEntry type="library" exported="" name="flowlayout-0.3.4" level="project" />
115+
<orderEntry type="library" exported="" name="support-v13-22.2.0" level="project" />
114116
<orderEntry type="library" exported="" scope="TEST" name="junit-4.11" level="project" />
115117
<orderEntry type="library" exported="" name="ndeftools-util-1.2.4" level="project" />
116-
<orderEntry type="library" exported="" name="cardview-v7-22.0.0" level="project" />
118+
<orderEntry type="library" exported="" name="cardview-v7-22.2.0" level="project" />
117119
</component>
118120
</module>

app/build.gradle

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ android {
1616
defaultConfig {
1717
minSdkVersion 17
1818
targetSdkVersion 22
19-
versionCode 123
20-
versionName "8.3"
19+
versionCode 125
20+
versionName "8.5"
2121
applicationId appID
2222
testApplicationId "oly.netpowerctrl.tests"
2323
testInstrumentationRunner "android.test.InstrumentationTestRunner"
@@ -94,10 +94,10 @@ dependencies {
9494
//compile 'com.google.android.gms:play-services:5.2.08'
9595
//noinspection GradleDependency
9696
compile 'com.android.support:appcompat-v7:22.0.0'
97-
compile 'com.android.support:support-v13:22.0.0'
98-
compile 'com.android.support:recyclerview-v7:22.0.0'
99-
compile 'com.android.support:palette-v7:22.0.0'
100-
compile 'com.android.support:cardview-v7:22.0.0'
97+
compile 'com.android.support:support-v13:22.2.0'
98+
compile 'com.android.support:recyclerview-v7:22.2.0'
99+
compile 'com.android.support:palette-v7:22.2.0'
100+
compile 'com.android.support:cardview-v7:22.2.0'
101101
compile('com.github.rey5137:material:1.1.0') {
102102
exclude group: 'com.google.android'
103103
exclude group: 'com.android.support'
@@ -110,7 +110,7 @@ dependencies {
110110
exclude group: 'com.google.android'
111111
exclude group: 'com.android.support'
112112
}
113-
compile('com.github.gabrielemariotti.changeloglib:library:1.5.1') {
113+
compile('com.github.gabrielemariotti.changeloglib:library:1.5.2') {
114114
exclude group: 'com.google.android'; exclude group: 'com.android.support'
115115
}
116116
compile('ch.acra:acra:4.6.2') {

app/proguard-rules-debug.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
-dontobfuscate
55
-verbose
66

7-
-assumenosideeffects class oly.netpowerctrl.plugin.** { *; }
8-
97
-keep class oly.netpowerctrl.debug.* {
108
*;
11-
}
9+
}
10+
-dontwarn android.support.v4.**

app/src/main/java/oly/netpowerctrl/devices/Credentials.java renamed to app/src/main/java/oly/netpowerctrl/credentials/Credentials.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.devices;
1+
package oly.netpowerctrl.credentials;
22

33
import android.support.annotation.NonNull;
44
import android.util.JsonReader;

app/src/main/java/oly/netpowerctrl/devices/CredentialsCollection.java renamed to app/src/main/java/oly/netpowerctrl/credentials/CredentialsCollection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.devices;
1+
package oly.netpowerctrl.credentials;
22

33
import android.os.Looper;
44
import android.support.annotation.NonNull;

app/src/main/java/oly/netpowerctrl/devices/CredentialsDialog.java renamed to app/src/main/java/oly/netpowerctrl/credentials/CredentialsDialog.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.devices;
1+
package oly.netpowerctrl.credentials;
22

33
import android.app.DialogFragment;
44
import android.os.Bundle;

app/src/main/java/oly/netpowerctrl/devices/TestCredentials.java renamed to app/src/main/java/oly/netpowerctrl/credentials/TestCredentials.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.devices;
1+
package oly.netpowerctrl.credentials;
22

33
import android.support.annotation.NonNull;
44
import android.support.annotation.Nullable;
@@ -7,6 +7,7 @@
77

88
import oly.netpowerctrl.App;
99
import oly.netpowerctrl.data.DataService;
10+
import oly.netpowerctrl.data.query.JustQueryDevice;
1011
import oly.netpowerctrl.executables.Executable;
1112
import oly.netpowerctrl.executables.ExecutableAndCommand;
1213
import oly.netpowerctrl.executables.ExecutableCollection;
@@ -19,17 +20,17 @@
1920
* Use this class for testing device settings. Results are propagated via the onTestCredentialsResult interface.
2021
* The EditDeviceInterface is also implemented so this can be returned by the anel plugin for editing devices.
2122
*/
22-
public class TestCredentials implements DevicesObserver.onDevicesObserverFinished, onCollectionUpdated<ExecutableCollection, Executable> {
23+
public class TestCredentials implements JustQueryDevice.onDevicesObserverFinished, onCollectionUpdated<ExecutableCollection, Executable> {
2324
private TestStates test_state = TestStates.TEST_INIT;
2425
private Credentials credentials;
2526
private Executable observedExecutable = null;
2627
private onTestCredentialsResult listener = null;
2728

2829
@Override
29-
public void onObserverJobFinished(DevicesObserver devicesObserver) {
30+
public void onObserverJobFinished(JustQueryDevice justQueryDevice) {
3031
final DataService dataService = DataService.getService();
3132
//Log.w("TestCredentials", "finished test " + credentials.reachableState().name() + " " + test_state.name());
32-
if (devicesObserver.isAllTimedOut()) {
33+
if (justQueryDevice.isAllTimedOut()) {
3334
if (listener != null)
3435
listener.testFinished(test_state, credentials);
3536
test_state = TestStates.TEST_INIT;
@@ -50,11 +51,10 @@ public void run() {
5051
testTimeout(dataService);
5152
}
5253
}, 2000);
53-
// We first toggle the current value manually and then issue a toggle request to the device.
54-
// This should not change the actual device state, but will cause an update signal of the
54+
// setHasChanged should not change the actual device state, but will cause an update signal of the
5555
// received and "changed" executable (in updated(...)).
56-
observedExecutable.current_value = observedExecutable.getCurrentValueToggled();
57-
observedExecutable.execute(dataService, ExecutableAndCommand.TOGGLE, null);
56+
observedExecutable.setHasChanged();
57+
observedExecutable.execute(dataService, ExecutableAndCommand.NOOP, null);
5858
} else {
5959
test_state = TestStates.TEST_INIT;
6060
if (listener != null)

app/src/main/java/oly/netpowerctrl/devices/TestStates.java renamed to app/src/main/java/oly/netpowerctrl/credentials/TestStates.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.devices;
1+
package oly.netpowerctrl.credentials;
22

33
/**
44
* Created by david on 27.04.15.

app/src/main/java/oly/netpowerctrl/devices/onTestCredentialsResult.java renamed to app/src/main/java/oly/netpowerctrl/credentials/onTestCredentialsResult.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.devices;
1+
package oly.netpowerctrl.credentials;
22

33
/**
44
* Created by david on 05.09.14.

app/src/main/java/oly/netpowerctrl/data/AbstractBasePlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.ArrayList;
99
import java.util.List;
1010

11-
import oly.netpowerctrl.devices.Credentials;
11+
import oly.netpowerctrl.credentials.Credentials;
1212
import oly.netpowerctrl.executables.Executable;
1313
import oly.netpowerctrl.executables.ExecutableAndCommand;
1414
import oly.netpowerctrl.executables.onNameChangeResult;

app/src/main/java/oly/netpowerctrl/devices/AutomaticSetup.java renamed to app/src/main/java/oly/netpowerctrl/data/AutomaticSetup.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package oly.netpowerctrl.devices;
1+
package oly.netpowerctrl.data;
22

33
import android.os.Handler;
44
import android.os.Looper;
@@ -14,9 +14,11 @@
1414

1515
import oly.netpowerctrl.App;
1616
import oly.netpowerctrl.R;
17-
import oly.netpowerctrl.data.AbstractBasePlugin;
18-
import oly.netpowerctrl.data.DataService;
19-
import oly.netpowerctrl.data.onServiceReady;
17+
import oly.netpowerctrl.credentials.Credentials;
18+
import oly.netpowerctrl.credentials.CredentialsCollection;
19+
import oly.netpowerctrl.credentials.TestCredentials;
20+
import oly.netpowerctrl.credentials.TestStates;
21+
import oly.netpowerctrl.credentials.onTestCredentialsResult;
2022
import oly.netpowerctrl.executables.Executable;
2123
import oly.netpowerctrl.groups.Group;
2224
import oly.netpowerctrl.utils.AnimationController;
@@ -51,6 +53,7 @@ public void handleMessage(Message msg) {
5153
}
5254
};
5355
//private View item;
56+
private boolean isRefreshing = false;
5457

5558
public AutomaticSetup(Button button, TextView find_device_status, View welcome_text) {
5659
this.button = button;
@@ -195,4 +198,18 @@ private void updateStatusTextWithUnconfiguredNumber() {
195198
button.setText(App.getAppString(R.string.automatic_configuration));
196199
}
197200
}
201+
202+
public void refresh() {
203+
if (isRunning || isRefreshing) return;
204+
isRefreshing = true;
205+
find_device_status.setText(App.getAppString(R.string.automatic_refreshing_devices));
206+
App.getMainThreadHandler().postDelayed(new Runnable() {
207+
@Override
208+
public void run() {
209+
isRefreshing = false;
210+
updateStatusTextWithUnconfiguredNumber();
211+
}
212+
}, 3000);
213+
dataService.detectDevices();
214+
}
198215
}

app/src/main/java/oly/netpowerctrl/data/DataService.java

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@
1616
import java.util.WeakHashMap;
1717

1818
import oly.netpowerctrl.App;
19+
import oly.netpowerctrl.credentials.Credentials;
20+
import oly.netpowerctrl.credentials.CredentialsCollection;
1921
import oly.netpowerctrl.data.query.DataQueryCompletedObserver;
2022
import oly.netpowerctrl.data.query.DataQueryRefreshObserver;
23+
import oly.netpowerctrl.data.query.DeviceQuery;
24+
import oly.netpowerctrl.data.query.DeviceQueryInterface;
25+
import oly.netpowerctrl.data.query.JustQueryDevice;
2126
import oly.netpowerctrl.data.query.onDataQueryCompleted;
22-
import oly.netpowerctrl.devices.Credentials;
23-
import oly.netpowerctrl.devices.CredentialsCollection;
24-
import oly.netpowerctrl.devices.DeviceQuery;
25-
import oly.netpowerctrl.devices.DevicesObserver;
2627
import oly.netpowerctrl.executables.ExecutableCollection;
2728
import oly.netpowerctrl.groups.GroupCollection;
2829
import oly.netpowerctrl.ioconnection.DeviceIOConnections;
@@ -333,6 +334,7 @@ public void clearDataStorage() {
333334
*/
334335
public void addToConfiguredDevices(Credentials credentials) {
335336
credentials.setConfigured(true);
337+
credentials.setHasChanged();
336338
this.credentials.put(credentials);
337339
ReachabilityStates r = connections.save(credentials.deviceUID);
338340
executables.notifyReachability(credentials.deviceUID, r, true);
@@ -355,8 +357,12 @@ public boolean onDataQueryFinished(DataService dataService) {
355357
/**
356358
* Refreshes given device.
357359
*/
358-
public void refreshExistingDevice(Credentials credentials, DevicesObserver.onDevicesObserverFinished callback) {
359-
deviceQuery.addDeviceObserver(new DevicesObserver(credentials, callback));
360+
public void refreshExistingDevice(Credentials credentials, JustQueryDevice.onDevicesObserverFinished callback) {
361+
deviceQuery.addDeviceObserver(new JustQueryDevice(credentials, callback));
362+
}
363+
364+
public void sendAndObserve(DeviceQueryInterface deviceQueryInterface) {
365+
deviceQuery.addDeviceObserver(deviceQueryInterface);
360366
}
361367

362368
/**
@@ -365,14 +371,14 @@ public void refreshExistingDevice(Credentials credentials, DevicesObserver.onDev
365371
public void refreshExistingDevices() {
366372
if (observersStartStopRefresh.isRefreshing()) return;
367373
observersStartStopRefresh.onRefreshStateChanged(true);
368-
deviceQuery.addDeviceObserver(new DevicesObserver(credentials.getItems().values(), new DevicesObserver.onDevicesObserverFinished() {
374+
deviceQuery.addDeviceObserver(new JustQueryDevice(credentials.getItems().values(), new JustQueryDevice.onDevicesObserverFinished() {
369375
@Override
370-
public void onObserverJobFinished(DevicesObserver devicesObserver) {
371-
Logging.getInstance().logEnergy("...fertig\n" + " Timeout: " + String.valueOf(devicesObserver.timedOutDevices().size()));
376+
public void onObserverJobFinished(JustQueryDevice justQueryDevice) {
377+
Logging.getInstance().logEnergy("...fertig\n" + " Timeout: " + String.valueOf(justQueryDevice.timedOutDevices().size()));
372378
observersDataQueryCompleted.onDataQueryFinished(DataService.this);
373379
observersStartStopRefresh.onRefreshStateChanged(false);
374380
}
375-
}));
381+
}, false));
376382
}
377383

378384
/**
@@ -381,16 +387,18 @@ public void onObserverJobFinished(DevicesObserver devicesObserver) {
381387
public void detectDevices() {
382388
if (observersStartStopRefresh.isRefreshing()) return;
383389
observersStartStopRefresh.onRefreshStateChanged(true);
390+
391+
discoverExtensions();
392+
384393
credentials.clearNotConfigured();
385-
deviceQuery.addDeviceObserver(new DevicesObserver(new DevicesObserver.onDevicesObserverFinished() {
394+
deviceQuery.addDeviceObserver(new JustQueryDevice(credentials.getItems().values(), new JustQueryDevice.onDevicesObserverFinished() {
386395
@Override
387-
public void onObserverJobFinished(DevicesObserver devicesObserver) {
388-
Logging.getInstance().logEnergy("...fertig\n" + " Timeout: " + String.valueOf(devicesObserver.timedOutDevices().size()));
396+
public void onObserverJobFinished(JustQueryDevice justQueryDevice) {
397+
Logging.getInstance().logEnergy("...fertig\n" + " Timeout: " + String.valueOf(justQueryDevice.timedOutDevices().size()));
389398
observersDataQueryCompleted.onDataQueryFinished(DataService.this);
390399
observersStartStopRefresh.onRefreshStateChanged(false);
391400
}
392-
}));
393-
discoverExtensions();
401+
}, true));
394402
for (AbstractBasePlugin abstractBasePlugin : plugins) {
395403
abstractBasePlugin.requestData();
396404
}

app/src/main/java/oly/netpowerctrl/data/LoadStoreCollections.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
import java.io.IOException;
1111

1212
import oly.netpowerctrl.App;
13+
import oly.netpowerctrl.credentials.Credentials;
1314
import oly.netpowerctrl.data.storage_container.CollectionStorage;
14-
import oly.netpowerctrl.devices.Credentials;
1515
import oly.netpowerctrl.executables.ExecutableFabric;
1616
import oly.netpowerctrl.groups.Group;
1717
import oly.netpowerctrl.ioconnection.IOConnectionFabric;

0 commit comments

Comments
 (0)