Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
2518b23
Adds a worker task to prime entity cache
shubham1g5 Dec 9, 2024
878c09c
Schedule prime cache task after 412 and on initializing user session
shubham1g5 Dec 9, 2024
c1e6a35
Set up progress indicator on entity list screen
shubham1g5 Dec 11, 2024
aa616b4
-pr review bug fixes
pm-dimagi Dec 19, 2024
9aa1220
Creates a Android specific async factory to bind to any existing prim…
shubham1g5 Dec 19, 2024
c4a68a6
Move methods to schedule/cancel cache work to cache helper
shubham1g5 Dec 19, 2024
d78960d
Re-schedule cancelled work when expediting a detail sepcific cache
shubham1g5 Dec 19, 2024
dd05545
Improve progress tracking by providing information on individual enti…
shubham1g5 Dec 23, 2024
acd3aa6
Handle for new cache config while initiating entity factory
shubham1g5 Dec 24, 2024
7122c92
Cancellation handling
shubham1g5 Dec 24, 2024
63743aa
Always clear state after prime cache worker run
shubham1g5 Dec 24, 2024
ede6caf
correct eval context by including command id
shubham1g5 Dec 24, 2024
f145dd6
Fixes progress tracking plus tracking the live worker in async task
shubham1g5 Dec 25, 2024
8b53cbf
Uses datum id to track progress instead of detail as a detail can pot…
shubham1g5 Dec 26, 2024
1e8dfd3
Thread safety
shubham1g5 Dec 26, 2024
32d554e
lint
shubham1g5 Dec 26, 2024
918d1af
Merge branch 'master' into dv/connectid_foundation
OrangeAndGreen Dec 31, 2024
90b0c96
Make clear distinction in between old and new cache and index switch
shubham1g5 Jan 6, 2025
66cf541
- retrofit changes for api call
pm-dimagi Jan 7, 2025
4f42de2
-bug fix for language change
pm-dimagi Jan 7, 2025
ab5d325
Priming cache for normal and sort values for the detail fields marked…
shubham1g5 Jan 9, 2025
6c9be03
Tweaks
shubham1g5 Jan 10, 2025
dbbcfd4
fixes test dependent on work manager init
shubham1g5 Jan 13, 2025
a91d8ab
-foundation pr review changes
pm-dimagi Jan 21, 2025
f51fc58
- making clint id as constant value
pm-dimagi Jan 21, 2025
c7fd1ec
-making dynamic url builder
pm-dimagi Jan 23, 2025
b1e4eff
-coderabbit review changes
pm-dimagi Jan 23, 2025
15cf20a
use a % indicator for progress
shubham1g5 Jan 23, 2025
7198161
Adds init validation for new android async factory
shubham1g5 Jan 23, 2025
d793b9a
-coderabbit review changes
pm-dimagi Jan 23, 2025
aa65ba4
Bind PrimeEntityCacheHelper to CommCareApp lifecycle
shubham1g5 Jan 24, 2025
1473e3e
putting non null check on job records
pm-dimagi Jan 24, 2025
6d0dedb
-removed null safety
pm-dimagi Jan 26, 2025
f207335
Update pull_request_template.md
shubham1g5 Jan 28, 2025
c9661f7
lint
shubham1g5 Jan 28, 2025
cc38e15
-suggested changes from coderabitai
pm-dimagi Jan 28, 2025
50b8a51
-rid of local paraphrase
pm-dimagi Jan 28, 2025
66ed0dc
-jobs tore changes and coderabbit changes
pm-dimagi Jan 28, 2025
917639f
-build break
pm-dimagi Jan 28, 2025
7860093
Only provide progress updates for new cache config
shubham1g5 Jan 29, 2025
1d37be1
-pr reviews related to models
pm-dimagi Jan 29, 2025
c49c22a
-pr reviews comments changes
pm-dimagi Jan 30, 2025
55c8b2b
fixes cache priming bugs
shubham1g5 Feb 3, 2025
5726518
Use livedata/stateflow based observers for traching prime cache progr…
shubham1g5 Feb 3, 2025
d6dcfed
Lazy loading tweaks, introduces a flag to skip lazy loading in backgr…
shubham1g5 Feb 4, 2025
b24d580
Better status message
shubham1g5 Feb 4, 2025
6deec22
rename skipLazyLoad -> inBackground, better logic to calculate uncach…
shubham1g5 Feb 4, 2025
9c88874
-pr review requested changes
pm-dimagi Feb 4, 2025
2949559
-pr review
pm-dimagi Feb 4, 2025
84b2b99
return null when date is not confirmed
Feb 6, 2025
f1c9a26
optimize -> cache_enabled
shubham1g5 Feb 10, 2025
be1e7f3
return null when secondary phone is not verified
Feb 11, 2025
f75ba1f
handle recover db at place at first insatnce only
Feb 11, 2025
0bc14c9
added logs for on internet is available
Feb 11, 2025
1fdb815
Lint
avazirna Feb 12, 2025
b060e6f
Set case detail page title
avazirna Feb 12, 2025
8323e54
Merge pull request #2946 from dimagi/update-pr-template
shubham1g5 Feb 12, 2025
1279ed5
-added field for the update of the job
pm-dimagi Feb 12, 2025
fe9337c
Remove media permissions
avazirna Feb 12, 2025
ef38792
-jobstore manager store job logic update
pm-dimagi Feb 14, 2025
7a8288a
-nit issue resolved
pm-dimagi Feb 14, 2025
81e47cb
Merge branch 'master' of https://github.com/dimagi/commcare-android i…
pm-dimagi Feb 14, 2025
6b3cc8d
-test case issue resolved
pm-dimagi Feb 14, 2025
e8fddc6
-request change by dave
pm-dimagi Feb 14, 2025
c606dca
-updated the code for store payment units and modules
pm-dimagi Feb 14, 2025
5b46b0c
-updated the code for store jobs and refactored the comparing unit
pm-dimagi Feb 14, 2025
98e3291
-fixed the problem of storing calue in db
pm-dimagi Feb 17, 2025
cde4e2d
-fixed issue of storing app info
pm-dimagi Feb 17, 2025
7b41370
-nit issue fixed
pm-dimagi Feb 17, 2025
beb545a
-removed sorting query from sql storage
pm-dimagi Feb 18, 2025
dfac1f9
-lint issue
pm-dimagi Feb 18, 2025
ec417d8
-lint issue and job store manger db transaction synchronus
pm-dimagi Feb 18, 2025
f2eca90
-renaming of the function name getJobs
pm-dimagi Feb 19, 2025
ed588bd
-remove unnecessary use of lock
pm-dimagi Feb 19, 2025
6f1e556
-remove unnecessary use of lock in complete file
pm-dimagi Feb 19, 2025
3fca48f
-removed unused import
pm-dimagi Feb 19, 2025
d3f29f1
Merge pull request #2847 from dimagi/dv/connectid_foundation
OrangeAndGreen Feb 21, 2025
b112546
Bump AndroidX Appcompat to 1.7.0
avazirna Feb 24, 2025
af1b934
Use ACTION_PICK_IMAGES when appropriate component is present
avazirna Feb 25, 2025
cfbf901
Enable automatic installation of backported photo picker
avazirna Feb 25, 2025
2333553
Merge branch 'master' into remove-media-permissions
avazirna Feb 25, 2025
14b063e
Nit
avazirna Feb 26, 2025
bab015c
Refactor inBackground as a constructor param to entity factory
shubham1g5 Feb 27, 2025
7530f94
reword progress message
shubham1g5 Feb 27, 2025
99329d3
uniformly use getCurrentAppId() when dealing with work manager
shubham1g5 Feb 27, 2025
89a054f
key prime cache request with app id
shubham1g5 Feb 27, 2025
0e7d208
Merge branch 'master' into primeCacheAheadOfTime
shubham1g5 Feb 27, 2025
b73d40e
Adds is_dirty and is_shallow columns to entity cache table and insert…
shubham1g5 Feb 11, 2025
bd45ea8
abstract to getAllOwners [no op refactor]
shubham1g5 Feb 12, 2025
bcf637c
Adds shallow records to cache and propogate them as dirty records in …
shubham1g5 Feb 14, 2025
630ec83
blocks cache priming to process shallow records as the first thing
shubham1g5 Feb 18, 2025
1a985d8
Test to verify cache invalidation
shubham1g5 Feb 18, 2025
1fd858f
rename method
shubham1g5 Feb 18, 2025
1f04887
schedule entity cache invalidation task after restore
shubham1g5 Feb 18, 2025
137251a
error handling
shubham1g5 Feb 18, 2025
6b57655
fix for workmanager initialization issues in test
shubham1g5 Feb 20, 2025
b6668b9
Skip cache invalidation for demo user to get past a weird robolectric…
shubham1g5 Feb 20, 2025
25382c7
Let parent view align children views
avazirna Feb 27, 2025
a0db6a6
Increase progress bar vertical padding
avazirna Feb 27, 2025
be42905
removed un-necessary demo user check and adds a more useful check on …
shubham1g5 Mar 2, 2025
867c254
schedule entity cache invalidation after form upload has finished, ch…
shubham1g5 Mar 2, 2025
78f2e5d
correct transaction calls
shubham1g5 Mar 2, 2025
4d1e04b
get db lock before processing shallow records
shubham1g5 Mar 3, 2025
fdcabfc
Avoid un-ncessary String conversion
shubham1g5 Mar 3, 2025
a3bd499
Correct method access, minor lint cleanup
shubham1g5 Mar 3, 2025
23836b6
use bulk query method
shubham1g5 Mar 3, 2025
190cf05
Better method names and docstring
shubham1g5 Mar 3, 2025
9e0ccf0
Downgrade AndroidX AppCompat to 1.3.0
avazirna Mar 3, 2025
329600b
Adjust font size
avazirna Mar 3, 2025
37e9e45
Downgrade AndroidX AppCompat to 1.2.0
avazirna Mar 3, 2025
876f0e7
Update navigation arrows
avazirna Mar 3, 2025
0c7268f
Merge pull request #2955 from dimagi/cacheExpirationChanges
shubham1g5 Mar 4, 2025
d1c9089
Only observe cache worker when caching is on
shubham1g5 Mar 4, 2025
e27a912
Correct bulk fetch of records ids
shubham1g5 Mar 4, 2025
b533cc6
Merge pull request #2928 from dimagi/primeCacheAheadOfTime
shubham1g5 Mar 4, 2025
df0c184
Merge pull request #2963 from dimagi/remove-media-permissions
avazirna Mar 4, 2025
2cabe0a
Merge pull request #2969 from dimagi/minor-ui-corrections
avazirna Mar 4, 2025
c97a152
Merge pull request #2953 from dimagi/fix-case-detail-tabs
avazirna Mar 4, 2025
e0f8beb
Use LocationManager when in airplane mode
avazirna Mar 5, 2025
635aa5b
Improve messaging when capture is cancelled
avazirna Mar 5, 2025
61ac361
Handle HTTP 403 response
avazirna Mar 5, 2025
309db47
Add user message about lack of permission
avazirna Mar 5, 2025
8ba5745
Improve action wording
avazirna Mar 7, 2025
5e35022
Merge pull request #2975 from dimagi/handle-failed-login-due-to-insuf…
avazirna Mar 7, 2025
934c13f
Merge pull request #2974 from dimagi/fix-location-capture-when-in-air…
avazirna Mar 7, 2025
2d2229c
Merge branch 'master' of https://github.com/dimagi/commcare-android i…
pm-dimagi Mar 11, 2025
032864c
-resolved issues of the pr merge
pm-dimagi Mar 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 28 additions & 16 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,41 @@
## Summary
## Product Description
<!--
Delete this section if the PR does not contain any visible changes.
For non-invisible changes, describe the user-facing effects.
-->

