5calls / ios Goto Github PK
View Code? Open in Web Editor NEWiOS app for 5calls.org
Home Page: https://itunes.apple.com/us/app/5-calls/id1202558609?mt=8
License: MIT License
iOS app for 5calls.org
Home Page: https://itunes.apple.com/us/app/5-calls/id1202558609?mt=8
License: MIT License
I'm getting the Split Congressional District alert even when I use the Core Location option in lieu of entering my Zip code. If there's something about my location that makes the lookup unreliable, perhaps the dialog should be reworded?
I can see about collecting some additional info later for you folks.
Need:
I should have caught this.
We need to switch out the iOS 10 only open(_:options:completionHandler:)
call with the depreciated in iOS 10
old openURL
Need to get a few people as testers to send out a beta release.
attempt to insert row 8 into section 0, but there are only 8 rows in section 0 after the update
Not sure why or how this happened, but @nickoneill reported this.
I thought it was maybe Transparency turned off in Accessibility but that wasn't it. Hopefully someone has seen similar and can help reproduce this one.
There's a lot more information about this crash on crashlytics.com:
https://fabric.io/fickle-bits/ios/apps/org.fivecalls.fivecalls-ios/issues/58aa515b0aeb16625b7f8441
On a fresh install sometimes the Issues Detail screen doesn't show the contacts after setting the location from the Issues Detail screen.
I don't think this bug needs to be fixed for 1.0 as I can't reproduce it reliably.
Partial Steps To Reproduce:
Instead of your Reps you'll sometimes see the "Set your location..." text again.
To get this I did Steps 3 & 4 a few times but exiting the location screen before actually entering it and got it to reproduce. May be related to that sequence.
You can see this with PR #69 which updates the Method of Contact buttons to reflect previous choices. If I go into a contact, select a method of contact (say, "Unavailable"), exit, and re-enter, if I select a different method, the next time I go back in, "Unavailable" is still selected.
In matching the style of the website, I'd like to embed the Roboto font and use it where appropriate.
Definitely for the copy in the walkthrough, but probably for all labels, buttons, view controller titles, etc. (we can probably accomplish most of this w/ appearance proxies).
Here's a link on how to embed fonts on iOS.
Currently the app uses hard-coded strings. We're prepping to localize everything into some other languages. The first step is to extract the strings in the app into strings files so we can hand these off to translators.
There's a lot more information about this crash on crashlytics.com:
https://fabric.io/fickle-bits/ios/apps/org.fivecalls.fivecalls-ios/issues/58a744b60aeb16625b6a77ad
There's a lot more information about this crash on crashlytics.com:
https://fabric.io/fickle-bits/ios/apps/org.fivecalls.fivecalls-ios/issues/58a350f50aeb16625b49866a
Tap Edit Location, type a zip.
Zip code is validated (5-digits for now) and saved to UserDefaults
.
IssuesViewController
reads the saved and passes to the fetch operation when loading issues.Some feedback from the slack channel:
Thinking ahead, I'd like to get fastlane setup to automatically manage some of the tedium around distribution.
For now, a task to build & submit to Testflight would be a good first step.
Need to record:
This will be used to provide info for a screen called "My Impact", as well as possibly serve future efforts to determine which numbers get through the most, etc.
Want to include:
Not quite sure where to surface the button for this, maybe a tiny (i) button in the header? Open to suggestions.
Feedback from [email protected] : This button doesn't feel like a button (no tint color, no change in color when tapped)
Created | Mon Feb 20 2017 02:34:38 GMT+0000 (UTC) |
CFBundleShortVersion | 1.1 |
CFBundleVersion | 11 |
App uptime | 1671.638 |
Build | 108 |
Device type | iPad Air 2 |
Device name | Ben’s iPad |
Screen size | 1024 |
Screen size | 1024px by 768px |
Battery | 49% Unplugged |
Memory free | 55 MB / 1558 MB |
Disk free | 9338 MB / 116397 MB |
Network IP | 192.168.1.78 |
Tap Edit Location, tap "Use My Location".
CLLocationManager
UserDefaults
, preferrably under a single key w/ a dictionary valueIssuesViewController
reads the saved location / address and passes to the fetch operation when loading issues.Data looks like this:
{
"id":"TX-JohnCornyn",
"name":"John Cornyn",
"phone":"202-224-2934",
"photoURL":"http://bioguide.congress.gov/bioguide/photo/C/C001056.jpg",
"party":"Republican",
"state":"TX",
"reason":"This is one of your two senators",
"area":"Senate"
}
This is already parsed into the Contact
struct.
Show the contact information for the first contact (or random?) as well as the issue script. Looks like this:
Buttons to report the outcome of the call:
Right now we have static images for the contacts. Need to remotely load in images for the contact cell and the CallScriptViewController
Feedback from [email protected] : Possible to have blur w/ this header in split view?
Created | Mon Feb 20 2017 02:12:00 GMT+0000 (UTC) |
CFBundleShortVersion | 1.1 |
CFBundleVersion | 11 |
App uptime | 317.3621 |
Build | 108 |
Device type | iPad Air 2 |
Device name | Ben’s iPad |
Screen size | 1024 |
Screen size | 1024px by 768px |
Battery | 53% Unplugged |
Memory free | 60 MB / 1586 MB |
Disk free | 9341 MB / 116397 MB |
Network IP | 192.168.1.78 |
Need README with:
I often call my representatives' local offices for a few reasons:
It would be nice if 5Calls would show all office numbers for each representative, not just the DC offices. Not sure if the API being used provides this info.
Feedback from [email protected] : Test feedback
Created | Wed Feb 08 2017 01:11:17 GMT+0000 (UTC) |
CFBundleShortVersion | 1.0 |
CFBundleVersion | 4 |
App uptime | 17.77419 |
Build | 26 |
Device type | iPhone 7 |
Device name | iBen |
Screen size | 375 |
Screen size | 375px by 667px |
Battery | 86% Unplugged |
Memory free | 182 MB / 1823 MB |
Disk free | 18743 MB / 116205 MB |
Network IP | 192.168.1.71 |
There's a lot more information about this crash on crashlytics.com:
https://fabric.io/fickle-bits/ios/apps/org.fivecalls.fivecalls-ios/issues/58a506e00aeb16625b573d4d
I'd like to add a one-time alert when the user calls to give them some quick instructions about the need to double-tap & come back so they can read the script.
First time user calls, present an alert:
We're about to place the call. When it starts dialing, turn on Speaker phone, then double tap the home button come back to this app so you can read the script.
OK, Got it | Cancel
When we press this button:
We need some razzle dazzle on the contact changing on the Script Screen.
The API was just updated to include field offices for contacts. It currently looks like this:
{
"area": "Senate",
"field_offices": [
{
"city": "Central Texas",
"phone": "512-916-5834"
},
{
"city": "East Texas",
"phone": "903-593-5130"
},
{
"city": "North Texas",
"phone": "214-599-8749"
},
{
"city": "South Texas",
"phone": "956-686-7339"
},
{
"city": "South/Central Texas",
"phone": "210-340-2885"
},
{
"city": "Southeast Texas",
"phone": "713-718-3057"
}
],
"id": "TX-TedCruz",
"name": "Ted Cruz",
"party": "Republican",
"phone": "202-224-5922",
"photoURL": "http://www.cruz.senate.gov/files/images/OfficialPortrait.jpg",
"reason": "This is one of your two senators",
"state": "TX"
}
We need a similar mechanism for choosing which number to call on the CallScriptViewController
There's a lot more information about this crash on crashlytics.com:
https://fabric.io/fickle-bits/ios/apps/org.fivecalls.fivecalls-ios/issues/58a1d1600aeb16625b3dc43f
HTTP POST to /report
including
'unavailable'
, 'vm'
, 'contacted'
)Then save to local persistence (a plist, or maybe Pantry? 😄 ) the outcome of this issue.
Issues that have a saved result show up w/ a green checkmark on the issues list. This can be done in IssuesViewController
by setting the isChecked
flag on IssueCell
.
Feedback from [email protected] : When leaving call feedback on iPad, it's not possible to navigate back to the issue detail (in order to choose a different candidate. Also, when you finish making your calls, the issue list isn't updated to reflect the check mark.
Created | Mon Feb 20 2017 02:09:09 GMT+0000 (UTC) |
CFBundleShortVersion | 1.1 |
CFBundleVersion | 11 |
App uptime | 142.9053 |
Build | 108 |
Device type | iPad Air 2 |
Device name | Ben’s iPad |
Screen size | 1024 |
Screen size | 1024px by 768px |
Battery | 54% Unplugged |
Memory free | 44 MB / 1588 MB |
Disk free | 9344 MB / 116397 MB |
Network IP | 192.168.1.78 |
I'd be happy to help get the build going on a CI server. Any preference on what to use? Travis or Buddy Build seem like the most likely candidates.
I noticed that once we supported dynamic height on the issues list, the table reshuffles strangely when scrolling.
Another (probably related) thing is this occasionally causes our labels to no longer wrap & cause their cell to increase in height, instead reverting to truncating with ellipses ('...').
This is dependent on https://github.com/5calls/5calls/issues/75 to request issue details for a specific issue id.
There is no indicator on that screen to show if you've contacted that contact or not.
One suggestion is a CheckboxView
in a titleView along with Contact X of Y
.
There's a lot more information about this crash on crashlytics.com:
http://example.com/path/to/fabric/issue
# Crashlytics - plaintext stacktrace downloaded by Ben Scheirman at Tue, 07 Feb 2017 19:31:02 GMT
# URL: https://fabric.io/fickle-bits/ios/apps/org.fivecalls.fivecalls-ios/issues/589a1dfb0aeb16625b02e58e/sessions/a65ebab513d945a489e94dc545bba5a0_74e893e8f3e64c04b8d47824b7fa3572_0_v1
# Organization: FICKLE BITS, LLC
# Platform: ios
# Application: 5 Calls
# Version: 1.0 (4)
# Bundle Identifier: org.fivecalls.FiveCalls-ios
# Issue #: 1
# Issue ID: 589a1dfb0aeb16625b02e58e
# Session ID: a65ebab513d945a489e94dc545bba5a0_74e893e8f3e64c04b8d47824b7fa3572_0_v1
# Date: 2017-02-07T19:20:39Z
# OS Version: 10.2.1 (14D27)
# Device: iPhone 6s
# RAM Free: 10.3%
# Disk Free: 15.7%
#0. Crashed: com.twitter.crashlytics.ios.exception
0 FiveCalls 0x1000c0ec0 CLSProcessRecordAllThreads + 4295577280
1 FiveCalls 0x1000c0ec0 CLSProcessRecordAllThreads + 4295577280
2 FiveCalls 0x1000c0d7c CLSProcessRecordAllThreads + 4295576956
3 FiveCalls 0x1000b152c CLSHandler + 4295513388
4 FiveCalls 0x1000bef84 __CLSExceptionRecord_block_invoke + 4295569284
5 libdispatch.dylib 0x18ec321bc _dispatch_client_callout + 16
6 libdispatch.dylib 0x18ec3f7f0 _dispatch_barrier_sync_f_invoke + 84
7 FiveCalls 0x1000bea28 CLSExceptionRecord + 4295567912
8 FiveCalls 0x1000be85c CLSExceptionRecordNSException + 4295567452
9 FiveCalls 0x1000be47c CLSTerminateHandler() + 4295566460
10 libc++abi.dylib 0x18e7cf66c std::__terminate(void (*)()) + 16
11 libc++abi.dylib 0x18e7cef84 __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 134
12 libobjc.A.dylib 0x18e7e0690 _objc_exception_destructor(void*) + 362
13 CoreFoundation 0x18fda908c +[NSException raise:format:] + 102
14 Foundation 0x19086102c -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112
15 UIKit 0x19612fb4c -[UITableViewRowData _assertValidIndexPath:allowEmptySection:] + 904
16 UIKit 0x19612fbc4 -[UITableViewRowData ensureHeightsFaultedInForIndexPath:availHeight:edgeInset:scrollPosition:] + 84
17 UIKit 0x195e7b4f8 -[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:] + 1792
18 UIKit 0x195e7acb0 -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:] + 52
19 FiveCalls 0x100095818 IssueDetailViewController.scrollToBottom() -> () (IssueDetailViewController.swift)
20 FiveCalls 0x100095874 @objc IssueDetailViewController.scrollToBottom() -> () (IssueDetailViewController.swift)
21 FiveCalls 0x100097334 specialized IssueDetailViewController.(editLocationViewController(EditLocationViewController, didUpdateLocation : UserLocation) -> ()).(closure #1) (IssueDetailViewController.swift)
22 FiveCalls 0x100096f4c partial apply for IssueDetailViewController.(editLocationViewController(EditLocationViewController, didUpdateLocation : UserLocation) -> ()).(closure #1) (IssueDetailViewController.swift)
23 libdispatch.dylib 0x18ec321fc _dispatch_call_block_and_release + 24
24 libdispatch.dylib 0x18ec321bc _dispatch_client_callout + 16
25 libdispatch.dylib 0x18ec36d68 _dispatch_main_queue_callback_4CF + 1000
26 CoreFoundation 0x18fd56810 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
27 CoreFoundation 0x18fd543fc __CFRunLoopRun + 1660
28 CoreFoundation 0x18fc822b8 CFRunLoopRunSpecific + 444
29 GraphicsServices 0x191736198 GSEventRunModal + 180
30 UIKit 0x195cc97fc -[UIApplication _run] + 684
31 UIKit 0x195cc4534 UIApplicationMain + 208
32 FiveCalls 0x1000728a4 main (AppDelegate.swift:14)
33 libdispatch.dylib 0x18ec655b8 (Missing)
--
Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x18fda91b8 __exceptionPreprocess
1 libobjc.A.dylib 0x18e7e055c objc_exception_throw
2 CoreFoundation 0x18fda908c +[NSException raise:format:]
3 Foundation 0x19086102c -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
4 UIKit 0x19612fb4c -[UITableViewRowData _assertValidIndexPath:allowEmptySection:]
5 UIKit 0x19612fbc4 -[UITableViewRowData ensureHeightsFaultedInForIndexPath:availHeight:edgeInset:scrollPosition:]
6 UIKit 0x195e7b4f8 -[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]
7 UIKit 0x195e7acb0 -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]
8 FiveCalls 0x100095818 IssueDetailViewController.scrollToBottom() -> () (IssueDetailViewController.swift)
9 FiveCalls 0x100095874 @objc IssueDetailViewController.scrollToBottom() -> () (IssueDetailViewController.swift)
10 FiveCalls 0x100097334 specialized IssueDetailViewController.(editLocationViewController(EditLocationViewController, didUpdateLocation : UserLocation) -> ()).(closure #1) (IssueDetailViewController.swift)
11 FiveCalls 0x100096f4c partial apply for IssueDetailViewController.(editLocationViewController(EditLocationViewController, didUpdateLocation : UserLocation) -> ()).(closure #1) (IssueDetailViewController.swift)
12 libdispatch.dylib 0x18ec321fc _dispatch_call_block_and_release
13 libdispatch.dylib 0x18ec321bc _dispatch_client_callout
14 libdispatch.dylib 0x18ec36d68 _dispatch_main_queue_callback_4CF
15 CoreFoundation 0x18fd56810 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
16 CoreFoundation 0x18fd543fc __CFRunLoopRun
17 CoreFoundation 0x18fc822b8 CFRunLoopRunSpecific
18 GraphicsServices 0x191736198 GSEventRunModal
19 UIKit 0x195cc97fc -[UIApplication _run]
20 UIKit 0x195cc4534 UIApplicationMain
21 FiveCalls 0x1000728a4 main (AppDelegate.swift:14)
22 libdispatch.dylib 0x18ec655b8 (Missing)
#0. Crashed: com.twitter.crashlytics.ios.exception
0 FiveCalls 0x1000c0ec0 CLSProcessRecordAllThreads + 4295577280
1 FiveCalls 0x1000c0ec0 CLSProcessRecordAllThreads + 4295577280
2 FiveCalls 0x1000c0d7c CLSProcessRecordAllThreads + 4295576956
3 FiveCalls 0x1000b152c CLSHandler + 4295513388
4 FiveCalls 0x1000bef84 __CLSExceptionRecord_block_invoke + 4295569284
5 libdispatch.dylib 0x18ec321bc _dispatch_client_callout + 16
6 libdispatch.dylib 0x18ec3f7f0 _dispatch_barrier_sync_f_invoke + 84
7 FiveCalls 0x1000bea28 CLSExceptionRecord + 4295567912
8 FiveCalls 0x1000be85c CLSExceptionRecordNSException + 4295567452
9 FiveCalls 0x1000be47c CLSTerminateHandler() + 4295566460
10 libc++abi.dylib 0x18e7cf66c std::__terminate(void (*)()) + 16
11 libc++abi.dylib 0x18e7cef84 __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 134
12 libobjc.A.dylib 0x18e7e0690 _objc_exception_destructor(void*) + 362
13 CoreFoundation 0x18fda908c +[NSException raise:format:] + 102
14 Foundation 0x19086102c -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112
15 UIKit 0x19612fb4c -[UITableViewRowData _assertValidIndexPath:allowEmptySection:] + 904
16 UIKit 0x19612fbc4 -[UITableViewRowData ensureHeightsFaultedInForIndexPath:availHeight:edgeInset:scrollPosition:] + 84
17 UIKit 0x195e7b4f8 -[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:] + 1792
18 UIKit 0x195e7acb0 -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:] + 52
19 FiveCalls 0x100095818 IssueDetailViewController.scrollToBottom() -> () (IssueDetailViewController.swift)
20 FiveCalls 0x100095874 @objc IssueDetailViewController.scrollToBottom() -> () (IssueDetailViewController.swift)
21 FiveCalls 0x100097334 specialized IssueDetailViewController.(editLocationViewController(EditLocationViewController, didUpdateLocation : UserLocation) -> ()).(closure #1) (IssueDetailViewController.swift)
22 FiveCalls 0x100096f4c partial apply for IssueDetailViewController.(editLocationViewController(EditLocationViewController, didUpdateLocation : UserLocation) -> ()).(closure #1) (IssueDetailViewController.swift)
23 libdispatch.dylib 0x18ec321fc _dispatch_call_block_and_release + 24
24 libdispatch.dylib 0x18ec321bc _dispatch_client_callout + 16
25 libdispatch.dylib 0x18ec36d68 _dispatch_main_queue_callback_4CF + 1000
26 CoreFoundation 0x18fd56810 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
27 CoreFoundation 0x18fd543fc __CFRunLoopRun + 1660
28 CoreFoundation 0x18fc822b8 CFRunLoopRunSpecific + 444
29 GraphicsServices 0x191736198 GSEventRunModal + 180
30 UIKit 0x195cc97fc -[UIApplication _run] + 684
31 UIKit 0x195cc4534 UIApplicationMain + 208
32 FiveCalls 0x1000728a4 main (AppDelegate.swift:14)
33 libdispatch.dylib 0x18ec655b8 (Missing)
#1. Thread
0 libsystem_kernel.dylib 0x18ed77a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x18ee3b344 _pthread_wqthread + 1452
2 libsystem_pthread.dylib 0x18ee3ad8c start_wqthread + 4
#2. com.apple.uikit.eventfetch-thread
0 libsystem_kernel.dylib 0x18ed59188 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x18ed58ff8 mach_msg + 72
2 CoreFoundation 0x18fd565d0 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x18fd541ec __CFRunLoopRun + 1132
4 CoreFoundation 0x18fc822b8 CFRunLoopRunSpecific + 444
5 Foundation 0x1907bf26c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6 Foundation 0x1907dfdd0 -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7 UIKit 0x19663dc38 -[UIEventFetcher threadMain] + 136
8 Foundation 0x1908bce68 __NSThread__start__ + 1024
9 libsystem_pthread.dylib 0x18ee3d850 <redacted> + 240
10 libsystem_pthread.dylib 0x18ee3d760 _pthread_start + 282
11 libsystem_pthread.dylib 0x18ee3ad94 thread_start + 4
#3. Thread
0 libsystem_kernel.dylib 0x18ed77a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x18ee3b344 _pthread_wqthread + 1452
2 libsystem_pthread.dylib 0x18ee3ad8c start_wqthread + 4
#4. com.twitter.crashlytics.ios.MachExceptionServer
0 libsystem_kernel.dylib 0x18ed59188 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x18ed58ff8 mach_msg + 72
2 FiveCalls 0x1000ac38c CLSMachExceptionServer + 4295492492
3 libsystem_pthread.dylib 0x18ee3d850 <redacted> + 240
4 libsystem_pthread.dylib 0x18ee3d760 _pthread_start + 282
5 libsystem_pthread.dylib 0x18ee3ad94 thread_start + 4
#5. Thread
0 libsystem_kernel.dylib 0x18ed77a88 __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x18ee3b344 _pthread_wqthread + 1452
2 libsystem_pthread.dylib 0x18ee3ad8c start_wqthread + 4
#6. Thread
0 libsystem_pthread.dylib 0x18ee3ad88 pthread_workqueue_addthreads_np + 126
#7. com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0x18ed59188 mach_msg_trap + 8
1 libsystem_kernel.dylib 0x18ed58ff8 mach_msg + 72
2 CoreFoundation 0x18fd565d0 __CFRunLoopServiceMachPort + 192
3 CoreFoundation 0x18fd541ec __CFRunLoopRun + 1132
4 CoreFoundation 0x18fc822b8 CFRunLoopRunSpecific + 444
5 CFNetwork 0x190487a70 <redacted> + 336
6 Foundation 0x1908bce68 __NSThread__start__ + 1024
7 libsystem_pthread.dylib 0x18ee3d850 <redacted> + 240
8 libsystem_pthread.dylib 0x18ee3d760 _pthread_start + 282
9 libsystem_pthread.dylib 0x18ee3ad94 thread_start + 4
every time the view appears, the avatarImage
flashes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.