├── .gitignore ├── .gitmodules ├── .project ├── .tx └── config ├── AndroidManifest.xml ├── LICENSE ├── README.md ├── build-native.sh ├── external ├── dropbox-android-sdk │ ├── CHANGELOG │ ├── LICENSE │ ├── README │ ├── config │ │ └── testing.json.example │ ├── docs │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── com │ │ │ └── dropbox │ │ │ │ └── client2 │ │ │ │ ├── DropboxAPI.Account.html │ │ │ │ ├── DropboxAPI.BasicUploadRequest.html │ │ │ │ ├── DropboxAPI.ChunkedUploadRequest.html │ │ │ │ ├── DropboxAPI.ChunkedUploadResponse.html │ │ │ │ ├── DropboxAPI.ChunkedUploader.html │ │ │ │ ├── DropboxAPI.CreatedCopyRef.html │ │ │ │ ├── DropboxAPI.DeltaEntry.JsonExtractor.html │ │ │ │ ├── DropboxAPI.DeltaEntry.html │ │ │ │ ├── DropboxAPI.DeltaPage.html │ │ │ │ ├── DropboxAPI.DropboxFileInfo.html │ │ │ │ ├── DropboxAPI.DropboxInputStream.html │ │ │ │ ├── DropboxAPI.DropboxLink.html │ │ │ │ ├── DropboxAPI.Entry.html │ │ │ │ ├── DropboxAPI.NameDetails.html │ │ │ │ ├── DropboxAPI.RequestAndResponse.html │ │ │ │ ├── DropboxAPI.TeamInfo.html │ │ │ │ ├── DropboxAPI.ThumbFormat.html │ │ │ │ ├── DropboxAPI.ThumbSize.html │ │ │ │ ├── DropboxAPI.UploadRequest.html │ │ │ │ ├── DropboxAPI.html │ │ │ │ ├── ProgressListener.Adjusted.html │ │ │ │ ├── ProgressListener.ProgressHttpEntity.html │ │ │ │ ├── ProgressListener.html │ │ │ │ ├── RESTUtility.RequestMethod.html │ │ │ │ ├── RESTUtility.html │ │ │ │ ├── SdkVersion.html │ │ │ │ ├── SecureSSLSocketFactory.html │ │ │ │ ├── VersionedSerializable.html │ │ │ │ ├── android │ │ │ │ ├── AndroidAuthSession.html │ │ │ │ ├── AuthActivity.SecurityProvider.html │ │ │ │ ├── AuthActivity.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ │ ├── exception │ │ │ │ ├── DropboxException.html │ │ │ │ ├── DropboxFileSizeException.html │ │ │ │ ├── DropboxIOException.html │ │ │ │ ├── DropboxLocalStorageFullException.html │ │ │ │ ├── DropboxParseException.html │ │ │ │ ├── DropboxPartialFileException.html │ │ │ │ ├── DropboxProxyChangeException.html │ │ │ │ ├── DropboxSSLException.html │ │ │ │ ├── DropboxServerException.Error.html │ │ │ │ ├── DropboxServerException.html │ │ │ │ ├── DropboxUnlinkedException.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ │ ├── jsonextract │ │ │ │ ├── JsonExtractionException.html │ │ │ │ ├── JsonExtractor.html │ │ │ │ ├── JsonList.Extractor.html │ │ │ │ ├── JsonList.html │ │ │ │ ├── JsonMap.html │ │ │ │ ├── JsonThing.OptionalExtractor.html │ │ │ │ ├── JsonThing.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── session │ │ │ │ ├── AbstractSession.html │ │ │ │ ├── AccessTokenPair.html │ │ │ │ ├── AppKeyPair.html │ │ │ │ ├── RequestTokenPair.html │ │ │ │ ├── Session.AccessType.html │ │ │ │ ├── Session.ProxyInfo.html │ │ │ │ ├── Session.html │ │ │ │ ├── TokenPair.html │ │ │ │ ├── WebAuthSession.WebAuthInfo.html │ │ │ │ ├── WebAuthSession.html │ │ │ │ ├── WebOAuth2Session.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-frame.html │ │ ├── overview-summary.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── resources │ │ │ ├── background.gif │ │ │ ├── tab.gif │ │ │ ├── titlebar.gif │ │ │ └── titlebar_end.gif │ │ ├── serialized-form.html │ │ └── stylesheet.css │ ├── examples │ │ ├── CopyBetweenAccounts │ │ │ ├── .gitignore │ │ │ ├── CopyBetweenAccounts.java │ │ │ ├── README │ │ │ ├── compile │ │ │ └── run │ │ ├── DBRoulette │ │ │ ├── .gitignore │ │ │ ├── .project │ │ │ ├── AndroidManifest.xml │ │ │ ├── default.properties │ │ │ ├── libs │ │ │ │ ├── HTTPCOMPONENTS-LICENSE.txt │ │ │ │ ├── JSON-SIMPLE-LICENSE.txt │ │ │ │ ├── dropbox-android-sdk-1.6.3.jar │ │ │ │ ├── httpmime-4.0.3.jar │ │ │ │ └── json_simple-1.1.jar │ │ │ ├── project.properties │ │ │ ├── res │ │ │ │ ├── drawable │ │ │ │ │ └── icon.png │ │ │ │ ├── layout │ │ │ │ │ └── main.xml │ │ │ │ └── values │ │ │ │ │ └── strings.xml │ │ │ └── src │ │ │ │ └── com │ │ │ │ └── dropbox │ │ │ │ └── android │ │ │ │ └── sample │ │ │ │ ├── DBRoulette.java │ │ │ │ ├── DownloadRandomPicture.java │ │ │ │ └── UploadPicture.java │ │ ├── SearchCache │ │ │ ├── .gitignore │ │ │ ├── README │ │ │ ├── SearchCache.java │ │ │ ├── compile │ │ │ └── run │ │ ├── compile-helper │ │ └── run-helper │ ├── intellij │ │ ├── .gitignore │ │ ├── .idea │ │ │ ├── .name │ │ │ ├── compiler.xml │ │ │ ├── copyright │ │ │ │ └── profiles_settings.xml │ │ │ ├── encodings.xml │ │ │ ├── inspectionProfiles │ │ │ │ ├── Project_Default.xml │ │ │ │ └── profiles_settings.xml │ │ │ ├── libraries │ │ │ │ ├── android.xml │ │ │ │ ├── bcprov_jdk16_146.xml │ │ │ │ ├── json_simple_1_1.xml │ │ │ │ └── test.xml │ │ │ ├── misc.xml │ │ │ ├── modules.xml │ │ │ ├── scopes │ │ │ │ └── scope_settings.xml │ │ │ └── vcs.xml │ │ ├── Main.iml │ │ └── examples-DBRoulette.iml │ ├── javadoc.css │ ├── lib │ │ ├── JSON-SIMPLE-LICENSE.txt │ │ ├── dropbox-android-sdk-1.6.3.jar │ │ ├── extra │ │ │ └── android.jar │ │ ├── json_simple-1.1.jar │ │ └── test │ │ │ ├── BCPROV-LICENSE.txt │ │ │ ├── COMMONS-LOGGING-LICENSE.txt │ │ │ ├── HTTPCOMPONENTS-LICENSE.txt │ │ │ ├── bcprov-jdk16-146.jar │ │ │ ├── commons-logging-1.1.1.jar │ │ │ ├── httpclient-4.0.3.jar │ │ │ ├── httpcore-4.0.1.jar │ │ │ ├── httpmime-4.0.3.jar │ │ │ └── junit-4.10.jar │ ├── src │ │ ├── main │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── dropbox │ │ │ │ └── client2 │ │ │ │ ├── DropboxAPI.java │ │ │ │ ├── ProgressListener.java │ │ │ │ ├── RESTUtility.java │ │ │ │ ├── SdkVersion.java │ │ │ │ ├── SecureSSLSocketFactory.java │ │ │ │ ├── VersionedSerializable.java │ │ │ │ ├── android │ │ │ │ ├── AndroidAuthSession.java │ │ │ │ └── AuthActivity.java │ │ │ │ ├── exception │ │ │ │ ├── DropboxException.java │ │ │ │ ├── DropboxFileSizeException.java │ │ │ │ ├── DropboxIOException.java │ │ │ │ ├── DropboxLocalStorageFullException.java │ │ │ │ ├── DropboxParseException.java │ │ │ │ ├── DropboxPartialFileException.java │ │ │ │ ├── DropboxProxyChangeException.java │ │ │ │ ├── DropboxSSLException.java │ │ │ │ ├── DropboxServerException.java │ │ │ │ └── DropboxUnlinkedException.java │ │ │ │ ├── jsonextract │ │ │ │ ├── JsonBase.java │ │ │ │ ├── JsonExtractionException.java │ │ │ │ ├── JsonExtractor.java │ │ │ │ ├── JsonList.java │ │ │ │ ├── JsonMap.java │ │ │ │ └── JsonThing.java │ │ │ │ └── session │ │ │ │ ├── AbstractSession.java │ │ │ │ ├── AccessTokenPair.java │ │ │ │ ├── AppKeyPair.java │ │ │ │ ├── RequestTokenPair.java │ │ │ │ ├── Session.java │ │ │ │ ├── TokenPair.java │ │ │ │ ├── WebAuthSession.java │ │ │ │ └── WebOAuth2Session.java │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── dropbox │ │ │ └── client2 │ │ │ ├── DropboxAPITest.java │ │ │ ├── RESTUtilityTest.java │ │ │ ├── SessionTest.java │ │ │ └── Util.java │ └── testfiles │ │ ├── Costa Rican Frog.jpg │ │ ├── dropbox_song.mp3 │ │ └── foo.txt └── google-play-services │ ├── .gitignore │ ├── .project │ ├── AndroidManifest.xml │ ├── README.txt │ ├── libs │ ├── google-play-services.jar │ └── google-play-services.jar.properties │ ├── proguard-project.txt │ ├── project.properties │ ├── res │ ├── color │ │ ├── common_signin_btn_text_dark.xml │ │ └── common_signin_btn_text_light.xml │ ├── drawable-hdpi │ │ ├── common_signin_btn_icon_disabled_dark.9.png │ │ ├── common_signin_btn_icon_disabled_focus_dark.9.png │ │ ├── common_signin_btn_icon_disabled_focus_light.9.png │ │ ├── common_signin_btn_icon_disabled_light.9.png │ │ ├── common_signin_btn_icon_focus_dark.9.png │ │ ├── common_signin_btn_icon_focus_light.9.png │ │ ├── common_signin_btn_icon_normal_dark.9.png │ │ ├── common_signin_btn_icon_normal_light.9.png │ │ ├── common_signin_btn_icon_pressed_dark.9.png │ │ ├── common_signin_btn_icon_pressed_light.9.png │ │ ├── common_signin_btn_text_disabled_dark.9.png │ │ ├── common_signin_btn_text_disabled_focus_dark.9.png │ │ ├── common_signin_btn_text_disabled_focus_light.9.png │ │ ├── common_signin_btn_text_disabled_light.9.png │ │ ├── common_signin_btn_text_focus_dark.9.png │ │ ├── common_signin_btn_text_focus_light.9.png │ │ ├── common_signin_btn_text_normal_dark.9.png │ │ ├── common_signin_btn_text_normal_light.9.png │ │ ├── common_signin_btn_text_pressed_dark.9.png │ │ └── common_signin_btn_text_pressed_light.9.png │ ├── drawable-mdpi │ │ ├── common_signin_btn_icon_disabled_dark.9.png │ │ ├── common_signin_btn_icon_disabled_focus_dark.9.png │ │ ├── common_signin_btn_icon_disabled_focus_light.9.png │ │ ├── common_signin_btn_icon_disabled_light.9.png │ │ ├── common_signin_btn_icon_focus_dark.9.png │ │ ├── common_signin_btn_icon_focus_light.9.png │ │ ├── common_signin_btn_icon_normal_dark.9.png │ │ ├── common_signin_btn_icon_normal_light.9.png │ │ ├── common_signin_btn_icon_pressed_dark.9.png │ │ ├── common_signin_btn_icon_pressed_light.9.png │ │ ├── common_signin_btn_text_disabled_dark.9.png │ │ ├── common_signin_btn_text_disabled_focus_dark.9.png │ │ ├── common_signin_btn_text_disabled_focus_light.9.png │ │ ├── common_signin_btn_text_disabled_light.9.png │ │ ├── common_signin_btn_text_focus_dark.9.png │ │ ├── common_signin_btn_text_focus_light.9.png │ │ ├── common_signin_btn_text_normal_dark.9.png │ │ ├── common_signin_btn_text_normal_light.9.png │ │ ├── common_signin_btn_text_pressed_dark.9.png │ │ └── common_signin_btn_text_pressed_light.9.png │ ├── drawable-xhdpi │ │ ├── common_signin_btn_icon_disabled_dark.9.png │ │ ├── common_signin_btn_icon_disabled_focus_dark.9.png │ │ ├── common_signin_btn_icon_disabled_focus_light.9.png │ │ ├── common_signin_btn_icon_disabled_light.9.png │ │ ├── common_signin_btn_icon_focus_dark.9.png │ │ ├── common_signin_btn_icon_focus_light.9.png │ │ ├── common_signin_btn_icon_normal_dark.9.png │ │ ├── common_signin_btn_icon_normal_light.9.png │ │ ├── common_signin_btn_icon_pressed_dark.9.png │ │ ├── common_signin_btn_icon_pressed_light.9.png │ │ ├── common_signin_btn_text_disabled_dark.9.png │ │ ├── common_signin_btn_text_disabled_focus_dark.9.png │ │ ├── common_signin_btn_text_disabled_focus_light.9.png │ │ ├── common_signin_btn_text_disabled_light.9.png │ │ ├── common_signin_btn_text_focus_dark.9.png │ │ ├── common_signin_btn_text_focus_light.9.png │ │ ├── common_signin_btn_text_normal_dark.9.png │ │ ├── common_signin_btn_text_normal_light.9.png │ │ ├── common_signin_btn_text_pressed_dark.9.png │ │ └── common_signin_btn_text_pressed_light.9.png │ ├── drawable │ │ ├── common_signin_btn_icon_dark.xml │ │ ├── common_signin_btn_icon_light.xml │ │ ├── common_signin_btn_text_dark.xml │ │ └── common_signin_btn_text_light.xml │ ├── values-af │ │ └── strings.xml │ ├── values-am │ │ └── strings.xml │ ├── values-ar │ │ └── strings.xml │ ├── values-be │ │ └── strings.xml │ ├── values-bg │ │ └── strings.xml │ ├── values-ca │ │ └── strings.xml │ ├── values-cs │ │ └── strings.xml │ ├── values-da │ │ └── strings.xml │ ├── values-de │ │ └── strings.xml │ ├── values-el │ │ └── strings.xml │ ├── values-en-rGB │ │ └── strings.xml │ ├── values-es-rUS │ │ └── strings.xml │ ├── values-es │ │ └── strings.xml │ ├── values-et │ │ └── strings.xml │ ├── values-fa │ │ └── strings.xml │ ├── values-fi │ │ └── strings.xml │ ├── values-fr │ │ └── strings.xml │ ├── values-hi │ │ └── strings.xml │ ├── values-hr │ │ └── strings.xml │ ├── values-hu │ │ └── strings.xml │ ├── values-in │ │ └── strings.xml │ ├── values-it │ │ └── strings.xml │ ├── values-iw │ │ └── strings.xml │ ├── values-ja │ │ └── strings.xml │ ├── values-ko │ │ └── strings.xml │ ├── values-lt │ │ └── strings.xml │ ├── values-lv │ │ └── strings.xml │ ├── values-ms │ │ └── strings.xml │ ├── values-nb │ │ └── strings.xml │ ├── values-nl │ │ └── strings.xml │ ├── values-pl │ │ └── strings.xml │ ├── values-pt-rBR │ │ └── strings.xml │ ├── values-pt-rPT │ │ └── strings.xml │ ├── values-pt │ │ └── strings.xml │ ├── values-ro │ │ └── strings.xml │ ├── values-ru │ │ └── strings.xml │ ├── values-sk │ │ └── strings.xml │ ├── values-sl │ │ └── strings.xml │ ├── values-sr │ │ └── strings.xml │ ├── values-sv │ │ └── strings.xml │ ├── values-sw │ │ └── strings.xml │ ├── values-th │ │ └── strings.xml │ ├── values-tl │ │ └── strings.xml │ ├── values-tr │ │ └── strings.xml │ ├── values-uk │ │ └── strings.xml │ ├── values-vi │ │ └── strings.xml │ ├── values-zh-rCN │ │ └── strings.xml │ ├── values-zh-rTW │ │ └── strings.xml │ ├── values-zu │ │ └── strings.xml │ └── values │ │ ├── colors.xml │ │ ├── maps_attrs.xml │ │ └── strings.xml │ └── src │ └── android │ └── UnusedStub.java ├── jni ├── Android.mk ├── Application.mk ├── bit_shifts.h ├── byte_swapping.cpp ├── byte_swapping.h ├── debug_flag.cpp ├── debug_flag.h ├── iptc.cpp ├── iptc.h ├── jpeg.cpp ├── jpeg.h ├── jpeg_decoder.cpp ├── jpeg_decoder.h ├── jpeg_dht.h ├── jpeg_marker.cpp ├── jpeg_marker.h ├── makernote.h ├── obscura_metadata.h ├── org_witness_informacam_informa_embed_ImageConstructor.cpp ├── org_witness_informacam_informa_embed_ImageConstructor.h ├── photoshop_3block.h ├── redaction.h ├── tiff_ifd.cpp ├── tiff_ifd.h ├── tiff_tag.cpp └── tiff_tag.h ├── libs ├── JSON-SIMPLE-LICENSE.txt ├── android-support-v4.jar ├── armeabi-v7a │ └── libJpegRedaction.so ├── commons-io-2.4.jar ├── commons-lang3-3.1.jar ├── dropbox-android-sdk-1.6.3.jar ├── gson-2.1.jar ├── guava-11.0.2.jar ├── javarosa-libraries.jar ├── json_simple-1.1.jar ├── kxml2-2.3.0.jar ├── nanohttpd-2.1.0.jar ├── protobuf-j2me-1.0-RC1.jar ├── spongycastle-core-1.50.0.0.jar ├── spongycastle-pg-1.50.0.0.jar ├── spongycastle-prov-1.50.0.0.jar └── x86 │ └── libJpegRedaction.so ├── proguard-android-optimize.txt ├── proguard-android.txt ├── proguard-project.txt ├── project.properties ├── res ├── drawable-hdpi-v11 │ └── ic_notify.png ├── drawable-hdpi │ ├── ic_context_slide_right.png │ ├── ic_launcher.png │ ├── ic_notify.png │ └── ic_setup_camera.png ├── drawable-mdpi-v11 │ └── ic_notify.png ├── drawable-mdpi │ ├── ic_context_slide_right.png │ ├── ic_launcher.png │ ├── ic_notify.png │ └── ic_setup_camera.png ├── drawable-xhdpi-v11 │ └── ic_notify.png ├── drawable-xhdpi │ ├── ic_context_slide_right.png │ ├── ic_launcher.png │ ├── ic_notify.png │ └── ic_setup_camera.png ├── drawable-xxhdpi-v11 │ └── ic_notify.png ├── drawable-xxhdpi │ └── ic_notify.png ├── drawable │ ├── camera_button_active.xml │ ├── camera_button_inactive.xml │ ├── camera_button_selector.xml │ ├── extras_edittext_background.xml │ ├── extras_region_display_active.xml │ ├── extras_region_display_inactive.xml │ ├── ic_action_backup.png │ ├── ic_new_log.png │ ├── ic_new_log_list.png │ ├── ic_new_log_thumb.png │ ├── ic_new_photo.png │ ├── ic_new_photo_list.png │ ├── ic_new_photo_thumb.png │ ├── ic_new_video.png │ ├── ic_new_video_list.png │ ├── ic_new_video_thumb.png │ ├── progress_accepted.xml │ ├── progress_active.xml │ ├── progress_inactive.xml │ ├── progress_unaccepted.xml │ ├── tab_background_selector.xml │ └── tab_text_selector.xml ├── layout │ ├── activity_camera_waiter.xml │ ├── activity_informacam_running.xml │ ├── activity_surface_grabber.xml │ ├── activity_wizard.xml │ ├── alert_login.xml │ ├── fragment_wizard_step_one.xml │ ├── fragment_wizard_step_three.xml │ ├── fragment_wizard_step_two.xml │ ├── fragment_wizard_step_zero.xml │ ├── fragment_wizard_sub_fragment_finish.xml │ ├── list_organization.xml │ ├── media_processing.xml │ ├── popup_yes_no.xml │ └── tab_layout_wizard.xml ├── raw │ └── style.css ├── values-ar │ └── strings.xml ├── values-de │ └── strings.xml ├── values-eo │ └── strings.xml ├── values-es │ └── strings.xml ├── values-fa │ └── strings.xml ├── values-fi-rFI │ └── strings.xml ├── values-fr │ └── strings.xml ├── values-hu │ └── strings.xml ├── values-it │ └── strings.xml ├── values-ja │ └── strings.xml ├── values-ko │ └── strings.xml ├── values-no │ └── strings.xml ├── values-pt-rPT │ └── strings.xml ├── values-ru │ └── strings.xml ├── values-si-rLK │ └── strings.xml ├── values-sl-rSI │ └── strings.xml ├── values-sr │ └── strings.xml ├── values-sv │ └── strings.xml ├── values-tr-rTR │ └── strings.xml ├── values-v11 │ └── styles.xml ├── values-v14 │ └── styles.xml ├── values-vi │ └── strings.xml ├── values-zh-rCN │ └── strings.xml └── values │ ├── color.xml │ ├── strings.xml │ └── styles.xml ├── setup-ant.sh └── src ├── de └── matthiasmann │ └── jpegdecoder │ ├── Component.java │ ├── Huffman.java │ ├── IDCT_2D.java │ └── JPEGDecoder.java ├── info └── guardianproject │ └── odkparser │ ├── Constants.java │ ├── FormWrapper.java │ ├── utils │ ├── Model.java │ └── QD.java │ └── widgets │ └── ODKSeekBar.java └── org └── witness └── informacam ├── Debug.java ├── InformaCam.java ├── crypto ├── AesUtility.java ├── CredentialManager.java ├── EncryptionUtility.java ├── KeyUtility.java └── SignatureService.java ├── informa ├── Cron.java ├── InformaService.java ├── SensorLogger.java ├── embed │ ├── ImageConstructor.java │ ├── Pipe.java │ └── VideoConstructor.java └── suckers │ ├── AccelerometerSucker.java │ ├── EnvironmentalSucker.java │ ├── GeoFusedSucker.java │ ├── GeoHiResSucker.java │ ├── GeoLowResSucker.java │ ├── GeoSucker.java │ └── PhoneSucker.java ├── intake ├── BatchCompleteJob.java ├── DCIMObserver.java ├── EntryJob.java └── Intake.java ├── json ├── CDL.java ├── Cookie.java ├── CookieList.java ├── HTTP.java ├── HTTPTokener.java ├── JSONArray.java ├── JSONException.java ├── JSONML.java ├── JSONObject.java ├── JSONString.java ├── JSONStringer.java ├── JSONTokener.java ├── JSONWriter.java ├── Kim.java ├── Property.java ├── README ├── XML.java └── XMLTokener.java ├── models ├── Model.java ├── credentials │ ├── ICredentials.java │ ├── IKeyStore.java │ ├── ISecretKey.java │ └── IUser.java ├── forms │ ├── IForm.java │ └── IInstalledForms.java ├── j3m │ ├── IDCIMDescriptor.java │ ├── IDCIMEntry.java │ ├── IData.java │ ├── IExif.java │ ├── IGenealogy.java │ ├── IIntakeData.java │ ├── IIntent.java │ ├── ILocation.java │ ├── ILogPack.java │ ├── IPatch.java │ ├── IRegionData.java │ ├── ISensorCapture.java │ └── ISuckerCache.java ├── media │ ├── IAsset.java │ ├── IImage.java │ ├── ILog.java │ ├── IMedia.java │ ├── IMediaManifest.java │ ├── IRegion.java │ ├── IRegionBounds.java │ ├── IVideo.java │ ├── IVideoRegion.java │ └── IVideoTrail.java ├── notifications │ ├── IMail.java │ ├── INotification.java │ └── INotificationsManifest.java ├── organizations │ ├── IIdentity.java │ ├── IInstalledOrganizations.java │ ├── IOrganization.java │ └── IRepository.java ├── transport │ ├── ITransportData.java │ ├── ITransportManifest.java │ └── ITransportStub.java └── utils │ ├── ILanguage.java │ ├── ILanguageMap.java │ └── PressureServiceUpdater.java ├── share ├── DropboxSyncManager.java ├── WebShareService.java └── www │ ├── InternalRewrite.java │ ├── ServerRunner.java │ ├── SimpleWebServer.java │ ├── WebServerPlugin.java │ └── WebServerPluginInfo.java ├── storage ├── FormUtility.java ├── IOService.java ├── IOUtility.java └── InformaCamMediaScanner.java ├── transport ├── CameraVExpressTransport.java ├── GlobaleaksTransport.java ├── GoogleDriveTransport.java ├── S3Transport.java ├── Transport.java └── TransportUtility.java ├── ui ├── AlwaysOnActivity.java ├── CameraActivity.java ├── LoginActivity.java ├── SurfaceGrabberActivity.java ├── WizardActivity.java ├── adapters │ └── OrganizationAdapter.java ├── editors │ └── IRegionDisplay.java ├── popups │ ├── Popup.java │ └── YesNoPopup.java └── screens │ ├── WizardStepOne.java │ ├── WizardStepThree.java │ ├── WizardStepTwo.java │ ├── WizardStepZero.java │ └── WizardSubFragmentFinish.java └── utils ├── BackgroundProcessor.java ├── BackgroundTask.java ├── Constants.java ├── ImageUtility.java ├── InformaCamBroadcaster.java ├── InnerBroadcaster.java ├── MediaHasher.java └── TimeUtility.java /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | obj/* 3 | bin/* 4 | gen/* 5 | .classpath 6 | local.properties 7 | build.xml 8 | # ndk-build products 9 | libs/armeabi/libJpegRedaction.so 10 | .settings/* 11 | .settings 12 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "external/android-ffmpeg-java"] 2 | path = external/android-ffmpeg-java 3 | url = https://github.com/guardianproject/android-ffmpeg-java 4 | [submodule "external/ODKFormParser"] 5 | path = external/ODKFormParser 6 | url = https://github.com/guardianproject/ODKFormParser.git 7 | [submodule "external/OnionKit"] 8 | path = external/OnionKit 9 | url = https://github.com/guardianproject/NetCipher.git 10 | [submodule "external/CameraCipher"] 11 | path = external/CameraCipher 12 | url = https://github.com/n8fr8/CameraCipher.git 13 | [submodule "external/nanohttpd"] 14 | path = external/nanohttpd 15 | url = https://github.com/eighthave/nanohttpd.git 16 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | InformaCam 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # InformaCam 2 | 3 | ## Setting up Development Environment 4 | 5 | **Prerequisites:** 6 | 7 | * [Android SDK](https://developer.android.com/sdk/installing/index.html) 8 | * Working [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html) toolchain 9 | 10 | Follow these steps to setup your dev environment: 11 | 12 | 1. Checkout InformaCam git repo 13 | 2. Init and update git submodules 14 | 15 | git submodule update --init --recursive 16 | 17 | 3. Ensure `NDK_BASE` env variable is set to the location of your NDK, example: 18 | 19 | export NDK_BASE=/path/to/android-ndk 20 | 21 | 4. Build android-ffmpeg 22 | 23 | cd external/android-ffmpeg-java/external/android-ffmpeg/ 24 | ./configure_make_everything.sh 25 | 26 | 5. Build IOCipher 27 | 28 | make -C external/IOCipher/external/ 29 | ndk-build -C external/IOCipher/ 30 | 31 | Note: the 'make' build is setup to work with the Android NDK r8e. If you are 32 | using an older version, or you are using the 32-bit NDK on a 64-bit system, 33 | then you might need to set some variables manually as part of the command 34 | line. For example, using the 32-bit NDK on a 64-bit system: 35 | 36 | make -C external/IOCipher/external NDK_PROCESSOR=x86 37 | 38 | Or using an older compiler version: 39 | 40 | make -C external/IOCipher/external NDK_COMPILER_VERSION=4.4.3 41 | 42 | 6. Build JNI for JpegRedaction 43 | 44 | ndk-build 45 | 46 | 7. **Using Eclipse** 47 | 48 | Import into Eclipse (using the "existing projects" option) the projects in this order: 49 | 50 | external/OnionKit/library 51 | external/android-ffmpeg-java/ 52 | external/IOCipher/ 53 | external/ODKFormParser/ 54 | 55 | **Using ANT** 56 | 57 | ./setup-ant.sh 58 | ant clean debug 59 | 60 | -------------------------------------------------------------------------------- /build-native.sh: -------------------------------------------------------------------------------- 1 | cd external/android-ffmpeg-java/external/android-ffmpeg/ 2 | ./configure_make_everything.sh 3 | 4 | cd ../../../.. 5 | 6 | ndk-build 7 | 8 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2011 Dropbox Inc., http://www.dropbox.com/ 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/README: -------------------------------------------------------------------------------- 1 | How to install and use the SDK: 2 | - https://www.dropbox.com/developers/core/start/android 3 | 4 | Requirements: 5 | - Android API v3+ 6 | - json_simple-1.1 (provided under "lib/") 7 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/config/testing.json.example: -------------------------------------------------------------------------------- 1 | { 2 | "consumer_key": "YOUR CONSUMER KEY", 3 | "consumer_secret": "YOUR CONSUMER SECRET", 4 | "testing_user": "YOUR DROPBOX LOGIN", 5 | "testing_password": "DROPBOX KEY", 6 | } 7 | 8 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/com/dropbox/client2/android/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.dropbox.client2.android 8 | 9 | 10 | 11 | 12 |

com.dropbox.client2.android

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/com/dropbox/client2/jsonextract/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.dropbox.client2.jsonextract 8 | 9 | 10 | 11 | 12 |

com.dropbox.client2.jsonextract

13 |
14 |

Classes

15 | 23 |

Exceptions

24 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Overview List 8 | 9 | 10 | 11 | 12 |
All Classes
13 |
14 |

Packages

15 | 22 |
23 |

 

24 | 25 | 26 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/package-list: -------------------------------------------------------------------------------- 1 | com.dropbox.client2 2 | com.dropbox.client2.android 3 | com.dropbox.client2.exception 4 | com.dropbox.client2.jsonextract 5 | com.dropbox.client2.session 6 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/resources/background.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/docs/resources/background.gif -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/resources/tab.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/docs/resources/tab.gif -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/resources/titlebar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/docs/resources/titlebar.gif -------------------------------------------------------------------------------- /external/dropbox-android-sdk/docs/resources/titlebar_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/docs/resources/titlebar_end.gif -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/CopyBetweenAccounts/.gitignore: -------------------------------------------------------------------------------- 1 | /CopyBetweenAccounts.json 2 | /bytecode 3 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/CopyBetweenAccounts/README: -------------------------------------------------------------------------------- 1 | This directory includes an example command-line program that uses the /sharing_token 2 | API to copy files between different Dropbox accounts. 3 | call to maintain a local cache of your Dropbox's file names. 4 | 5 | Before you can run this example, you'll need a Dropbox application key. 6 | You can create one at https://www.dropbox.com/developers/apps 7 | 8 | To compile: ./compile 9 | To run: ./run 10 | 11 | ------------------- 12 | Example usage: 13 | 14 | 0. Compile the program 15 | > ./compile 16 | 17 | 1. Reset the state, tell the program to use the given app key and secret. 18 | > ./run reset 19 | 20 | 2. Link to a Dropbox account (do this at least twice, with two different accounts) 21 | > ./run link 22 | 23 | 3. List the accounts that are linked, remember the UIDs 24 | > ./run list 25 | 26 | 4. Update the local cache to match what's on Dropbox. 27 | > ./run :/path/to/source/file :/path/to/target/file 28 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/CopyBetweenAccounts/compile: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | exec sh ../compile-helper CopyBetweenAccounts 3 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/CopyBetweenAccounts/run: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | exec sh ../run-helper CopyBetweenAccounts "$@" 3 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/.gitignore: -------------------------------------------------------------------------------- 1 | /gen 2 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | DBRoulette 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/default.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system use, 7 | # "build.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Project target. 11 | target=android-3 12 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/libs/dropbox-android-sdk-1.6.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/examples/DBRoulette/libs/dropbox-android-sdk-1.6.3.jar -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/libs/httpmime-4.0.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/examples/DBRoulette/libs/httpmime-4.0.3.jar -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/libs/json_simple-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/examples/DBRoulette/libs/json_simple-1.1.jar -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system use, 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Project target. 11 | target=android-3 12 | -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/examples/DBRoulette/res/drawable/icon.png -------------------------------------------------------------------------------- /external/dropbox-android-sdk/examples/DBRoulette/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 |