Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
381 commits
Select commit Hold shift + click to select a range
523eabd
Eros: do don't run Handler on UI thread
MilosKozak Oct 19, 2021
eb8a83d
Eros: do don't run create on UI thread
MilosKozak Oct 19, 2021
c966dfd
do not throw exception if profile doesn't exist
MilosKozak Oct 20, 2021
aee569e
set Rx error handler
MilosKozak Oct 20, 2021
30af551
Toast for error in profile
MilosKozak Oct 21, 2021
7ed9616
Eros: insert fix
MilosKozak Oct 21, 2021
d520c45
fix interval cutting during pump sync
MilosKozak Oct 21, 2021
6ada88b
set min graph vertical labels
MilosKozak Oct 21, 2021
f4a9462
Fix typo in toast string
Philoul Oct 21, 2021
5c9cd84
Merge pull request #773 from Philoul/Fix/fixTypo
MilosKozak Oct 22, 2021
2ace719
Add Bolus Reminder to CarbsDialog
Philoul Oct 22, 2021
2eac4c9
Eros: call connectNewPump()
MilosKozak Oct 23, 2021
d9fcf61
Log app start optional
MilosKozak Oct 23, 2021
9935ff9
Automation: fix UI selection
MilosKozak Oct 23, 2021
3b30f73
fix NS profile sync
MilosKozak Oct 23, 2021
5e3db95
do not show Treatments menu without profile
MilosKozak Oct 23, 2021
22cad1a
prevent NPE
MilosKozak Oct 23, 2021
b16318d
BLECommonService improvement
MilosKozak Oct 24, 2021
c3ef4af
Fix delta
Philoul Oct 25, 2021
60c14cd
NS: Sync BolusCalculatorResult
MilosKozak Oct 25, 2021
3d94f3f
NSClient: missing initial profile workaround
MilosKozak Oct 25, 2021
4c4122c
preserve invalidated status for cgm data
MilosKozak Oct 25, 2021
8efa66f
fix TriggerProfilePercent and ProfileDialog
MilosKozak Oct 25, 2021
15c1665
NSC: hide virtual pump
MilosKozak Oct 26, 2021
da52dae
carbs info in engineering mode
MilosKozak Oct 26, 2021
c727b74
simplify NSC setting
MilosKozak Oct 26, 2021
c1290ce
stop alarm service on terminate app
MilosKozak Oct 26, 2021
c3a52c5
MDT: prevent ArrayIndexOutOfBoundsException
MilosKozak Oct 26, 2021
10078f1
call biometricPrompt on UI
MilosKozak Oct 26, 2021
15dfbe5
report 50 if reservoir level is >50
avereha Oct 26, 2021
cacdec4
Merge pull request #784 from 0pen-dash/avereha/dash-reservoir
MilosKozak Oct 26, 2021
04a104a
Merge pull request #780 from Philoul/New/BolusReminder
MilosKozak Oct 26, 2021
4616d11
Remove EatReminder/BolusReminder if Carbs/Bolus entered before remind
Philoul Oct 26, 2021
e161ef6
Draft for Dash History
Philoul Oct 23, 2021
fdcf75c
move to Kotlin
avereha Oct 24, 2021
269e94a
get history
avereha Oct 24, 2021
d1b2fa2
kotlin fixes
avereha Oct 24, 2021
80de823
kotlin
avereha Oct 24, 2021
89a6a2d
kotlin
avereha Oct 24, 2021
abfd71a
ktlintFormat
avereha Oct 24, 2021
6cd06ed
display the correct time. display type
avereha Oct 24, 2021
7a608c8
display history
avereha Oct 24, 2021
64682d0
kotlin
avereha Oct 24, 2021
75f51b1
ktlintFormat
avereha Oct 24, 2021
a51c49f
create history records on pod activation. save basal profiles to history
avereha Oct 25, 2021
45fb0a5
history updates: auto resolve history entried for activation. update …
avereha Oct 26, 2021
abc051d
fix alerts. fix display for basal rates
avereha Oct 26, 2021
735ff38
Add some color to History
vanelsberg Oct 26, 2021
784f76c
use the original date for history, not the resolved date
avereha Oct 27, 2021
7849f45
count the number of pod activations
avereha Oct 27, 2021
f967272
Add some color to History, include success state
vanelsberg Oct 27, 2021
b645185
Refactoring name
vanelsberg Oct 27, 2021
a56bdcc
AUTO: user actions & new layout
MilosKozak Oct 28, 2021
df49971
Bump dagger_version from 2.39.1 to 2.40
dependabot[bot] Oct 28, 2021
aa3e77b
Merge pull request #789 from 0pen-dash/avereha/count-dash
MilosKozak Oct 28, 2021
4702df3
Bump joda-time from 2.10.12 to 2.10.13
dependabot[bot] Oct 28, 2021
51dcfd9
Merge pull request #786 from Philoul/New/RemoveReminder
MilosKozak Oct 28, 2021
da97955
Merge pull request #793 from nightscout/dependabot/gradle/dev/dagger_…
MilosKozak Oct 28, 2021
67208d9
Merge pull request #787 from nightscout/dependabot/gradle/dev/joda-ti…
MilosKozak Oct 28, 2021
9842f5c
New Crowdin updates (#799)
MilosKozak Oct 28, 2021
1670840
2.8.2.8-dev
MilosKozak Oct 28, 2021
35a33a3
Merge branch 'dash-history' of https://github.com/0pen-dash/AndroidAP…
MilosKozak Oct 28, 2021
7365986
Merge branch '0pen-dash-dash-history' into dev
MilosKozak Oct 28, 2021
eed8aa8
fix NumberPicker in automation
MilosKozak Oct 29, 2021
414e57c
lints
MilosKozak Oct 29, 2021
8fe7e7c
report AAPS version to NSClient log
MilosKozak Oct 29, 2021
d966254
klint
vanelsberg Oct 29, 2021
6663b9d
better handle missed bg readings
MilosKozak Oct 30, 2021
1dd64b5
relocate default profile
MilosKozak Oct 30, 2021
345a57d
fix time range for carbs
MilosKozak Oct 30, 2021
3a33529
fix button text
MilosKozak Oct 30, 2021
da45219
EROS: do not run commands on UI thread
MilosKozak Oct 30, 2021
c4765b4
enable logging of EVENTS again
MilosKozak Oct 30, 2021
42daad4
EROS: so not run commands on UI thread
MilosKozak Oct 30, 2021
c68491b
fix deactivation
avereha Oct 30, 2021
63ddf99
- TBR problem fix: when TBR is cancelled, if there is TBR with Tempor…
andyrozman Oct 31, 2021
2b71bfd
hide button without active profile
MilosKozak Oct 31, 2021
ba9a5dc
better handle wrong profile
MilosKozak Oct 31, 2021
a7ce4c0
view param nullable
MilosKozak Oct 31, 2021
543719b
prevent NPE
MilosKozak Oct 31, 2021
fc36371
- trying to use old implementation (not setting type so that old one …
andyrozman Oct 31, 2021
91af48a
Merge pull request #817 from 0pen-dash/avereha/fix-deactivation
MilosKozak Nov 1, 2021
ef6270a
Merge pull request #804 from 0pen-dash/history_colors
MilosKozak Nov 1, 2021
085ff63
fix tests
MilosKozak Nov 1, 2021
5d65b34
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 1, 2021
6f6b379
fix tests
MilosKozak Nov 1, 2021
c0f12d3
Less default colors in UserEntries
Philoul Nov 1, 2021
561f88e
New Crowdin updates (#800)
MilosKozak Nov 1, 2021
33dc2ab
Bump firebase-crashlytics-gradle from 2.7.1 to 2.8.0
dependabot[bot] Nov 1, 2021
f700c22
prevent Missing BG notification on start
MilosKozak Nov 1, 2021
ba95b75
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 1, 2021
7442774
notify about wrong profiles from NS
MilosKozak Nov 1, 2021
fa23f30
lints
MilosKozak Nov 1, 2021
d530712
fix showing Save button
MilosKozak Nov 1, 2021
26186a1
Merge pull request #832 from Philoul/New/UpdateSomeUserEntryColors
MilosKozak Nov 2, 2021
b177af4
Merge pull request #825 from nightscout/dependabot/gradle/dev/com.goo…
MilosKozak Nov 2, 2021
9231a32
Bump gson from 2.8.8 to 2.8.9
dependabot[bot] Nov 2, 2021
eff59d4
Bump byteBuddyVersion from 1.11.21 to 1.11.22
dependabot[bot] Nov 2, 2021
760261e
exclude invalid profiles from ProfileSwitchDialog
MilosKozak Nov 2, 2021
bb2fced
fix NaN in statistics
MilosKozak Nov 2, 2021
ca39802
fix profile validity check
MilosKozak Nov 2, 2021
b4dec71
more profile tweaking
MilosKozak Nov 2, 2021
ff1a9b2
Do not use bus for dismissing notification from UI
MilosKozak Nov 2, 2021
2582240
fix TDD layout
MilosKozak Nov 2, 2021
87679b4
typo
MilosKozak Nov 2, 2021
bc14496
do not show notification for old TDD data
MilosKozak Nov 2, 2021
2ad7d9f
pre-sort data for rendering
MilosKozak Nov 2, 2021
e715167
hack for PL language
MilosKozak Nov 2, 2021
aea868a
2.8.2.9-dev
MilosKozak Nov 2, 2021
d07a935
fix transferring units setting
MilosKozak Nov 4, 2021
b592054
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 4, 2021
d06ae6b
resourceHelper -> rh
MilosKozak Nov 4, 2021
7b07178
EventNewHistoryData logging
MilosKozak Nov 4, 2021
756957e
resourceHelper -> rh
MilosKozak Nov 4, 2021
bf4b48d
Merge pull request #826 from nightscout/dependabot/gradle/dev/com.goo…
MilosKozak Nov 4, 2021
d1a549d
Merge pull request #824 from nightscout/dependabot/gradle/dev/byteBud…
MilosKozak Nov 4, 2021
0a798d1
disable invalid automation rule
MilosKozak Nov 4, 2021
40e034d
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 4, 2021
35c6ee3
allow profilestore units as a fallback
MilosKozak Nov 4, 2021
ae2558d
expire after specified date
MilosKozak Nov 4, 2021
ebeac72
fix storing effective profile
MilosKozak Nov 4, 2021
ae399f0
allow slower NS upload
MilosKozak Nov 4, 2021
0321d4c
treat 100% TBR as temp off
MilosKozak Nov 4, 2021
6fb83d4
PfofileSwitchDialog fix
MilosKozak Nov 5, 2021
2b021ff
BgQualityCheckPlugin
MilosKozak Nov 5, 2021
1cd2b33
New Crowdin updates (#833)
MilosKozak Nov 5, 2021
381b27d
New Crowdin updates (#851)
MilosKozak Nov 6, 2021
0d0c5e1
- reverted PumpSync changes and database changes
andyrozman Nov 6, 2021
2377733
make default sync values consistent
MilosKozak Nov 6, 2021
8ccef29
do not request location permission for nsclient
MilosKozak Nov 6, 2021
f9d24a0
log red state
MilosKozak Nov 6, 2021
175f008
fix screen refresh after unit change
MilosKozak Nov 6, 2021
f09d967
show TBR and EB tab
MilosKozak Nov 7, 2021
e14fc44
better sync TBR
MilosKozak Nov 7, 2021
0db3498
rename CommandQueue
MilosKozak Nov 7, 2021
dcf3c9c
try to fix closed BolusProggressDialog and storing carbs if bolus was…
MilosKozak Nov 7, 2021
3bbf50c
Dana-i: fix reading history
MilosKozak Nov 7, 2021
cb4b4b5
add missing pump types, hide buttons in Action tab, fix configuration…
MilosKozak Nov 7, 2021
22eb524
increase bg validity check red range to 20s
MilosKozak Nov 7, 2021
2b20aa3
fix EditQuickWizardDialog
MilosKozak Nov 7, 2021
8f3f9a7
always upload TBR absolute
MilosKozak Nov 7, 2021
5d3035c
do not cache TBE and EB for displaying
MilosKozak Nov 7, 2021
4c19b20
Fix ANR in Profile Helper by moving slow TDD calc into separate threa…
dlvoy Nov 7, 2021
7cf4db5
revert subscribe
MilosKozak Nov 7, 2021
4260dbc
Bump byteBuddyVersion from 1.11.22 to 1.12.0
dependabot[bot] Nov 8, 2021
2382eda
Merge pull request #871 from nightscout/dependabot/gradle/dev/byteBud…
MilosKozak Nov 8, 2021
21d7f7c
Merge pull request #869 from dlvoy/fix/868_anr_in_tdd_profile_helper
MilosKozak Nov 8, 2021
16bb94c
Change color from gray to green on pump reconnect icon
dlvoy Nov 8, 2021
2a2bb4e
fix storing carbs
MilosKozak Nov 8, 2021
22fced6
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 8, 2021
7e8b853
Merge pull request #877 from dlvoy/feature/876_make_reconnect_icon_green
MilosKozak Nov 8, 2021
225797f
fix units conversion
MilosKozak Nov 8, 2021
e8644a6
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 8, 2021
35c9c4d
load 36h to BG tab
MilosKozak Nov 8, 2021
c1f4a13
New Crowdin updates (#873)
MilosKozak Nov 8, 2021
7cd136b
Prevent NPE
MilosKozak Nov 8, 2021
a5955b8
catch NPE
MilosKozak Nov 8, 2021
c419c1f
2.8.2.10-dev
MilosKozak Nov 8, 2021
64634e3
New translations strings.xml (Polish) (#878)
MilosKozak Nov 8, 2021
ea60e21
fix crash
avereha Nov 8, 2021
24215a8
Merge pull request #879 from 0pen-dash/avereha/fix-crash
MilosKozak Nov 8, 2021
c684f12
fix TT units logging in automation
MilosKozak Nov 8, 2021
95f6cc7
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 8, 2021
25c0486
Glunovo plugin
MilosKozak Nov 9, 2021
b9a3a72
fix BG backfill rule
MilosKozak Nov 9, 2021
04de964
cleanup
MilosKozak Nov 9, 2021
aa58b37
call connectNewPump() in NSClient mode
MilosKozak Nov 9, 2021
ffa4120
improve glunovo logic
MilosKozak Nov 9, 2021
c2c6bb8
Fixes #882 by aggregating DAO query for temporary basals and moving i…
dlvoy Nov 9, 2021
56d9786
fix glunovo loop
MilosKozak Nov 9, 2021
af7a22a
- small fix on MedtronicHistoryEntry initialization
andyrozman Nov 9, 2021
5ae83c4
optimize screen refreshing
MilosKozak Nov 9, 2021
f942e9a
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 9, 2021
247768c
ktlintFormat
avereha Nov 9, 2021
e7f9314
fix .bolusDelivered in the deliverTreatment response
avereha Nov 9, 2021
43287f6
Merge pull request #893 from 0pen-dash/avereha/fix-bolus
MilosKozak Nov 9, 2021
081e8bd
inject context
MilosKozak Nov 10, 2021
bb7632a
Glunovo change schedule
MilosKozak Nov 10, 2021
d3d79d6
Update TestBaseWithProfile.kt
AdrianLxM Nov 10, 2021
b1bcc64
Update TestBaseWithProfile.kt
AdrianLxM Nov 10, 2021
9051334
Update TestBaseWithProfile.kt
AdrianLxM Nov 10, 2021
767e786
Update TestBaseWithProfile.kt
AdrianLxM Nov 10, 2021
0226585
Update TestBaseWithProfile.kt
AdrianLxM Nov 10, 2021
0b4f566
Update TestBaseWithProfile.kt
AdrianLxM Nov 10, 2021
7b39fb1
Merge pull request #887 from dlvoy/fix/882_optimize_tdd_calculation
MilosKozak Nov 10, 2021
12f3e92
Merge pull request #898 from nightscout/AdrianLxM/test-profile
MilosKozak Nov 10, 2021
584e91f
prepare XDripBroadcast
MilosKozak Nov 10, 2021
3dc2f07
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 10, 2021
7ad425a
Dana-i: store pairing key
MilosKozak Nov 10, 2021
d5ae4ca
call stopConnecting only once
avereha Nov 10, 2021
3a92139
fix connnecting quality counter
avereha Nov 10, 2021
311f04f
- add changelog file
andyrozman Nov 10, 2021
7c382f7
Merge branch 'dev' into bug798_meal_tbr
andyrozman Nov 10, 2021
85178ee
End TBR before connectNewPump
MilosKozak Nov 11, 2021
88a8d08
restore xdrip broadcast
MilosKozak Nov 11, 2021
1759265
Merge branch 'dev' into pumpsync
MilosKozak Nov 11, 2021
51c6237
limit logging
MilosKozak Nov 11, 2021
5e46627
improve logging
MilosKozak Nov 11, 2021
6ab2a7b
display the performed operation
avereha Nov 11, 2021
7826c41
delay observing for EventPumpStatusChanged
avereha Nov 11, 2021
59c7955
connection quality: count connections after retries
avereha Nov 11, 2021
229285e
display the performed operation
avereha Nov 11, 2021
774beb2
Glunovo process calibrations
MilosKozak Nov 11, 2021
579c9da
Glunovo rearrange
MilosKozak Nov 11, 2021
041f1a9
do not stop the fake tbr on pod activation
avereha Nov 11, 2021
52e3432
Eros: try to fix blocking UI
MilosKozak Nov 11, 2021
8bac468
IOB: fix calculation for EB
MilosKozak Nov 11, 2021
50861f2
Merge pull request #906 from 0pen-dash/avereha/connQuality
MilosKozak Nov 12, 2021
0c87f04
Merge pull request #902 from 0pen-dash/avereha/stopConnecting
MilosKozak Nov 12, 2021
2dbcb6d
Bump dagger_version from 2.40 to 2.40.1
dependabot[bot] Nov 12, 2021
fed4762
Merge pull request #909 from nightscout/dependabot/gradle/dev/dagger_…
MilosKozak Nov 12, 2021
00fb5bd
assert nscliet is running in RunningConfiguration
MilosKozak Nov 12, 2021
01e70d9
key not translatable
MilosKozak Nov 12, 2021
3891fb7
Merge pull request #891 from nightscout/glunovo
MilosKozak Nov 12, 2021
bfeb53b
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 12, 2021
54b8d06
fix build
MilosKozak Nov 12, 2021
90b8b8e
create new string for "Delivering .."
avereha Nov 12, 2021
b0b2873
Revert "do not stop the fake tbr on pod activation"
avereha Nov 12, 2021
88b4830
show notification only once and if there is no CommandDeactivatePod i…
avereha Nov 13, 2021
f681348
fix DST
avereha Nov 13, 2021
eb69443
handleTimeChange: fail if there is no active profile
avereha Nov 14, 2021
c4f19b5
Merge pull request #921 from 0pen-dash/avereha/fix-dst
MilosKozak Nov 14, 2021
c5599ee
Merge pull request #916 from 0pen-dash/avereha/fix-alarm
MilosKozak Nov 14, 2021
b8a3322
Merge pull request #915 from 0pen-dash/avereha/no-more-stop-fake-tbr
MilosKozak Nov 14, 2021
c3959aa
Merge pull request #914 from 0pen-dash/avereha/fix-bolusdelivery-text
MilosKozak Nov 14, 2021
4cea57a
Eros: try to resolve fake TBR alert
MilosKozak Nov 14, 2021
2e78566
Dana: make clickable whole layout
MilosKozak Nov 14, 2021
a7118b1
Merge pull request #929 from andyrozman/bug798_meal_tbr
MilosKozak Nov 14, 2021
7b4b9fd
- Fixed bugs for pump firmware 3.0
miyeongkim Nov 15, 2021
67af9d1
clean code
miyeongkim Nov 15, 2021
9319f38
Bump kotlin_version from 1.5.31 to 1.6.0
dependabot[bot] Nov 15, 2021
2c89d8f
Merge branch 'dev' of https://github.com/miyeongkim/AndroidAPS into dev
miyeongkim Nov 15, 2021
eb89bdd
New Crowdin updates (#928)
MilosKozak Nov 15, 2021
b4b29f7
Merge pull request #931 from nightscout/dependabot/gradle/dev/kotlin_…
MilosKozak Nov 15, 2021
1763039
active insulin in green color
MilosKozak Nov 15, 2021
c0e27a9
Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
MilosKozak Nov 15, 2021
b785f92
fix binding
MilosKozak Nov 15, 2021
6aaedef
Profile: fix Save button behavior
MilosKozak Nov 15, 2021
d0e9761
fix ending EB
MilosKozak Nov 15, 2021
3e6aa56
remove IOB AS=1 prediction
MilosKozak Nov 15, 2021
4c6d6ab
:zap: tempbasal max rate is applied from 6U/hr to 15U/hr in pump firm…
miyeongkim Nov 16, 2021
b79b3ac
Merge branch 'dev' of https://github.com/miyeongkim/AndroidAPS into dev
miyeongkim Nov 16, 2021
f8ed625
Merge pull request #940 from miyeongkim/dev
MilosKozak Nov 16, 2021
154cb78
New Crowdin updates (#933)
MilosKozak Nov 16, 2021
383657c
DanaRS: more logging
MilosKozak Nov 16, 2021
17d5fcf
remove duplicated code
MilosKozak Nov 16, 2021
f48dcc7
fix double profile
MilosKozak Nov 16, 2021
0104e53
2.8.2.11-dev
MilosKozak Nov 16, 2021
709b2c7
bolus error text update
MilosKozak Nov 16, 2021
ae52998
3.0-beta6
MilosKozak Nov 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ android {
defaultConfig {
multiDexEnabled true
versionCode 1500
version "2.8.2.5-dev"
version "3.0-beta6"
buildConfigField "String", "VERSION", '"' + version + '"'
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
Expand Down
82 changes: 45 additions & 37 deletions app/src/main/java/info/nightscout/androidaps/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,16 @@ import info.nightscout.androidaps.databinding.ActivityMainBinding
import info.nightscout.androidaps.events.EventAppExit
import info.nightscout.androidaps.events.EventPreferenceChange
import info.nightscout.androidaps.events.EventRebuildTabs
import info.nightscout.androidaps.activities.HistoryBrowseActivity
import info.nightscout.androidaps.interfaces.ActivePlugin
import info.nightscout.androidaps.interfaces.Config
import info.nightscout.androidaps.interfaces.IconsProvider
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.logging.UserEntryLogger
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.plugins.configBuilder.ConstraintChecker
import info.nightscout.androidaps.plugins.constraints.signatureVerifier.SignatureVerifierPlugin
import info.nightscout.androidaps.plugins.constraints.versionChecker.VersionCheckerUtils
Expand All @@ -62,6 +62,7 @@ import info.nightscout.androidaps.utils.sharedPreferences.SP
import info.nightscout.androidaps.utils.tabs.TabPageAdapter
import info.nightscout.androidaps.utils.ui.UIRunnable
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.rxkotlin.plusAssign
import java.util.*
import javax.inject.Inject
import kotlin.system.exitProcess
Expand All @@ -72,7 +73,7 @@ class MainActivity : NoSplashAppCompatActivity() {

@Inject lateinit var aapsLogger: AAPSLogger
@Inject lateinit var aapsSchedulers: AapsSchedulers
@Inject lateinit var rxBus: RxBusWrapper
@Inject lateinit var rxBus: RxBus
@Inject lateinit var androidPermission: AndroidPermission
@Inject lateinit var sp: SP
@Inject lateinit var versionCheckerUtils: VersionCheckerUtils
Expand All @@ -88,6 +89,7 @@ class MainActivity : NoSplashAppCompatActivity() {
@Inject lateinit var signatureVerifierPlugin: SignatureVerifierPlugin
@Inject lateinit var config: Config
@Inject lateinit var uel: UserEntryLogger
@Inject lateinit var profileFunction: ProfileFunction

private lateinit var actionBarDrawerToggle: ActionBarDrawerToggle
private var pluginPreferencesMenuItem: MenuItem? = null
Expand All @@ -111,7 +113,7 @@ class MainActivity : NoSplashAppCompatActivity() {
}

// initialize screen wake lock
processPreferenceChange(EventPreferenceChange(resourceHelper.gs(R.string.key_keep_screen_on)))
processPreferenceChange(EventPreferenceChange(rh.gs(R.string.key_keep_screen_on)))
binding.mainPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageScrollStateChanged(state: Int) {}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
Expand All @@ -122,31 +124,29 @@ class MainActivity : NoSplashAppCompatActivity() {
})

//Check here if loop plugin is disabled. Else check via constraints
if (!loopPlugin.isEnabled(PluginType.LOOP)) versionCheckerUtils.triggerCheckVersion()
if (!loopPlugin.isEnabled()) versionCheckerUtils.triggerCheckVersion()
setUserStats()
setupViews()
disposable.add(rxBus
disposable += rxBus
.toObservable(EventRebuildTabs::class.java)
.observeOn(aapsSchedulers.main)
.subscribe({
if (it.recreate) recreate()
else setupViews()
setWakeLock()
}, fabricPrivacy::logException)
)
disposable.add(rxBus
if (it.recreate) recreate()
else setupViews()
setWakeLock()
}, fabricPrivacy::logException)
disposable += rxBus
.toObservable(EventPreferenceChange::class.java)
.observeOn(aapsSchedulers.main)
.subscribe({ processPreferenceChange(it) }, fabricPrivacy::logException)
)
if (startWizard() && !isRunningRealPumpTest()) {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
startActivity(Intent(this, SetupWizardActivity::class.java))
})
}
androidPermission.notifyForStoragePermission(this)
androidPermission.notifyForBatteryOptimizationPermission(this)
androidPermission.notifyForLocationPermissions(this)
if (!config.NSCLIENT) androidPermission.notifyForLocationPermissions(this)
if (config.PUMPDRIVERS) {
androidPermission.notifyForSMSPermissions(this, smsCommunicatorPlugin)
androidPermission.notifyForSystemWindowPermissions(this)
Expand All @@ -157,7 +157,7 @@ class MainActivity : NoSplashAppCompatActivity() {
if (viewPager.currentItem >= 0) pluginPreferencesMenuItem?.isEnabled = (viewPager.adapter as TabPageAdapter).getPluginAt(viewPager.currentItem).preferencesId != -1
}

private fun startWizard() : Boolean =
private fun startWizard(): Boolean =
!sp.getBoolean(R.string.key_setupwizard_processed, false)

override fun onPostCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
Expand All @@ -173,8 +173,8 @@ class MainActivity : NoSplashAppCompatActivity() {
override fun onResume() {
super.onResume()
protectionCheck.queryProtection(this, ProtectionCheck.Protection.APPLICATION, null,
UIRunnable { OKDialog.show(this, "", resourceHelper.gs(R.string.authorizationfailed)) { finish() } },
UIRunnable { OKDialog.show(this, "", resourceHelper.gs(R.string.authorizationfailed)) { finish() } }
UIRunnable { OKDialog.show(this, "", rh.gs(R.string.authorizationfailed)) { finish() } },
UIRunnable { OKDialog.show(this, "", rh.gs(R.string.authorizationfailed)) { finish() } }
)
}

Expand All @@ -184,8 +184,8 @@ class MainActivity : NoSplashAppCompatActivity() {
}

private fun processPreferenceChange(ev: EventPreferenceChange) {
if (ev.isChanged(resourceHelper, R.string.key_keep_screen_on)) setWakeLock()
if (ev.isChanged(resourceHelper, R.string.key_skin)) recreate()
if (ev.isChanged(rh, R.string.key_keep_screen_on)) setWakeLock()
if (ev.isChanged(rh, R.string.key_skin)) recreate()
}

private fun setupViews() {
Expand Down Expand Up @@ -229,8 +229,10 @@ class MainActivity : NoSplashAppCompatActivity() {
binding.tabsCompact.visibility = View.GONE
val typedValue = TypedValue()
if (theme.resolveAttribute(R.attr.actionBarSize, typedValue, true)) {
binding.toolbar.layoutParams = LinearLayout.LayoutParams(Toolbar.LayoutParams.MATCH_PARENT,
TypedValue.complexToDimensionPixelSize(typedValue.data, resources.displayMetrics))
binding.toolbar.layoutParams = LinearLayout.LayoutParams(
Toolbar.LayoutParams.MATCH_PARENT,
TypedValue.complexToDimensionPixelSize(typedValue.data, resources.displayMetrics)
)
}
TabLayoutMediator(binding.tabsNormal, binding.mainPager) { tab, position ->
tab.text = (binding.mainPager.adapter as TabPageAdapter).getPluginAt(position).name
Expand All @@ -257,10 +259,16 @@ class MainActivity : NoSplashAppCompatActivity() {
private fun setPluginPreferenceMenuName() {
if (binding.mainPager.currentItem >= 0) {
val plugin = (binding.mainPager.adapter as TabPageAdapter).getPluginAt(binding.mainPager.currentItem)
this.menu?.findItem(R.id.nav_plugin_preferences)?.title = resourceHelper.gs(R.string.nav_preferences_plugin, plugin.name)
this.menu?.findItem(R.id.nav_plugin_preferences)?.title = rh.gs(R.string.nav_preferences_plugin, plugin.name)
}
}

override fun onMenuOpened(featureId: Int, menu: Menu): Boolean {
val result = super.onMenuOpened(featureId, menu)
menu.findItem(R.id.nav_treatments)?.isEnabled = profileFunction.getProfile() != null
return result
}

override fun onCreateOptionsMenu(menu: Menu): Boolean {
this.menu = menu
menuInflater.inflate(R.menu.menu_main, menu)
Expand All @@ -272,7 +280,7 @@ class MainActivity : NoSplashAppCompatActivity() {

override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.nav_preferences -> {
R.id.nav_preferences -> {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
val i = Intent(this, PreferencesActivity::class.java)
i.putExtra("id", -1)
Expand All @@ -281,46 +289,46 @@ class MainActivity : NoSplashAppCompatActivity() {
return true
}

R.id.nav_historybrowser -> {
R.id.nav_historybrowser -> {
startActivity(Intent(this, HistoryBrowseActivity::class.java))
return true
}

R.id.nav_treatments -> {
R.id.nav_treatments -> {
startActivity(Intent(this, TreatmentsActivity::class.java))
return true
}

R.id.nav_setupwizard -> {
R.id.nav_setupwizard -> {
protectionCheck.queryProtection(this, ProtectionCheck.Protection.PREFERENCES, {
startActivity(Intent(this, SetupWizardActivity::class.java))
})
return true
}

R.id.nav_about -> {
R.id.nav_about -> {
var message = "Build: ${BuildConfig.BUILDVERSION}\n"
message += "Flavor: ${BuildConfig.FLAVOR}${BuildConfig.BUILD_TYPE}\n"
message += "${resourceHelper.gs(R.string.configbuilder_nightscoutversion_label)} ${nsSettingsStatus.getVersion()}"
if (buildHelper.isEngineeringMode()) message += "\n${resourceHelper.gs(R.string.engineering_mode_enabled)}"
if (!fabricPrivacy.fabricEnabled()) message += "\n${resourceHelper.gs(R.string.fabric_upload_disabled)}"
message += resourceHelper.gs(R.string.about_link_urls)
message += "${rh.gs(R.string.configbuilder_nightscoutversion_label)} ${nsSettingsStatus.getVersion()}"
if (buildHelper.isEngineeringMode()) message += "\n${rh.gs(R.string.engineering_mode_enabled)}"
if (!fabricPrivacy.fabricEnabled()) message += "\n${rh.gs(R.string.fabric_upload_disabled)}"
message += rh.gs(R.string.about_link_urls)
val messageSpanned = SpannableString(message)
Linkify.addLinks(messageSpanned, Linkify.WEB_URLS)
AlertDialog.Builder(this)
.setTitle(resourceHelper.gs(R.string.app_name) + " " + BuildConfig.VERSION)
.setTitle(rh.gs(R.string.app_name) + " " + BuildConfig.VERSION)
.setIcon(iconsProvider.getIcon())
.setMessage(messageSpanned)
.setPositiveButton(resourceHelper.gs(R.string.ok), null)
.setNeutralButton(resourceHelper.gs(R.string.cta_dont_kill_my_app_info)) { _, _ -> DokiActivity.start(context = this@MainActivity) }
.setPositiveButton(rh.gs(R.string.ok), null)
.setNeutralButton(rh.gs(R.string.cta_dont_kill_my_app_info)) { _, _ -> DokiActivity.start(context = this@MainActivity) }
.create().apply {
show()
findViewById<TextView>(android.R.id.message)?.movementMethod = LinkMovementMethod.getInstance()
}
return true
}

R.id.nav_exit -> {
R.id.nav_exit -> {
aapsLogger.debug(LTag.CORE, "Exiting")
uel.log(Action.EXIT_AAPS, Sources.Aaps)
rxBus.send(EventAppExit())
Expand All @@ -344,12 +352,12 @@ class MainActivity : NoSplashAppCompatActivity() {
return true
}
*/
R.id.nav_defaultprofile -> {
R.id.nav_defaultprofile -> {
startActivity(Intent(this, ProfileHelperActivity::class.java))
return true
}

R.id.nav_stats -> {
R.id.nav_stats -> {
startActivity(Intent(this, StatsActivity::class.java))
return true
}
Expand Down
58 changes: 53 additions & 5 deletions app/src/main/java/info/nightscout/androidaps/MainApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.content.IntentFilter
import android.net.ConnectivityManager
import android.net.wifi.WifiManager
import android.os.Build
import com.uber.rxdogtag.RxDogTag
import dagger.android.AndroidInjector
import dagger.android.DaggerApplication
import info.nightscout.androidaps.database.AppRepository
Expand All @@ -14,8 +15,8 @@ import info.nightscout.androidaps.database.entities.UserEntry
import info.nightscout.androidaps.database.transactions.InsertIfNewByTimestampTherapyEventTransaction
import info.nightscout.androidaps.database.transactions.VersionChangeTransaction
import info.nightscout.androidaps.db.CompatDBHelper
import info.nightscout.androidaps.di.StaticInjector
import info.nightscout.androidaps.dependencyInjection.DaggerAppComponent
import info.nightscout.androidaps.di.StaticInjector
import info.nightscout.androidaps.interfaces.Config
import info.nightscout.androidaps.interfaces.ConfigBuilder
import info.nightscout.androidaps.interfaces.PluginBase
Expand All @@ -29,14 +30,19 @@ import info.nightscout.androidaps.receivers.ChargingStateReceiver
import info.nightscout.androidaps.receivers.KeepAliveReceiver.KeepAliveManager
import info.nightscout.androidaps.receivers.NetworkChangeReceiver
import info.nightscout.androidaps.receivers.TimeDateOrTZChangeReceiver
import info.nightscout.androidaps.services.AlarmSoundServiceHelper
import info.nightscout.androidaps.utils.ActivityMonitor
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.locale.LocaleHelper.update
import info.nightscout.androidaps.utils.locale.LocaleHelper
import info.nightscout.androidaps.utils.protection.PasswordCheck
import info.nightscout.androidaps.utils.sharedPreferences.SP
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.exceptions.UndeliverableException
import io.reactivex.plugins.RxJavaPlugins
import io.reactivex.rxkotlin.plusAssign
import net.danlew.android.joda.JodaTimeAndroid
import java.io.IOException
import java.net.SocketException
import javax.inject.Inject

class MainApp : DaggerApplication() {
Expand All @@ -58,11 +64,14 @@ class MainApp : DaggerApplication() {
@Inject lateinit var staticInjector: StaticInjector// TODO avoid , here fake only to initialize
@Inject lateinit var uel: UserEntryLogger
@Inject lateinit var passwordCheck: PasswordCheck
@Inject lateinit var alarmSoundServiceHelper: AlarmSoundServiceHelper

override fun onCreate() {
super.onCreate()
aapsLogger.debug("onCreate")
update(this)
RxDogTag.install()
setRxErrorHandler()
LocaleHelper.update(this)

var gitRemote: String? = BuildConfig.REMOTE
var commitHash: String? = BuildConfig.HEAD
Expand All @@ -71,7 +80,17 @@ class MainApp : DaggerApplication() {
commitHash = null
}
disposable += repository.runTransaction(VersionChangeTransaction(BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE, gitRemote, commitHash)).subscribe()
disposable += repository.runTransaction(InsertIfNewByTimestampTherapyEventTransaction(timestamp = dateUtil.now(), type = TherapyEvent.Type.NOTE, note = getString(info.nightscout.androidaps.core.R.string.androidaps_start).toString() + " - " + Build.MANUFACTURER + " " + Build.MODEL, glucoseUnit = TherapyEvent.GlucoseUnit.MGDL)).subscribe()
if (sp.getBoolean(R.string.key_ns_logappstartedevent, config.APS))
disposable += repository
.runTransaction(
InsertIfNewByTimestampTherapyEventTransaction(
timestamp = dateUtil.now(),
type = TherapyEvent.Type.NOTE,
note = getString(info.nightscout.androidaps.core.R.string.androidaps_start) + " - " + Build.MANUFACTURER + " " + Build.MODEL,
glucoseUnit = TherapyEvent.GlucoseUnit.MGDL
)
)
.subscribe()
disposable += compatDBHelper.dbChangeDisposable()
registerActivityLifecycleCallbacks(activityMonitor)
JodaTimeAndroid.init(this)
Expand All @@ -92,6 +111,34 @@ class MainApp : DaggerApplication() {
passwordCheck.passwordResetCheck(this)
}

private fun setRxErrorHandler() {
RxJavaPlugins.setErrorHandler { t: Throwable ->
var e = t
if (e is UndeliverableException) {
e = e.cause!!
}
if (e is IOException || e is SocketException) {
// fine, irrelevant network problem or API that throws on cancellation
return@setErrorHandler
}
if (e is InterruptedException) {
// fine, some blocking code was interrupted by a dispose call
return@setErrorHandler
}
if (e is NullPointerException || e is IllegalArgumentException) {
// that's likely a bug in the application
Thread.currentThread().uncaughtExceptionHandler?.uncaughtException(Thread.currentThread(), e)
return@setErrorHandler
}
if (e is IllegalStateException) {
// that's a bug in RxJava or in a custom operator
Thread.currentThread().uncaughtExceptionHandler?.uncaughtException(Thread.currentThread(), e)
return@setErrorHandler
}
aapsLogger.warn(LTag.CORE, "Undeliverable exception received, not sure what to do", e)
}
}

private fun doMigrations() {
// set values for different builds
if (!sp.contains(R.string.key_ns_alarms)) sp.putBoolean(R.string.key_ns_alarms, config.NSCLIENT)
Expand Down Expand Up @@ -132,6 +179,7 @@ class MainApp : DaggerApplication() {
aapsLogger.debug(LTag.CORE, "onTerminate")
unregisterActivityLifecycleCallbacks(activityMonitor)
keepAliveManager.cancelAlarm(this)
alarmSoundServiceHelper.stopService(this)
super.onTerminate()
}
}
}
Loading