## Technical Summary
<!--
Provide a link to the ticket or document which prompted this change,
Describe the rationale and design decisions.
- Provide a link to the ticket or document which prompted this change.
- Describe the rationale and design decisions.
-->

## Feature Flag
<!-- If this is specific to a feature flag, which one? -->

## Product Description
<!-- For non-invisible changes, describe user-facing effects. Would be good to add screenshots/videos for any major user facing changes -->
## Safety Assurance

## PR Checklist
### Safety story
<!--
Describe:
- how you became confident in this change (such as local testing).
- why the change is inherently safe, and/or plans to limit the defect blast radius.

- [ ] If I think the PR is high risk, "High Risk" label is set
- [ ] I have confidence that this PR will not introduce a regression for the reasons below
- [ ] Do we need to enhance manual QA test coverage ? If yes, "QA Note" label is set correctly
- [ ] Does the PR introduce any major changes worth communicating ? If yes, "Release Note" label is set and a "Release Note" is specified in PR description.
In particular consider how existing data may be impacted by this change.
-->

### Automated test coverage
<!-- Identify the related test coverage and the conditions it will catch -->

<!-- Identify the related test coverage and the tests it would catch -->
### QA Plan
<!--
- Describe QA plan that (along with test coverage) proves that this PR is regression free.
- Link to QA Ticket
-->

