Skip to content

Commit edacae9

Browse files
author
David Graeff
committed
new icons; improved design; fixed bugs
1 parent cb4572d commit edacae9

File tree

81 files changed

+2331
-403
lines changed

Some content is hidden

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

81 files changed

+2331
-403
lines changed

app/app.iml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@
7070
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
7171
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
7272
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
73+
<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" />
80+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.github.rey5137/material/1.1.0/jars" />
81+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.wefika/flowlayout/0.3.4/jars" />
82+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/jp.wasabeef/recyclerview-animators/1.2.0/jars" />
7383
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
7484
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
7585
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />

app/hs_err_pid12500.log

Lines changed: 722 additions & 0 deletions
Large diffs are not rendered by default.

app/hs_err_pid15286.log

Lines changed: 723 additions & 0 deletions
Large diffs are not rendered by default.

app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,11 @@
6464
android:name=".main.MainActivity"
6565
android:configChanges="orientation|screenSize|keyboardHidden|layoutDirection"
6666
android:label="@string/app_name"
67-
android:launchMode="singleTask"
6867
android:theme="@style/Theme.StartTheme">
6968
<intent-filter>
7069
<action android:name="android.intent.action.MAIN" />
7170
<category android:name="android.intent.category.LAUNCHER" />
7271
</intent-filter>
73-
<intent-filter>
74-
<action android:name="android.intent.action.MAIN" />
75-
</intent-filter>
7672
</activity>
7773

7874
<activity
@@ -94,15 +90,17 @@
9490

9591
<activity
9692
android:name="oly.netpowerctrl.widget.ConfigExecutableActivity"
97-
android:configChanges="orientation|screenSize|keyboardHidden|layoutDirection">
93+
android:configChanges="orientation|screenSize|keyboardHidden|layoutDirection"
94+
android:theme="@style/Theme.StartTheme">
9895
<intent-filter>
9996
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
10097
</intent-filter>
10198
</activity>
10299

103100
<activity
104101
android:name="oly.netpowerctrl.widget.ConfigGroupActivity"
105-
android:configChanges="orientation|screenSize|keyboardHidden|layoutDirection">
102+
android:configChanges="orientation|screenSize|keyboardHidden|layoutDirection"
103+
android:theme="@style/Theme.StartTheme">
106104
<intent-filter>
107105
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
108106
</intent-filter>
@@ -133,7 +131,7 @@
133131
android:description="@string/shortcut_existing_executable_desc"
134132
android:icon="@drawable/netpowerctrl"
135133
android:label="@string/shortcut_existing_executable"
136-
android:theme="@style/Theme.StartTheme"
134+
android:theme="@android:style/Theme.Dialog"
137135
android:windowSoftInputMode="stateHidden">
138136
<intent-filter>
139137
<action android:name="android.intent.action.CREATE_SHORTCUT" />

app/src/main/java/oly/netpowerctrl/devices/Credentials.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,18 @@ public String getUid() {
3939
return deviceUID;
4040
}
4141

42+
private int computeChangedCode() {
43+
return deviceName.hashCode() + version.hashCode() + userName.hashCode() + password.hashCode() + (mConfigured ? 1 : 0);
44+
}
45+
4246
@Override
4347
public boolean hasChanged() {
44-
return mLastHashCode != (deviceName.hashCode() + version.hashCode() + userName.hashCode() + password.hashCode());
48+
return mLastHashCode != computeChangedCode();
4549
}
4650

4751
@Override
4852
public void resetChanged() {
49-
mLastHashCode = deviceName.hashCode() + version.hashCode() + userName.hashCode() + password.hashCode();
53+
mLastHashCode = computeChangedCode();
5054
}
5155

