Skip to content

Commit 1abbb11

Browse files
committedFeb 22, 2018
* Fix for update manager crash due to race condition
1 parent a9d65bf commit 1abbb11

File tree

7 files changed

+33
-36
lines changed

7 files changed

+33
-36
lines changed
 

‎app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ repositories {
4040
def versionMajor = 1
4141
def versionMinor = 4
4242
def versionPatch = 7
43-
def versionBuild = 0 // bump for dog food builds, public betas, etc.
43+
def versionBuild = 2 // bump for dog food builds, public betas, etc.
4444

4545
def ALARM_CODE() {
4646
Properties properties = new Properties()

‎app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/BaseActivity.kt

+6-13
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,6 @@ abstract class BaseActivity : DaggerAppCompatActivity() {
7777
super.onCreate(savedInstanceState)
7878
setContentView(getLayoutId())
7979
viewModel = ViewModelProviders.of(this, viewModelFactory).get(MessageViewModel::class.java)
80-
81-
UpdateManager()
82-
.setPolicy(UpdatePolicy.Builder()
83-
.setPolicy(POLICY_CHECKS_ONLY)
84-
.setApplyDeadline(2, TimeUnit.DAYS)
85-
.build())
8680
}
8781

8882
override fun onStart(){
@@ -114,19 +108,18 @@ abstract class BaseActivity : DaggerAppCompatActivity() {
114108
// These are Android Things specific settings for setting the time, display, and update manager
115109
private fun setSystemInformation() {
116110
try {
117-
118111
ScreenManager(Display.DEFAULT_DISPLAY).setBrightnessMode(ScreenManager.BRIGHTNESS_MODE_MANUAL);
119112
ScreenManager(Display.DEFAULT_DISPLAY).setScreenOffTimeout(configuration.screenTimeout, TimeUnit.MILLISECONDS);
120113
ScreenManager(Display.DEFAULT_DISPLAY).setBrightness(configuration.screenBrightness);
121114
ScreenManager(Display.DEFAULT_DISPLAY).setDisplayDensity(configuration.screenDensity);
122115

123116
TimeManager().setTimeZone(configuration.timeZone)
124117

125-
/*
126-
UpdateManager()
127-
.setPolicy(UpdatePolicy.Builder()
128-
.setPolicy(POLICY_APPLY_AND_REBOOT)
129-
.build())
118+
UpdateManager()
119+
.setPolicy(UpdatePolicy.Builder()
120+
.setPolicy(POLICY_CHECKS_ONLY)
121+
.setApplyDeadline(2, TimeUnit.DAYS)
122+
.build())
130123

131124
UpdateManager()
132125
.addStatusListener { updateManagerStatus ->
@@ -138,7 +131,7 @@ abstract class BaseActivity : DaggerAppCompatActivity() {
138131
})
139132
.show()
140133
}
141-
}*/
134+
}
142135
} catch (e:IllegalStateException) {
143136
Timber.e(e.message)
144137
}

‎app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/activities/MainActivity.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ class MainActivity : BaseActivity(), ViewPager.OnPageChangeListener, ControlsFra
115115
.subscribeOn(Schedulers.io())
116116
.observeOn(AndroidSchedulers.mainThread())
117117
.subscribe({ state ->
118-
Timber.e("Alarm state: " + state)
119-
Timber.e("Alarm mode: " + viewModel.getAlarmMode())
118+
Timber.d("Alarm state: " + state)
119+
Timber.d("Alarm mode: " + viewModel.getAlarmMode())
120120
this@MainActivity.runOnUiThread({
121121
when (state) {
122122
AlarmUtils.STATE_DISARM,

‎app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/ControlsFragment.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ class ControlsFragment : BaseFragment() {
139139
.subscribeOn(Schedulers.io())
140140
.observeOn(AndroidSchedulers.mainThread())
141141
.subscribe({ state ->
142-
Timber.e("Alarm state: " + state)
143-
Timber.e("Alarm mode: " + viewModel.getAlarmMode())
142+
Timber.d("Alarm state: " + state)
143+
Timber.d("Alarm mode: " + viewModel.getAlarmMode())
144144
activity?.runOnUiThread(java.lang.Runnable {
145145
when (state) {
146146
AlarmUtils.STATE_ARM_AWAY -> {

‎app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/DeviceSettingsFragment.kt

+20-8
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ import android.support.v7.preference.ListPreference
2727
import android.support.v7.preference.Preference
2828
import android.support.v7.preference.Preference.OnPreferenceClickListener
2929
import android.support.v7.preference.PreferenceFragmentCompat
30+
import android.text.TextUtils
3031
import android.view.View
32+
import android.widget.Toast
3133
import com.google.android.things.device.ScreenManager
3234
import com.google.android.things.device.TimeManager
3335
import com.thanksmister.iot.mqtt.alarmpanel.R
@@ -210,16 +212,26 @@ class DeviceSettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
210212
timeZonePreference!!.summary = configuration.timeZone
211213
}
212214
PREF_DEVICE_SCREEN_DENSITY -> {
213-
val density = densityPreference!!.text.toInt()
214-
configuration.screenDensity = density
215-
densityPreference!!.summary = getString(R.string.pref_density_summary, density.toString())
216-
screenManager.setDisplayDensity(density)
215+
val value = densityPreference!!.text
216+
if(!TextUtils.isEmpty(value)) {
217+
val density = densityPreference!!.text.toInt()
218+
configuration.screenDensity = density
219+
densityPreference!!.summary = getString(R.string.pref_density_summary, density.toString())
220+
screenManager.setDisplayDensity(density)
221+
} else {
222+
Toast.makeText(activity, R.string.text_error_only_numbers, Toast.LENGTH_LONG).show()
223+
}
217224
}
218225
PREF_DEVICE_SCREEN_BRIGHTNESS -> {
219-
val brightness = brightnessPreference!!.text.toInt()
220-
configuration.screenBrightness = brightness
221-
brightnessPreference!!.summary = getString(R.string.pref_device_brightness_summary, brightness.toString())
222-
screenManager.setBrightness(brightness)
226+
val value = brightnessPreference!!.text
227+
if(!TextUtils.isEmpty(value)) {
228+
val brightness = brightnessPreference!!.text.toInt()
229+
configuration.screenBrightness = brightness
230+
brightnessPreference!!.summary = getString(R.string.pref_device_brightness_summary, brightness.toString())
231+
screenManager.setBrightness(brightness)
232+
} else {
233+
Toast.makeText(activity, R.string.text_error_only_numbers, Toast.LENGTH_LONG).show()
234+
}
223235
}
224236
PREF_DEVICE_SCREEN_TIMEOUT -> {
225237
val timeout = screenTimeoutPreference!!.value.toLong()

‎app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/MainFragment.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ class MainFragment : BaseFragment() {
111111
.subscribeOn(Schedulers.io())
112112
.observeOn(AndroidSchedulers.mainThread())
113113
.subscribe({ state ->
114-
Timber.e("Alarm state: " + state)
115-
Timber.e("Alarm mode: " + viewModel.getAlarmMode())
114+
Timber.d("Alarm state: " + state)
115+
Timber.d("Alarm mode: " + viewModel.getAlarmMode())
116116
activity?.runOnUiThread(java.lang.Runnable {
117117
when (state) {
118118
AlarmUtils.STATE_ARM_AWAY, AlarmUtils.STATE_ARM_HOME -> {

‎app/src/main/res/xml/preferences_camera.xml

-8
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
<ListPreference
3131
android:key="pref_camera_rotate"
32-
android:enabled="false"
3332
android:title="@string/preference_camera_flip_title"
3433
android:summary="@string/preference_camera_flip_summary"
3534
android:entries="@array/flip_directions"
@@ -40,31 +39,27 @@
4039
<PreferenceCategory android:title="@string/preference_mail_title">
4140

4241
<EditTextPreference
43-
android:enabled="false"
4442
android:key="pref_mail_from"
4543
android:negativeButtonText="@android:string/cancel"
4644
android:positiveButtonText="@android:string/ok"
4745
android:title="@string/preference_mail_from"
4846
android:summary="@string/preference_mail_from_summary"/>
4947

5048
<EditTextPreference
51-
android:enabled="false"
5249
android:key="pref_mail_to"
5350
android:negativeButtonText="@android:string/cancel"
5451
android:positiveButtonText="@android:string/ok"
5552
android:title="@string/preference_mail_to"
5653
android:summary="@string/preference_mail_to_summary"/>
5754

5855
<EditTextPreference
59-
android:enabled="false"
6056
android:key="pref_mail_url"
6157
android:negativeButtonText="@android:string/cancel"
6258
android:positiveButtonText="@android:string/ok"
6359
android:title="@string/preference_mail_domain"
6460
android:summary="@string/preference_mail_domain_summary"/>
6561

6662
<EditTextPreference
67-
android:enabled="false"
6863
android:key="pref_mail_api_key"
6964
android:negativeButtonText="@android:string/cancel"
7065
android:positiveButtonText="@android:string/ok"
@@ -74,23 +69,20 @@
7469
<Preference
7570
android:key="pref_mail_description"
7671
android:selectable="false"
77-
android:enabled="false"
7872
android:summary="@string/preference_mail_description" />
7973

8074
</PreferenceCategory>
8175

8276
<PreferenceCategory android:title="@string/pref_telegram_title">
8377

8478
<EditTextPreference
85-
android:enabled="false"
8679
android:key="pref_telegram_chat_id"
8780
android:negativeButtonText="@android:string/cancel"
8881
android:positiveButtonText="@android:string/ok"
8982
android:title="@string/pref_telegram_chat_id_title"
9083
android:summary="@string/pref_telegram_chat_id_summary"/>
9184

9285
<EditTextPreference
93-
android:enabled="false"
9486
android:key="pref_telegram_token"
9587
android:negativeButtonText="@android:string/cancel"
9688
android:positiveButtonText="@android:string/ok"

0 commit comments

Comments
 (0)