## Labels and Review

### Safety story
<!--
Describe any other pieces to the safety story including
local testing, why the change is inherently safe, and/or plans to limit the blast radius of a defect.
-->
- [ ] Do we need to enhance the manual QA test coverage ? If yes, the "QA Note" label is set correctly
- [ ] Does the PR introduce any major changes worth communicating ? If yes, the "Release Note" label is set and a "Release Note" is specified in PR description.
- [ ] Risk label is set correctly
- [ ] The set of people pinged as reviewers is appropriate for the level of risk of the change
97 changes: 51 additions & 46 deletions app/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,83 +4,87 @@
android:versionCode="106"
android:versionName="2.56">

<uses-sdk tools:overrideLibrary="com.dimagi.android.zebraprinttool, com.simprints.libsimprints, ru.noties.markwon.il, ru.noties.markwon.view, ru.noties.markwon.renderer, com.google.firebase.crashlytics, com.google.firebase.iid, com.appmattus.certificatetransparency" />

<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<uses-permission xmlns:android="http://schemas.android.com/apk/res/android"
android:name="android.permission.READ_PHONE_STATE" />
<uses-permission xmlns:android="http://schemas.android.com/apk/res/android"
android:name="android.permission.INTERNET" />
<uses-permission xmlns:android="http://schemas.android.com/apk/res/android"
<uses-permission android:name="android.permission.NFC"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
<uses-permission
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="android.permission.INTERNET"/>
<uses-permission
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- required to ensure app compatibility -->
android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- required to ensure app compatibility -->
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission
android:name="android.permission.NEARBY_WIFI_DEVICES"
android:usesPermissionFlags="neverForLocation" />
<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"
android:usesPermissionFlags="neverForLocation"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />

<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
android:required="false"/>
<uses-feature
android:name="android.hardware.location"
android:required="false" />
android:required="false"/>
<uses-feature
android:name="android.hardware.location.gps"
android:required="false" />
android:required="false"/>
<uses-feature
android:name="android.hardware.location.network"
android:required="false" />
android:required="false"/>
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
android:required="false"/>

<permission-group
android:name="commcare.permission-group.DATABASE"
android:description="@string/permission_content_provider_description"
android:label="@string/permission_content_provider_label" />
android:label="@string/permission_content_provider_label"
/>

<permission-group
android:name="commcare.permission-group.EXTERNAL_ACTION"
android:description="@string/permission_external_action_description"
android:label="@string/permission_external_action_label" />
android:label="@string/permission_external_action_label"
/>

<permission-group
android:name="commcare.permission-group.INTERNAL_ACTION"
android:label="@string/permission_group_internal_action_label"
/>

<permission
android:name="${applicationId}.provider.cases.read"
android:description="@string/permission_content_provider_description"
android:label="@string/permission_content_provider_label"
android:name="${applicationId}.provider.cases.read"
android:permissionGroup="commcare.permission-group.DATABASE"
android:protectionLevel="dangerous" />
android:protectionLevel="dangerous">
</permission>

<permission
android:name="${applicationId}.permission.COMMCARE_LOGOUT"
android:description="@string/permission_commcare_logout_description"
android:label="@string/permission_commcare_logout_label"
android:permissionGroup="commcare.permission-group.EXTERNAL_ACTION"
android:protectionLevel="dangerous" />
android:protectionLevel="dangerous">
</permission>