5256
public boolean isConfigured() {

app/src/main/java/oly/netpowerctrl/devices/DeviceQuery.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,26 @@ public class DeviceQuery {
3232
private static final int MSG_RECHECK_MINIMUM_TIME = 5;
3333
@SuppressWarnings("unused")
3434
private static final String TAG = "DeviceQuery";
35+
private static int instances = 0;
3536
private final DataService dataService;
3637
private List<DevicesObserver> devicesObserverList = new ArrayList<>();
3738
private RepeatHandler handler;
3839
private MainHandler mainHandler = new MainHandler();
3940
private Thread thread = new Thread("DeviceObserverBase") {
4041
@Override
4142
public void run() {
43+
if (++instances != 1)
44+
throw new RuntimeException("Only one instance for DeviceQuery allowed!");
45+
4246
Looper.prepare();
4347
handler = new RepeatHandler(Looper.myLooper());
4448
Looper.loop();
4549
}
4650
};
4751

4852
public DeviceQuery(DataService dataService) {
49-
thread.start();
5053
this.dataService = dataService;
54+
thread.start();
5155
}
5256

5357
/**
@@ -101,6 +105,7 @@ protected void doAction(Credentials credentials) {
101105
// remove from list of devices to observe and notify observers
102106
deviceFailed(credentials);
103107

108+
l.setReachability(ReachabilityStates.NotReachable);
104109
l.setStatusMessage(App.getAppString(R.string.device_energysave_mode));
105110
dataService.connections.put(l);
106111
return;
@@ -125,6 +130,7 @@ protected void doAction(Credentials credentials) {
125130
* can be removed.
126131
*/
127132
private void deviceSuccess(Credentials credentials) {
133+
if (Thread.currentThread() != thread) throw new RuntimeException();
128134
handler.removeMessages(MSG_REQUEST, credentials);
129135
for (DevicesObserver devicesObserver : devicesObserverList) {
130136
if (!devicesObserver.credentialsList.containsKey(credentials.deviceUID)) continue;
@@ -135,6 +141,7 @@ private void deviceSuccess(Credentials credentials) {
135141
}
136142

137143
private void checkObserverFinished(DevicesObserver devicesObserver) {
144+
if (Thread.currentThread() != thread) throw new RuntimeException();
138145
if (!devicesObserver.credentialsList.isEmpty()) return;
139146

140147
// Remove timeouts for this observer. We will now either finish or wait for the minimum time
@@ -159,6 +166,7 @@ private void checkObserverFinished(DevicesObserver devicesObserver) {
159166
}
160167

161168
private void deviceFailed(Credentials credentials) {
169+
if (Thread.currentThread() != thread) throw new RuntimeException();
162170
handler.removeMessages(MSG_REQUEST, credentials);
163171
for (DevicesObserver devicesObserver : devicesObserverList) {
164172
if (!devicesObserver.credentialsList.containsKey(credentials.deviceUID)) continue;
@@ -169,6 +177,7 @@ private void deviceFailed(Credentials credentials) {
169177
}
170178

171179
private void devicesTimeout(DevicesObserver devicesObserver) {
180+
if (Thread.currentThread() != thread) throw new RuntimeException();
172181
handler.removeMessages(MSG_TIMEOUT, devicesObserver);
173182

174183
for (Iterator<Map.Entry<String, Credentials>> iterator = devicesObserver.credentialsList.entrySet().iterator(); iterator.hasNext(); ) {
@@ -178,6 +187,7 @@ private void devicesTimeout(DevicesObserver devicesObserver) {
178187
DeviceIOConnections l = dataService.connections.openDevice(credentials.deviceUID);
179188
if (l != null) {
180189
l.setStatusMessage(App.getAppString(R.string.device_timeout));
190+
l.setReachability(ReachabilityStates.NotReachable);
181191
dataService.connections.put(l);
182192
}
183193
}

app/src/main/java/oly/netpowerctrl/executables/Executable.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import android.support.annotation.NonNull;
44
import android.util.JsonReader;
55
import android.util.JsonWriter;
6-
import android.util.Log;
76

87
import java.io.IOException;
98
import java.io.InputStream;
@@ -315,7 +314,7 @@ public void setCredentials(Credentials credentials) {
315314
* @return Return true if the old cached state differs from the new state.
316315
*/
317316
public boolean updateCachedReachability(ReachabilityStates new_state) {
318-
Log.w("executable", "reachability " + new_state.name());
317+
//Log.w("executable", "reachability " + new_state.name());
319318
ReachabilityStates a = cached_reachabilityStates;
320319
cached_reachabilityStates = new_state;
321320
return new_state != a;

app/src/main/java/oly/netpowerctrl/executables/ExecutableCollection.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import oly.netpowerctrl.data.storage_container.CollectionOtherThreadPutHandler;
1919
import oly.netpowerctrl.devices.Credentials;
2020
import oly.netpowerctrl.network.ReachabilityStates;
21+
import oly.netpowerctrl.scenes.Scene;
2122
import oly.netpowerctrl.utils.ObserverUpdateActions;
2223

2324
/**
@@ -46,7 +47,7 @@ public Executable findByUID(String uid) {
4647
}
4748

4849
private void put_test(Executable executable) {
49-
if (executable.getUid() == null || executable.getCredentials() == null || executable.title.isEmpty())
50+
if (executable.getUid() == null || (!(executable instanceof Scene) && executable.getCredentials() == null) || executable.title.isEmpty())
5051
throw new RuntimeException();
5152
}
5253

0 commit comments

Comments
 (0)