<permission
android:name="${applicationId}.permission.PROTECT_FALSELY_EXPOSED_COMPONENTS"
Expand All @@ -96,17 +100,12 @@
</intent>
<intent>
<action android:name="android.intent.action.SEND" />

<data android:mimeType="*/*" />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Wildcard MIME types in <data> tags.
You’re allowing matching of all file types ("*/*") and schemes. This can be very broad and pose security or UX issues if your app handles unexpected file contents.

Also applies to: 107-107

</intent>
<intent>
<action android:name="android.intent.action.VIEW" />

<data
android:mimeType="*/*"
android:scheme="*" />
<data android:mimeType="*/*" android:scheme="*" />
</intent>

<package android:name="com.google.android.apps.maps" />
<package android:name="org.commcare.dalvik.reminders" />
<package android:name="callout.commcare.org.sendussd" />
Expand Down Expand Up @@ -183,13 +182,19 @@
<activity android:name="org.commcare.activities.MenuActivity" />
<activity
android:name="org.commcare.activities.connect.ConnectIdActivity"
android:theme="@style/NoAppBarTheme"
android:exported="true" />
android:theme="@style/NoAppBarTheme" />
<activity
android:name="org.commcare.activities.connect.ConnectActivity"
android:exported="true" />
android:name="org.commcare.activities.connect.ConnectActivity" />
<activity android:name="org.commcare.activities.AppSelectActivity" />

<service android:name="com.google.android.gms.metadata.ModuleDependencies"
android:enabled="false"
android:exported="false"
tools:ignore="MissingClass">
<intent-filter>
<action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>
<meta-data android:name="photopicker_activity:0:required" android:value="" />
</service>
<provider
android:name="org.commcare.provider.FormsProvider"
android:authorities="${odkProvider}.forms"
Expand Down
6 changes: 6 additions & 0 deletions app/assets/locales/android_translatable_strings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -533,6 +533,10 @@ login.attempt.fail.changed.title=Password Changed since Last Login
login.attempt.fail.changed.detail=You've logged in with a new password since you're last login. You may need to log in with your old credentials to ensure you have no unsent data.
login.attempt.fail.changed.action=If you had unsent data or incomplete forms on the phone before you logged in with your new password you should log out, and log in with your old password. Make sure all your unsent forms are sent and incomplete forms are submitted, then log in again with your new password and sync.

login.attempt.insufficient.role.permission.title=User doesn't have permission to access the CommCare application
login.attempt.insufficient.role.permission.detail=The role assigned to your user doesn't have permission to access CommCare mobile application
login.attempt.insufficient.role.permission.action=Contact Support for assistance with this matter

notification.credential.mismatch.title=Mismatching Login Credentials
notification.credential.mismatch.detail=The server recognized your password, but the password it sent to the device does not match
notification.credential.mismatch.action=Contact CommCare Support for assistance with your account
Expand Down Expand Up @@ -996,3 +1000,5 @@ background.sync.fail=Background sync failed. Please try to trigger a normal Sync
android.package.name.org.commcare.dalvik.reminders=CommCare Reminders
android.package.name.callout.commcare.org.sendussd=Commcare USSD
android.package.name.org.commcare.dalvik.abha=CommCare ABHA

location.capture.cancelled=Location capture cancelled
5 changes: 2 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ dependencies {
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3'
testImplementation 'io.mockk:mockk:1.12.7'
testImplementation 'org.json:json:20231013'
testImplementation 'org.mockito:mockito-core:5.5.0'
testImplementation 'org.json:json:20140107'
Comment on lines +47 to +48
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Duplicate JSON Dependency Versions Detected

The new changes introduce a second declaration of the org.json:json dependency with version 20140107 (line 48) while an earlier declaration uses version 20231013 (line 46). This duplication can lead to version conflicts and unexpected behavior during testing. Please confirm which version is intended for use and remove the redundant dependency declaration.

testImplementation project(path: ':commcare-core', configuration: 'testsAsJar')

androidTestImplementation 'androidx.test:runner:1.4.0'
Expand Down Expand Up @@ -109,7 +111,6 @@ dependencies {
implementation 'com.google.firebase:firebase-messaging:21.1.0'
implementation 'com.google.firebase:firebase-crashlytics:17.2.1'
implementation 'androidx.legacy:legacy-support-core-ui:1.0.0'

implementation('com.github.bumptech.glide:glide:4.9.0') {
exclude group: 'com.android.support'
}
Expand Down Expand Up @@ -306,9 +307,7 @@ android {
buildConfigField 'String', 'ANALYTICS_TRACKING_ID_LIVE', "\"${project.ext.ANALYTICS_TRACKING_ID_LIVE}\""
buildConfigField 'String', 'ANALYTICS_TRACKING_ID_DEV', "\"${project.ext.ANALYTICS_TRACKING_ID_DEV}\""
buildConfigField 'String', 'MAPBOX_SDK_API_KEY', "\"${project.ext.MAPBOX_SDK_API_KEY}\""

buildConfigField "String", "FIREBASE_DATABASE_URL", "\"${project.ext.FIREBASE_DATABASE_URL}\""

buildConfigField 'String', 'CCC_HOST', "\"connect.dimagi.com\""

testInstrumentationRunner 'org.commcare.CommCareJUnitRunner'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,7 @@ abstract class BaseTest {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
appPermissions.addAll(arrayOf(
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.READ_MEDIA_AUDIO,
Manifest.permission.READ_MEDIA_VIDEO,
Manifest.permission.POST_NOTIFICATIONS))
} else {
appPermissions.addAll(arrayOf(
Expand Down
Binary file modified app/res/drawable-ldpi/ic_blue_backward.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-ldpi/ic_blue_forward.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-ldpi/icon_chevron_left_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-ldpi/icon_chevron_right_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-mdpi/ic_blue_backward.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-mdpi/ic_blue_forward.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-mdpi/icon_chevron_left_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-mdpi/icon_chevron_right_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-xhdpi/ic_blue_backward.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-xhdpi/ic_blue_forward.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-xhdpi/icon_chevron_left_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-xhdpi/icon_chevron_right_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-xxhdpi/ic_blue_backward.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable-xxhdpi/ic_blue_forward.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable/icon_auto_advance_arrow.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable/icon_chevron_left_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable/icon_chevron_left_primary.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable/icon_chevron_right_brand.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable/icon_chevron_right_primary.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable/icon_new.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/res/drawable/icon_next.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions app/res/layout/entity_select_layout.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
android:visibility="gone"/>

<RelativeLayout
android:id="@+id/progress_container"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_below="@id/entity_select_filter_dropdown">
Expand All @@ -63,8 +64,18 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>

<TextView
android:id="@+id/progress_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/entity_select_loading"
android:padding="8dp"
android:layout_centerInParent="true" />

</RelativeLayout>


<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
Expand Down
9 changes: 3 additions & 6 deletions app/res/layout/screen_form_entry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@
android:id="@+id/nav_btn_prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:background="@drawable/selector_button_press"
android:minHeight="@dimen/new_progressbar_button_minheight"
Expand All @@ -87,8 +86,7 @@
android:id="@+id/nav_prog_bar"
android:indeterminate="false"
android:indeterminateOnly="false"
android:layout_centerVertical="true"
android:layout_height="32dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/content_start"
android:layout_marginLeft="@dimen/content_start"
android:layout_marginRight="@dimen/content_start"
Expand All @@ -99,8 +97,8 @@
android:layout_toStartOf="@+id/nav_btn_next"
android:layout_width="wrap_content"
android:max="100"
android:paddingBottom="@dimen/content_start"
android:paddingTop="@dimen/content_start"
android:paddingBottom="@dimen/progressbar_vertical_padding"
android:paddingTop="@dimen/progressbar_vertical_padding"
android:progress="0"
android:progressDrawable="@drawable/progressbar_modern" />

Expand All @@ -110,7 +108,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/selector_button_press"
android:minHeight="@dimen/new_progressbar_button_minheight"
android:minWidth="@dimen/new_progressbar_button_minwidth"
Expand Down
4 changes: 2 additions & 2 deletions app/res/layout/square_button_text.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
android:paddingBottom="@dimen/standard_spacer"
android:paddingLeft="@dimen/standard_spacer"
android:paddingRight="@dimen/standard_spacer"
android:textSize="@dimen/font_size_xlarge"
app:text_size_small="@dimen/font_size_large"
android:textSize="@dimen/font_size_large"
app:text_size_small="@dimen/font_size_medium"
android:paddingStart="@dimen/standard_spacer"
android:paddingEnd="@dimen/standard_spacer" />
</RelativeLayout>
6 changes: 3 additions & 3 deletions app/res/layout/square_card.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
android:paddingBottom="@dimen/standard_spacer"
android:paddingLeft="@dimen/standard_spacer"
android:paddingRight="@dimen/standard_spacer"
android:textSize="@dimen/font_size_xlarge"
app:text_size_small="@dimen/font_size_large"
android:textSize="@dimen/font_size_large"
app:text_size_small="@dimen/font_size_medium"
android:paddingStart="@dimen/standard_spacer"
android:paddingEnd="@dimen/standard_spacer" />
</RelativeLayout>
Expand All @@ -54,6 +54,6 @@
android:layout_below="@+id/card"
android:layout_gravity="end"
android:padding="@dimen/help_text_padding"
android:textSize="@dimen/font_size_medium"/>
android:textSize="@dimen/font_size_small"/>
</RelativeLayout>
</androidx.cardview.widget.CardView>
8 changes: 4 additions & 4 deletions app/res/values-w320dp/dimens.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="edit_text_question_widget_compact_width">100dp</dimen>
<dimen name="font_size_small">12sp</dimen>
<dimen name="font_size_medium">15sp</dimen>
<dimen name="font_size_large">18sp</dimen>
<dimen name="font_size_xlarge">21sp</dimen>
<dimen name="font_size_small">14sp</dimen>
<dimen name="font_size_medium">17sp</dimen>
<dimen name="font_size_large">19sp</dimen>
<dimen name="font_size_xlarge">23sp</dimen>
<dimen name="cell_padding_vertical">8sp</dimen>
<dimen name="cell_padding_horizontal">8sp</dimen>
<dimen name="row_padding_vertical">8sp</dimen>
Expand Down
Loading