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 |
13 |
20 |
26 |
31 |
38 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/examples/DBRoulette/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | DBRoulette
4 |
5 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/examples/SearchCache/.gitignore:
--------------------------------------------------------------------------------
1 | /SearchCache.json
2 | /bytecode
3 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/examples/SearchCache/README:
--------------------------------------------------------------------------------
1 | This directory includes an example command-line program that uses the /delta API
2 | call to maintain a local cache of your Dropbox's file names.
3 |
4 | Before you can run this example, you'll need a Dropbox App Folder application, along
5 | with its key and secret. You can get one at https://www.dropbox.com/developers/apps
6 |
7 | To compile: ./compile
8 | To run: ./run
9 |
10 | -------------------
11 | Example usage:
12 |
13 | 0. Compile the program
14 | > ./compile
15 |
16 | 1. Link to your Dropbox account
17 | > ./run link
18 |
19 | 2. Go to Dropbox and make changes to the contents of the App Folder.
20 |
21 | 3. Update the local cache to match what's on Dropbox.
22 | > ./run update
23 |
24 | 4. Search the local cache.
25 | > ./run find 'txt'
26 |
27 | Repeat steps 2-4 any number of times.
28 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/examples/SearchCache/compile:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 | exec sh ../compile-helper SearchCache
3 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/examples/SearchCache/run:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 | exec sh ../run-helper SearchCache "$@"
3 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/examples/compile-helper:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env bash
2 | out_dir="bytecode"
3 | main_class="$1" ; shift
4 |
5 | cp=""
6 | for jar in "../../lib/"*.jar "../../lib/test/"*.jar; do
7 | cp="$cp:$jar"
8 | done
9 |
10 | if [ -e "$out_dir" ]; then
11 | rm -r "$out_dir"
12 | fi
13 |
14 | mkdir -p "$out_dir"
15 | exec javac -d "$out_dir" -classpath "$cp" "$main_class.java"
16 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/examples/run-helper:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env bash
2 | out_dir="bytecode"
3 | main_class="$1" ; shift
4 |
5 | if [ ! -d "$out_dir" ]; then
6 | echo "ERROR: \"$out_dir\" directory doesn't exist. Did you run ./compile yet?" 1>&2
7 | exit 1
8 | fi
9 |
10 | cp="$out_dir"
11 | for jar in "../../lib/"*.jar "../../lib/test/"*.jar; do
12 | cp="$cp:$jar"
13 | done
14 |
15 | exec java -classpath "$cp" "$main_class" "$@"
16 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea/workspace.xml
2 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/.name:
--------------------------------------------------------------------------------
1 | Android Core SDK
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/libraries/android.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/libraries/bcprov_jdk16_146.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/libraries/json_simple_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/libraries/test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/scopes/scope_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/Main.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/intellij/examples-DBRoulette.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | /../examples/DBRoulette/res-overlay
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/javadoc.css:
--------------------------------------------------------------------------------
1 | /*
2 | Javadoc style sheet that uses colors and fonts that match the Dropbox website.
3 |
4 | Modified from: http://sensemaya.org/maya/2009/07/10/making-javadoc-more-legible
5 | */
6 |
7 | body { background-color: #FFFFFF; color:#333; font-size: 100%; }
8 |
9 | body { font-size: 0.875em; line-height: 1.286em; font-family: "Lucida Grande", "Segoe UI", "Arial", "Verdana", "Lucida Sans Unicode", "Tahoma", sans-serif; }
10 | code, pre { color: #444; line-height: 1.286em; font-family: "Consolas", "Lucida Console", "Droid Sans Mono", "Andale Mono", "Monaco", "Lucida Sans Typewriter"; }
11 |
12 | a, a code { text-decoration: none; color: #1F75CC; }
13 | a:visited, a:visited code { color: #2866a4; }
14 | a:hover, a:hover code { background-color: #ccddff; }
15 |
16 | .TableRowColor a code { text-decoration: none; color: #1F75CC; }
17 | .TableRowColor a:visited code { color: #2866a4; }
18 | .TableRowColor a:hover code { background-color: #ccddff; }
19 |
20 | table[border="1"] { border: 1px solid #ddd; }
21 | table[border="1"] td, table[border="1"] th { border: 1px solid #ddd; }
22 | table[cellpadding="3"] td { padding: 0em; }
23 |
24 | font[size="-1"] { font-size: 0.85em; line-height: 1.5em; }
25 | font[size="-2"] { font-size: 0.8em; }
26 | font[size="+2"] { font-size: 1.4em; line-height: 1.3em; padding: 0.4em 0; }
27 |
28 | /* Headings */
29 | h1 { font-size: 1.5em; line-height: 1.286em;}
30 |
31 | /* Table colors */
32 | .TableHeadingColor { background: #1f75cc; color:#fff; margin: 0; }
33 | .TableSubHeadingColor { background: #ddd; color:#444; } /* Light mauve */
34 | .TableRowColor { background: #FFFFFF; color:#666; font-size: 0.95em; } /* White */
35 |
36 | /* Font used in left-hand frame lists */
37 | .FrameTitleFont { font-size: 100%; }
38 | .FrameHeadingFont { font-size: 90%; }
39 | .FrameItemFont { font-size: 0.9em; line-height: 1.3em; }
40 |
41 | /* Navigation bar fonts and colors */
42 | .NavBarCell1 { background-color:#E0E6DF; }
43 | .NavBarCell1Rev { background-color:#16569A; color:#FFFFFF}
44 | .NavBarFont1 { }
45 | .NavBarFont1Rev { color:#FFFFFF; }
46 |
47 | .NavBarCell2 { background-color:#FFFFFF; color:#000000}
48 | .NavBarCell3 { background-color:#FFFFFF; color:#000000}
49 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/dropbox-android-sdk-1.6.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/dropbox-android-sdk-1.6.3.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/extra/android.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/extra/android.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/json_simple-1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/json_simple-1.1.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/test/BCPROV-LICENSE.txt:
--------------------------------------------------------------------------------
1 | LICENSE
2 | Copyright (c) 2000 - 2013 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5 |
6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7 |
8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
9 |
10 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/test/bcprov-jdk16-146.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/test/bcprov-jdk16-146.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/test/commons-logging-1.1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/test/commons-logging-1.1.1.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/test/httpclient-4.0.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/test/httpclient-4.0.3.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/test/httpcore-4.0.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/test/httpcore-4.0.1.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/test/httpmime-4.0.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/test/httpmime-4.0.3.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/lib/test/junit-4.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/lib/test/junit-4.10.jar
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/SdkVersion.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2;
2 |
3 | /**
4 | * Contains the SDK version number.
5 | */
6 | public final class SdkVersion {
7 |
8 | /** Returns the SDK version number. */
9 | public static String get() {
10 | return "1.6.3"; // Filled in by build process.
11 | }
12 |
13 | public static void main(String[] args) {
14 | System.out.println("Dropbox Java SDK, Version " + get());
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009-2011 Dropbox, Inc.
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | * SOFTWARE.
21 | */
22 |
23 |
24 | package com.dropbox.client2.exception;
25 |
26 | /**
27 | * A base for all exceptions from using the API. Catch this instead of specific
28 | * subclasses when you want to deal with those issues in a generic way.
29 | */
30 | public class DropboxException extends Exception {
31 |
32 | private static final long serialVersionUID = 1L;
33 |
34 | protected DropboxException() {
35 | super();
36 | }
37 |
38 | public DropboxException(String detailMessage) {
39 | super(detailMessage);
40 | }
41 |
42 | public DropboxException(String detailMessage, Throwable throwable) {
43 | super(detailMessage, throwable);
44 | }
45 |
46 | public DropboxException(Throwable throwable) {
47 | super(throwable);
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxFileSizeException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009-2011 Dropbox, Inc.
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | * SOFTWARE.
21 | */
22 |
23 |
24 | package com.dropbox.client2.exception;
25 |
26 | import com.dropbox.client2.DropboxAPI;
27 |
28 | /**
29 | * Thrown when trying to upload a file larger than the API can handle. See
30 | * {@link DropboxAPI#MAX_UPLOAD_SIZE}.
31 | */
32 | public class DropboxFileSizeException extends DropboxException {
33 | private static final long serialVersionUID = 1L;
34 |
35 | public DropboxFileSizeException(String s) {
36 | super(s);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxIOException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009-2011 Dropbox, Inc.
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | * SOFTWARE.
21 | */
22 |
23 |
24 | package com.dropbox.client2.exception;
25 |
26 | import java.io.IOException;
27 |
28 | /**
29 | * Encapsulates an IOExceptions when using the API, typically resulting from
30 | * network-related issues.
31 | */
32 | public class DropboxIOException extends DropboxException {
33 | private static final long serialVersionUID = 2L;
34 |
35 | public DropboxIOException(IOException e) {
36 | super(e);
37 | }
38 |
39 | public DropboxIOException(String detailMessage) {
40 | super(detailMessage);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxLocalStorageFullException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009-2011 Dropbox, Inc.
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | * SOFTWARE.
21 | */
22 |
23 |
24 | package com.dropbox.client2.exception;
25 |
26 | /**
27 | * Thrown when writing to local storage and there is no more room.
28 | */
29 | public class DropboxLocalStorageFullException extends DropboxException {
30 | private static final long serialVersionUID = 2L;
31 |
32 | public DropboxLocalStorageFullException() {}
33 | }
34 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxPartialFileException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009-2011 Dropbox, Inc.
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | * SOFTWARE.
21 | */
22 |
23 |
24 | package com.dropbox.client2.exception;
25 |
26 | /**
27 | * Used when only part of a file was transferred to/from Dropbox when using the
28 | * API.
29 | */
30 | public class DropboxPartialFileException extends DropboxException {
31 | private static final long serialVersionUID = 2L;
32 |
33 | /**
34 | * The number of bytes successfully transferred.
35 | */
36 | public final long bytesTransferred;
37 |
38 | public DropboxPartialFileException(long transferred) {
39 | bytesTransferred = transferred;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxProxyChangeException.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2.exception;
2 |
3 | public class DropboxProxyChangeException extends DropboxIOException {
4 | public DropboxProxyChangeException() {
5 | super("Proxy may have been updated, try request again.");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxSSLException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009-2011 Dropbox, Inc.
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | * SOFTWARE.
21 | */
22 |
23 |
24 | package com.dropbox.client2.exception;
25 |
26 | import javax.net.ssl.SSLException;
27 |
28 | /**
29 | * Wraps any SSL-related exceptions thrown when using the API.
30 | */
31 | public class DropboxSSLException extends DropboxIOException {
32 |
33 | private static final long serialVersionUID = 1L;
34 |
35 | public DropboxSSLException(SSLException e) {
36 | super(e);
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/exception/DropboxUnlinkedException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2009-2011 Dropbox, Inc.
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | * SOFTWARE.
21 | */
22 |
23 |
24 | package com.dropbox.client2.exception;
25 |
26 | import com.dropbox.client2.session.AccessTokenPair;
27 |
28 | /**
29 | * Thrown when the API can only be used when linked but it's not. This will
30 | * happen either because you have not set an {@link AccessTokenPair} on your
31 | * session, or because the user unlinked your app (revoked the access token
32 | * pair).
33 | */
34 | public class DropboxUnlinkedException extends DropboxException {
35 | private static final long serialVersionUID = 1L;
36 |
37 | public DropboxUnlinkedException() {
38 | super();
39 | }
40 |
41 | public DropboxUnlinkedException(String message) {
42 | super(message);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/jsonextract/JsonBase.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2.jsonextract;
2 |
3 | /**
4 | * (Internal class for extracting JSON.)
5 | */
6 | abstract class JsonBase {
7 | public final T internal;
8 | public final String path;
9 |
10 | public JsonBase(T internal) {
11 | this(internal, null);
12 | }
13 |
14 | public JsonBase(T internal, String path) {
15 | this.internal = internal;
16 | this.path = path;
17 | }
18 |
19 | public JsonExtractionException error(String message) {
20 | return new JsonExtractionException(path, message, internal);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/jsonextract/JsonExtractionException.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2.jsonextract;
2 |
3 | import static org.json.simple.JSONValue.toJSONString;
4 |
5 | import java.util.List;
6 | import java.util.Map;
7 |
8 | public final class JsonExtractionException extends Exception {
9 |
10 | private static final long serialVersionUID = -5744582005002105505L;
11 |
12 | public JsonExtractionException(String path, String message, Object value) {
13 | super((path == null ? "" : path + ": ") + message +
14 | (value == null ? "" : ": " + summarizeValue(value)));
15 | }
16 |
17 | private static String summarizeValue(Object value) {
18 | if (value instanceof java.util.Map) {
19 | StringBuilder buf = new StringBuilder();
20 | @SuppressWarnings("unchecked")
21 | Map map = (Map) value;
22 | buf.append("{");
23 | String sep = "";
24 | for (Map.Entry entry : map.entrySet()) {
25 | buf.append(sep); sep = ", ";
26 | buf.append(toJSONString(entry.getKey()));
27 | buf.append(" = ");
28 | buf.append("...");
29 | }
30 | buf.append("}");
31 | return buf.toString();
32 | }
33 | else if (value instanceof java.util.List) {
34 | List> list = (List>) value;
35 | if (list.isEmpty()) {
36 | return "[]";
37 | } else if (list.size() == 1) {
38 | return "[" + summarizeValue(list.get(0)) + "]";
39 | } else {
40 | return "[" + summarizeValue(list.get(0)) + ", ...] (" + list.size() + " elements)";
41 | }
42 | }
43 | else {
44 | return toJSONString(value);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/jsonextract/JsonExtractor.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2.jsonextract;
2 |
3 | public abstract class JsonExtractor {
4 | public abstract T extract(JsonThing jt) throws JsonExtractionException;
5 | }
6 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/session/AccessTokenPair.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2.session;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | *
7 | * Holds a user's access token and secret.
8 | *
9 | */
10 | public class AccessTokenPair extends TokenPair implements Serializable {
11 |
12 | // Do not change.
13 | private static final long serialVersionUID = -5526503075188547139L;
14 |
15 | public AccessTokenPair(String key, String secret) {
16 | super(key, secret);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/session/AppKeyPair.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2.session;
2 |
3 | /**
4 | *
7 | * Holds a request token and secret for the web OAuth flow.
8 | *
9 | */
10 | public final class RequestTokenPair extends AccessTokenPair implements Serializable {
11 |
12 | // Do not change.
13 | private static final long serialVersionUID = 7933124160414910085L;
14 |
15 | public RequestTokenPair(String key, String secret) {
16 | super(key, secret);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/main/java/com/dropbox/client2/session/TokenPair.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2.session;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | *
7 | * Just two strings -- a "key" and a "secret". Used by OAuth in several
8 | * places (consumer key/secret, request token/secret, access token/secret).
9 | * Use specific subclasses instead of using this class directly.
10 | *
11 | */
12 | public abstract class TokenPair implements Serializable {
13 |
14 | private static final long serialVersionUID = -42727403799660313L;
15 |
16 | /**
17 | * The "key" portion of the pair. For example, the "consumer key",
18 | * "request token", or "access token". Will never contain the "|"
19 | * character.
20 | */
21 | public final String key;
22 |
23 | /**
24 | * The "secret" portion of the pair. For example, the "consumer secret",
25 | * "request token secret", or "access token secret".
26 | */
27 | public final String secret;
28 |
29 | /**
30 | * @param key assigned to {@link #key}.
31 | * @param secret assigned to {@link #secret}.
32 | *
33 | * @throws IllegalArgumentException if key or secret is null or invalid.
34 | */
35 | public TokenPair(String key, String secret) {
36 | if (key == null)
37 | throw new IllegalArgumentException("'key' must be non-null");
38 | if (key.contains("|"))
39 | throw new IllegalArgumentException("'key' must not contain a \"|\" character: \"" + key + "\"");
40 | if (secret == null)
41 | throw new IllegalArgumentException("'secret' must be non-null");
42 |
43 | this.key = key;
44 | this.secret = secret;
45 | }
46 |
47 | @Override
48 | public int hashCode() {
49 | return key.hashCode() ^ (secret.hashCode() << 1);
50 | }
51 |
52 | @Override
53 | public boolean equals(Object o) {
54 | return o instanceof TokenPair && equals((TokenPair) o);
55 | }
56 |
57 | public boolean equals(TokenPair o) {
58 | return key.equals(o.key) && secret.equals(o.secret);
59 | }
60 |
61 | @Override
62 | public String toString() {
63 | return "{key=\"" + key + "\", secret=\"" + secret.charAt(0) + "...\"}";
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/src/test/java/com/dropbox/client2/Util.java:
--------------------------------------------------------------------------------
1 | package com.dropbox.client2;
2 |
3 | import java.io.*;
4 | import java.util.Map;
5 |
6 | import org.json.simple.parser.JSONParser;
7 | import org.json.simple.parser.ParseException;
8 |
9 | class Util {
10 | @SuppressWarnings("rawtypes")
11 | public static Map loadConfig(String path) {
12 | try {
13 | BufferedReader in = new BufferedReader(new FileReader(path), 8192);
14 | String inputLine = null;
15 | String result = "";
16 |
17 | try {
18 | while ((inputLine = in.readLine()) != null)
19 | result += inputLine;
20 | } finally {
21 | in.close();
22 | }
23 |
24 | JSONParser parser = new JSONParser();
25 | try {
26 | return (Map) parser.parse(result);
27 | } catch (ParseException e) {
28 | e.printStackTrace();
29 | return null;
30 | }
31 | } catch (IOException e) {
32 | return null;
33 | }
34 | }
35 | public static byte[] streamToBytes(InputStream in) throws IOException{
36 |
37 | ByteArrayOutputStream buffer = new ByteArrayOutputStream();
38 |
39 | int nRead;
40 | byte[] data = new byte[16384];
41 |
42 | while ((nRead = in.read(data, 0, data.length)) != -1) {
43 | buffer.write(data, 0, nRead);
44 | }
45 |
46 | buffer.flush();
47 |
48 | return buffer.toByteArray();
49 | }
50 |
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/testfiles/Costa Rican Frog.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/testfiles/Costa Rican Frog.jpg
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/testfiles/dropbox_song.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/dropbox-android-sdk/testfiles/dropbox_song.mp3
--------------------------------------------------------------------------------
/external/dropbox-android-sdk/testfiles/foo.txt:
--------------------------------------------------------------------------------
1 | abcdefghijklmnopqrstuvwxyz
2 |
--------------------------------------------------------------------------------
/external/google-play-services/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | obj/*
3 | bin/*
4 | gen/*
5 | local.properties
6 | build.xml
7 | .settings/*
8 | .settings
9 |
--------------------------------------------------------------------------------
/external/google-play-services/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | google-play-services
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/google-play-services/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/external/google-play-services/README.txt:
--------------------------------------------------------------------------------
1 | Library Project including Google Play services client jar.
2 |
3 | This can be used by an Android project to use the API's provided
4 | by Google Play services.
5 |
6 | There is technically no source, but the src folder is necessary
7 | to ensure that the build system works. The content is actually
8 | located in the libs/ directory.
9 |
10 |
11 | USAGE:
12 |
13 | Make sure you import this Android library project into your IDE
14 | and set this project as a dependency.
15 |
--------------------------------------------------------------------------------
/external/google-play-services/libs/google-play-services.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/libs/google-play-services.jar
--------------------------------------------------------------------------------
/external/google-play-services/libs/google-play-services.jar.properties:
--------------------------------------------------------------------------------
1 | doc=../../../docs/reference
2 |
--------------------------------------------------------------------------------
/external/google-play-services/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/external/google-play-services/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 edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-19
15 | android.library=true
16 |
--------------------------------------------------------------------------------
/external/google-play-services/res/color/common_signin_btn_text_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
10 |
13 |
16 |
18 |
19 |
--------------------------------------------------------------------------------
/external/google-play-services/res/color/common_signin_btn_text_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
10 |
13 |
16 |
18 |
19 |
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/external/google-play-services/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable/common_signin_btn_icon_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
10 |
13 |
16 |
18 |
19 |
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable/common_signin_btn_icon_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
10 |
13 |
16 |
18 |
19 |
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable/common_signin_btn_text_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
10 |
13 |
16 |
18 |
19 |
--------------------------------------------------------------------------------
/external/google-play-services/res/drawable/common_signin_btn_text_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
10 |
13 |
16 |
18 |
19 |
--------------------------------------------------------------------------------
/external/google-play-services/res/values-am/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | "Google Play አገልግሎቶችን አግኝ"
5 | "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ስልክዎ ላይ የሉም።"
6 | "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ጡባዊዎ ላይ የሉም።"
7 | "Google Play አገልግሎቶችን አግኝ"
8 | "Google Play አገልግሎቶችን አንቃ"
9 | "Google Play አገልግሎቶችን እስካላነቁ ድረስ ይህ መተግበሪያ አይሰራም።"
10 | "Google Play አገልግሎቶችን አንቃ"
11 | "Google Play አገልግሎቶችን ያዘምኑ"
12 | "Google Play አገልግሎቶችን እስኪያዘምኑ ድረስ ይህ መተግበሪያ አይሰራም።"
13 | "በGoogle Play አገልግሎቶች ላይ ያልታወቀ ችግር።"
14 | "Google Play አገልግሎቶች"
15 | "የGoogle Play አገልግሎቶች፣ አንዳንድ መተግበሪያዎችዎ በእሱ ላይ ጥገኛ የሆኑት፣ በመሣሪያዎ አይደገፍም። እባክዎ ለእርዳታ አምራቹን ያግኙ።"
16 | "ያዘምኑ"
17 | "ግባ"
18 | "በGoogle ይግቡ"
19 |
20 |
--------------------------------------------------------------------------------
/external/google-play-services/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | "Play開発者サービスの入手"
5 | "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いの携帯端末にはインストールされていません。"
6 | "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いのタブレットにはインストールされていません。"
7 | "Play開発者サービスの入手"
8 | "Play開発者サービスの有効化"
9 | "このアプリの実行には、Google Play開発者サービスの有効化が必要です。"
10 | "Play開発者サービスの有効化"
11 | "Play開発者サービスの更新"
12 | "このアプリの実行には、Google Play開発者サービスの更新が必要です。"
13 | "Google Play開発者サービスで原因不明の問題が発生しました。"
14 | "Google Play開発者サービス"
15 | "一部のアプリが使用しているGoogle Play開発者サービスは、お使いの端末ではサポートされていません。詳しくは、端末メーカーまでお問い合わせください。"
16 | "更新"
17 | "ログイン"
18 | "Googleでログイン"
19 |
20 |
--------------------------------------------------------------------------------
/external/google-play-services/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | "Google Play 서비스 설치"
5 | "휴대전화에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다."
6 | "태블릿에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다."
7 | "Google Play 서비스 설치"
8 | "Google Play 서비스 사용"
9 | "Google Play 서비스를 사용하도록 설정해야 이 앱이 작동합니다."
10 | "Google Play 서비스 사용"
11 | "Google Play 서비스 업데이트"
12 | "Google Play 서비스를 업데이트해야만 이 앱이 실행됩니다."
13 | "Google Play 서비스에 알 수 없는 문제가 발생했습니다."
14 | "Google Play 서비스"
15 | "일부 사용자 애플리케이션에 필요한 Google Play 서비스가 사용자 기기에서 지원되지 않습니다. 기기 제조업체에 문의하시기 바랍니다."
16 | "업데이트"
17 | "로그인"
18 | "Google 계정으로 로그인"
19 |
20 |
--------------------------------------------------------------------------------
/external/google-play-services/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | "获取 Google Play 服务"
5 | "您的手机中没有 Google Play 服务,您必须先安装该服务才能运行此应用。"
6 | "您的平板电脑中没有 Google Play 服务,您必须先安装该服务才能运行此应用。"
7 | "获取 Google Play 服务"
8 | "启用 Google Play 服务"
9 | "您必须先启用 Google Play 服务才能运行此应用。"
10 | "启用 Google Play 服务"
11 | "更新 Google Play 服务"
12 | "您必须先更新 Google Play 服务才能运行此应用。"
13 | "Google Play 服务出现未知问题。"
14 | "Google Play 服务"
15 | "您的设备不支持部分应用所依赖的 Google Play 服务。请与设备制造商联系,以寻求帮助。"
16 | "更新"
17 | "登录"
18 | "使用 Google 帐户登录"
19 |
20 |
--------------------------------------------------------------------------------
/external/google-play-services/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | "取得 Google Play 服務"
5 | "您的手機並未安裝 Google Play 服務,所以無法執行這個應用程式。"
6 | "您的平板電腦並未安裝 Google Play 服務,所以無法執行這個應用程式。"
7 | "取得 Google Play 服務"
8 | "啟用 Google Play 服務"
9 | "您必須啟用 Google Play 服務,這個應用程式才能運作。"
10 | "啟用 Google Play 服務"
11 | "更新 Google Play 服務"
12 | "您必須更新 Google Play 服務,才能執行這個應用程式。"
13 | "Google Play 服務發生不明問題。"
14 | "Google Play 服務"
15 | "您的裝置不支援部分應用程式所需的 Google Play 服務。如需協助,請與您的裝置製造商聯絡。"
16 | "更新"
17 | "登入"
18 | "使用 Google 帳戶登入"
19 |
20 |
--------------------------------------------------------------------------------
/external/google-play-services/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | @android:color/white
5 | @android:color/white
6 | #FFAAAAAA
7 | @android:color/white
8 | #FF737373
9 | @android:color/white
10 | #FFAAAAAA
11 | #FF737373
12 | #FFDD4B39
13 | #d2d2d2
14 |
--------------------------------------------------------------------------------
/external/google-play-services/res/values/maps_attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/external/google-play-services/src/android/UnusedStub.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2013 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package android;
17 |
18 | // Stub java file to make inclusion into some IDE's work.
19 | public final class UnusedStub {
20 | private UnusedStub() { }
21 | }
22 |
--------------------------------------------------------------------------------
/jni/Android.mk:
--------------------------------------------------------------------------------
1 | LOCAL_PATH := $(call my-dir)
2 |
3 | include $(CLEAR_VARS)
4 |
5 | LOCAL_LDLIBS := -llog
6 | LOCAL_CPPFLAGS += -fexceptions
7 |
8 | LOCAL_MODULE := JpegRedaction
9 | LOCAL_SRC_FILES := iptc.cpp jpeg.cpp tiff_ifd.cpp tiff_tag.cpp jpeg_decoder.cpp \
10 | byte_swapping.cpp jpeg_marker.cpp debug_flag.cpp \
11 | org_witness_informacam_informa_embed_ImageConstructor.cpp
12 |
13 |
14 | include $(BUILD_SHARED_LIBRARY)
15 |
16 |
--------------------------------------------------------------------------------
/jni/Application.mk:
--------------------------------------------------------------------------------
1 | APP_STL := gnustl_static
2 | APP_OPTIM := release
3 | APP_ABI := armeabi armeabi-v7a x86
4 | APP_PLATFORM := android-14
5 |
6 |
7 |
--------------------------------------------------------------------------------
/jni/byte_swapping.h:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2011 Andrew W. Senior andrew.senior[AT]gmail.com
2 | // Part of the Jpeg-Redaction-Library to read, parse, edit redact and
3 | // write JPEG/EXIF/JFIF images.
4 | // See https://github.com/asenior/Jpeg-Redaction-Library
5 |
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 |
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 |
20 | #ifndef INCLUDE_BYTE_SWAPPING
21 | #define INCLUDE_BYTE_SWAPPING
22 |
23 | // Returns true if current machine is big endian (Motorola)
24 | // vs little endian (Intel)
25 | bool ArchBigEndian();
26 |
27 | // General byte swapping functions.
28 | // Swap a contiguous block of num objects of a particular type.
29 | void ByteSwapInPlace(unsigned short *d, int num);
30 | void ByteSwapInPlace(unsigned int *d, int num);
31 | void ByteSwapInPlace(short *d, int num);
32 | void ByteSwapInPlace(int *d, int num);
33 | // Block num objects of size typelen
34 | void ByteSwapInPlace(unsigned char *d, int num, int typelen);
35 |
36 | #define byteswap2(x) (((x & 0xff)<<8) | ((x & 0xff00)>>8))
37 | #define byteswap4(x) (((x & 0xff)<<24) | ((x & 0xff00)<<8) | ((x & 0xff0000)>>8) | ((x & 0xff000000)>>24))
38 |
39 | #endif // INCLUDE_BYTE_SWAPPING
40 |
--------------------------------------------------------------------------------
/jni/debug_flag.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2011 Andrew W. Senior andrew.senior[AT]gmail.com
2 | // Part of the Jpeg-Redaction-Library to read, parse, edit redact and
3 | // write JPEG/EXIF/JFIF images.
4 | // See https://github.com/asenior/Jpeg-Redaction-Library
5 |
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 |
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 |
20 | // Define a debug flag to turn on printing error messages.
21 | //
22 | #include "debug_flag.h"
23 |
24 | namespace jpeg_redaction {
25 | int debug = 0;
26 | } // namespace redaction
27 |
--------------------------------------------------------------------------------
/jni/debug_flag.h:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2011 Andrew W. Senior andrew.senior[AT]gmail.com
2 | // Part of the Jpeg-Redaction-Library to read, parse, edit redact and
3 | // write JPEG/EXIF/JFIF images.
4 | // See https://github.com/asenior/Jpeg-Redaction-Library
5 |
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 |
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 |
20 | // iptc.h: interface for the Iptc class.
21 | //
22 | //////////////////////////////////////////////////////////////////////
23 |
24 | #if !defined(INCLUDE_DEBUG_FLAG)
25 | #define INCLUDE_DEBUG_FLAG
26 | namespace jpeg_redaction {
27 | extern int debug;
28 | } // namespace redaction
29 | #endif // INCLUDE_IPTC
30 |
--------------------------------------------------------------------------------
/jni/iptc.cpp:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2011 Andrew W. Senior andrew.senior[AT]gmail.com
2 | // Part of the Jpeg-Redaction-Library to read, parse, edit redact and
3 | // write JPEG/EXIF/JFIF images.
4 | // See https://github.com/asenior/Jpeg-Redaction-Library
5 |
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 |
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 |
20 | #include "iptc.h"
21 | namespace jpeg_redaction {
22 | const unsigned char Iptc::tag_marker_ = 0x1c;
23 | } // namespace redaction
24 |
--------------------------------------------------------------------------------
/jni/org_witness_informacam_informa_embed_ImageConstructor.h:
--------------------------------------------------------------------------------
1 | /* DO NOT EDIT THIS FILE - it is machine generated */
2 | #include
3 | /* Header for class org_witness_informacam_informa_embed_ImageConstructor */
4 |
5 | #ifndef _Included_org_witness_informacam_informa_embed_ImageConstructor
6 | #define _Included_org_witness_informacam_informa_embed_ImageConstructor
7 | #ifdef __cplusplus
8 | extern "C" {
9 | #endif
10 | /*
11 | * Class: org_witness_informacam_informa_embed_ImageConstructor
12 | * Method: constructImage
13 | * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
14 | */
15 | JNIEXPORT jint JNICALL Java_org_witness_informacam_informa_embed_ImageConstructor_constructImage
16 | (JNIEnv *, jobject, jstring, jstring, jstring, jint);
17 |
18 | /*
19 | * Class: org_witness_informacam_informa_embed_ImageConstructor
20 | * Method: redactRegion
21 | * Signature: (Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;)[B
22 | */
23 | JNIEXPORT jbyteArray JNICALL Java_org_witness_informacam_informa_embed_ImageConstructor_redactRegion
24 | (JNIEnv *, jobject, jstring, jstring, jint, jint, jint, jint, jstring);
25 |
26 | #ifdef __cplusplus
27 | }
28 | #endif
29 | #endif
30 |
--------------------------------------------------------------------------------
/libs/android-support-v4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/android-support-v4.jar
--------------------------------------------------------------------------------
/libs/armeabi-v7a/libJpegRedaction.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/armeabi-v7a/libJpegRedaction.so
--------------------------------------------------------------------------------
/libs/commons-io-2.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/commons-io-2.4.jar
--------------------------------------------------------------------------------
/libs/commons-lang3-3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/commons-lang3-3.1.jar
--------------------------------------------------------------------------------
/libs/dropbox-android-sdk-1.6.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/dropbox-android-sdk-1.6.3.jar
--------------------------------------------------------------------------------
/libs/gson-2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/gson-2.1.jar
--------------------------------------------------------------------------------
/libs/guava-11.0.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/guava-11.0.2.jar
--------------------------------------------------------------------------------
/libs/javarosa-libraries.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/javarosa-libraries.jar
--------------------------------------------------------------------------------
/libs/json_simple-1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/json_simple-1.1.jar
--------------------------------------------------------------------------------
/libs/kxml2-2.3.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/kxml2-2.3.0.jar
--------------------------------------------------------------------------------
/libs/nanohttpd-2.1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/nanohttpd-2.1.0.jar
--------------------------------------------------------------------------------
/libs/protobuf-j2me-1.0-RC1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/protobuf-j2me-1.0-RC1.jar
--------------------------------------------------------------------------------
/libs/spongycastle-core-1.50.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/spongycastle-core-1.50.0.0.jar
--------------------------------------------------------------------------------
/libs/spongycastle-pg-1.50.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/spongycastle-pg-1.50.0.0.jar
--------------------------------------------------------------------------------
/libs/spongycastle-prov-1.50.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/spongycastle-prov-1.50.0.0.jar
--------------------------------------------------------------------------------
/libs/x86/libJpegRedaction.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/libs/x86/libJpegRedaction.so
--------------------------------------------------------------------------------
/proguard-android.txt:
--------------------------------------------------------------------------------
1 | # This is a configuration file for ProGuard.
2 | # http://proguard.sourceforge.net/index.html#manual/usage.html
3 |
4 | -dontusemixedcaseclassnames
5 | -dontskipnonpubliclibraryclasses
6 | -verbose
7 |
8 | # Optimization is turned off by default. Dex does not like code run
9 | # through the ProGuard optimize and preverify steps (and performs some
10 | # of these optimizations on its own).
11 | -dontoptimize
12 | -dontpreverify
13 | # Note that if you want to enable optimization, you cannot just
14 | # include optimization flags in your own project configuration file;
15 | # instead you will need to point to the
16 | # "proguard-android-optimize.txt" file instead of this one from your
17 | # project.properties file.
18 |
19 | -keepattributes *Annotation*
20 | -keep public class com.google.vending.licensing.ILicensingService
21 | -keep public class com.android.vending.licensing.ILicensingService
22 |
23 | # For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
24 | -keepclasseswithmembernames class * {
25 | native ;
26 | }
27 |
28 | # keep setters in Views so that animations can still work.
29 | # see http://proguard.sourceforge.net/manual/examples.html#beans
30 | -keepclassmembers public class * extends android.view.View {
31 | void set*(***);
32 | *** get*();
33 | }
34 |
35 | # We want to keep methods in Activity that could be used in the XML attribute onClick
36 | -keepclassmembers class * extends android.app.Activity {
37 | public void *(android.view.View);
38 | }
39 |
40 | # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
41 | -keepclassmembers enum * {
42 | public static **[] values();
43 | public static ** valueOf(java.lang.String);
44 | }
45 |
46 | -keep class * implements android.os.Parcelable {
47 | public static final android.os.Parcelable$Creator *;
48 | }
49 |
50 | -keepclassmembers class **.R$* {
51 | public static ;
52 | }
53 |
54 | # The support library contains references to newer platform versions.
55 | # Don't warn about those in case this app is linking against an older
56 | # platform version. We know about them, and they are safe.
57 | -dontwarn android.support.**
58 |
--------------------------------------------------------------------------------
/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/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 edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-19
15 | android.library=true
16 | android.library.reference.1=external/android-ffmpeg-java
17 | android.library.reference.2=external/OnionKit/libnetcipher
18 | android.library.reference.3=external/google-play-services
19 | android.library.reference.4=external/CameraCipher
20 |
--------------------------------------------------------------------------------
/res/drawable-hdpi-v11/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-hdpi-v11/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_context_slide_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-hdpi/ic_context_slide_right.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-hdpi/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_setup_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-hdpi/ic_setup_camera.png
--------------------------------------------------------------------------------
/res/drawable-mdpi-v11/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-mdpi-v11/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_context_slide_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-mdpi/ic_context_slide_right.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-mdpi/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_setup_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-mdpi/ic_setup_camera.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi-v11/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-xhdpi-v11/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_context_slide_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-xhdpi/ic_context_slide_right.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-xhdpi/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_setup_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-xhdpi/ic_setup_camera.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi-v11/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-xxhdpi-v11/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/ic_notify.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable-xxhdpi/ic_notify.png
--------------------------------------------------------------------------------
/res/drawable/camera_button_active.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/camera_button_inactive.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/drawable/camera_button_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/extras_edittext_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable/extras_region_display_active.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable/extras_region_display_inactive.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/drawable/ic_action_backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_action_backup.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_log.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_log_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_log_list.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_log_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_log_thumb.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_photo.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_photo_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_photo_list.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_photo_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_photo_thumb.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_video.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_video_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_video_list.png
--------------------------------------------------------------------------------
/res/drawable/ic_new_video_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/guardianproject/InformaCore/57727ea0ef6c3e56773292fba5233f608c690152/res/drawable/ic_new_video_thumb.png
--------------------------------------------------------------------------------
/res/drawable/progress_accepted.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/progress_active.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/progress_inactive.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/progress_unaccepted.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/tab_background_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/tab_text_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/layout/activity_camera_waiter.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
14 |
15 |
--------------------------------------------------------------------------------
/res/layout/activity_informacam_running.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
21 |
22 |
30 |
31 |
--------------------------------------------------------------------------------
/res/layout/activity_surface_grabber.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
23 |
24 |
30 |
31 |
--------------------------------------------------------------------------------
/res/layout/activity_wizard.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
17 |
18 |
23 |
24 |
29 |
30 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/res/layout/alert_login.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
18 |
19 |
26 |
27 |
31 |
32 |
37 |
38 |
43 |
44 |
45 |
51 |
52 |
--------------------------------------------------------------------------------
/res/layout/fragment_wizard_step_one.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
19 |
20 |
26 |
27 |
33 |
34 |
40 |
41 |
49 |
50 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/res/layout/fragment_wizard_step_two.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
14 |
19 |
20 |
--------------------------------------------------------------------------------
/res/layout/fragment_wizard_step_zero.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
16 |
17 |
18 |
24 |
25 |
--------------------------------------------------------------------------------
/res/layout/fragment_wizard_sub_fragment_finish.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 |
16 |
17 |
--------------------------------------------------------------------------------
/res/layout/list_organization.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 |
17 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/res/layout/media_processing.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
17 |
24 |
25 |
--------------------------------------------------------------------------------
/res/layout/popup_yes_no.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
12 |
13 |
18 |
19 |
20 |
27 |
28 |
34 |
35 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/res/layout/tab_layout_wizard.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
--------------------------------------------------------------------------------
/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | انفورماكام
4 | حسنا
5 | إلغاء
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-eo/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | InformaCam
4 | OK
5 | Cancelar
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-fa/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | InformaCam
4 | باشه
5 | انصراف
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-fi-rFI/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | InformaCam
4 | OK
5 | Annuler
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | InformaCam
4 | OK
5 | Annulla
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-no/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | InformaCam
4 | OK
5 | Avbryt
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-pt-rPT/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | InformaCam
4 | CONFIRMAR
5 | Cancelar
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-ru/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | InformaCam
4 | OK
5 | Отменить
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-si-rLK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-sl-rSI/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-sr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-sv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Avbryt
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/values-tr-rTR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/values/color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #fff0f1f1
4 | #ffea3f3f
5 | #ffc03d2c
6 | #ff383838
7 | #ffd0d2d3
8 | #ff6d6d6d
9 | #80ffffff
10 |
--------------------------------------------------------------------------------
/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
24 |
28 |
34 |
35 |
38 |
--------------------------------------------------------------------------------
/setup-ant.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if ! type -P android &> /dev/null; then
4 | echo "Error: 'android' utility is not in your path."
5 | echo " Did you forget to setup the SDK?"
6 | exit 1
7 | fi
8 |
9 | declare -a MAPFILE=('external/android-ffmpeg-java' 'external/OnionKit/libnetcipher' 'external/ODKFormParser' 'external/google-play-services' 'external/CameraCipher')
10 |
11 | for project in "${MAPFILE[@]}"; do
12 | android update lib-project --path $project -t android-19
13 | done
14 |
15 | #cp external/CacheWord/cachewordlib/libs/iocipher.jar libs/iocipher.jar
16 | #cp libs/android-support-v4.jar external/CacheWord/cachewordlib/libs/android-support-v4.jar
17 | cp libs/android-support-v4.jar external/OnionKit/libnetcipher/libs/android-support-v4.jar
18 |
19 | android update project --path . -t android-19 -n InformaCamCore --subprojects
20 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/informa/Cron.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.informa;
2 |
3 | import org.witness.informacam.InformaCam;
4 | import org.witness.informacam.intake.Intake;
5 | import org.witness.informacam.utils.Constants.App;
6 | import org.witness.informacam.utils.Constants.Suckers;
7 |
8 | import android.app.Service;
9 | import android.content.Intent;
10 | import android.os.Handler;
11 | import android.os.IBinder;
12 | import android.util.Log;
13 |
14 | public class Cron extends Service {
15 | private final static String LOG = App.Background.LOG;
16 |
17 | @Override
18 | public void onCreate() {
19 | //Toast.makeText(this, "Cron.onCreate()", Toast.LENGTH_LONG).show();
20 | Log.d(LOG, "Cron.onCreate()");
21 | }
22 |
23 | @Override
24 | public int onStartCommand(Intent intent, int flags, int startId) {
25 | super.onStartCommand(intent, flags, startId);
26 |
27 | Log.d(LOG, "Cron.onStartCommand()");
28 |
29 | Intent intentSuckers = new Intent(this, InformaService.class);
30 | intentSuckers.setAction(InformaService.ACTION_START_SUCKERS);
31 | this.startService(intentSuckers);
32 |
33 |
34 | (new Handler()).postDelayed(new Runnable() {
35 | @Override
36 | public void run() {
37 | Intent intentSuckers = new Intent(Cron.this, InformaService.class);
38 | intentSuckers.setAction(InformaService.ACTION_STOP_SUCKERS);
39 | startService(intentSuckers);
40 | }
41 | }, (long) (60 * 1000 * Suckers.DEFAULT_CRON_ACTIVE_INTERVAL));
42 |
43 |
44 | return START_STICKY;
45 | }
46 |
47 | @Override
48 | public boolean onUnbind(Intent intent) {
49 | //Toast.makeText(this, "Cron.onUnbind()", Toast.LENGTH_LONG).show();
50 | Log.d(LOG, "Cron.onUnbind()");
51 | return super.onUnbind(intent);
52 | }
53 |
54 | @Override
55 | public void onDestroy() {
56 | super.onDestroy();
57 | //Toast.makeText(this, "Cron.onDestroy()", Toast.LENGTH_LONG).show();
58 | Log.d(LOG, "Cron.onDestroy()");
59 |
60 | Intent intentSuckers = new Intent(Cron.this, InformaService.class);
61 | intentSuckers.setAction(InformaService.ACTION_STOP_SUCKERS);
62 | startService(intentSuckers);
63 | }
64 |
65 | @Override
66 | public IBinder onBind(Intent intent) {
67 | return null;
68 | }
69 |
70 | }
71 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/informa/embed/Pipe.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.informa.embed;
2 |
3 | import java.io.InputStream;
4 | import java.io.OutputStream;
5 |
6 | public final class Pipe implements Runnable {
7 |
8 | private final InputStream in;
9 | private final OutputStream out;
10 |
11 | public Pipe(InputStream in, OutputStream out) {
12 | this.in = in;
13 | this.out = out;
14 | }
15 |
16 | public static void pipe(Process process, InputStream is, OutputStream os) {
17 |
18 | if (is != null)
19 | pipe(is, process.getOutputStream());
20 |
21 | if (os != null)
22 | pipe(process.getInputStream(), os);
23 |
24 | pipe(process.getErrorStream(), System.err);
25 |
26 | }
27 |
28 | public static void pipe(InputStream in, OutputStream out) {
29 | final Thread thread = new Thread(new Pipe(in, out));
30 | thread.setDaemon(true);
31 | thread.start();
32 | }
33 |
34 | public void run() {
35 | try {
36 | int i = -1;
37 |
38 | byte[] buf = new byte[1024];
39 |
40 | while ((i = in.read(buf)) != -1) {
41 | out.write(buf, 0, i);
42 | }
43 | } catch (Exception e) {
44 | e.printStackTrace();
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/informa/suckers/GeoSucker.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.informa.suckers;
2 |
3 | import org.witness.informacam.informa.SensorLogger;
4 | import org.witness.informacam.models.j3m.ILogPack;
5 |
6 | import android.content.Context;
7 |
8 | @SuppressWarnings("rawtypes")
9 | public abstract class GeoSucker extends SensorLogger {
10 |
11 |
12 | public GeoSucker(Context context) {
13 | super(context);
14 | }
15 |
16 | public abstract ILogPack forceReturn();
17 |
18 | public abstract long getTime();
19 |
20 | public abstract double[] updateLocation();
21 |
22 | public abstract void stopUpdates();
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/intake/BatchCompleteJob.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.intake;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | import org.witness.informacam.models.j3m.IDCIMEntry;
7 | import org.witness.informacam.utils.BackgroundProcessor;
8 | import org.witness.informacam.utils.BackgroundTask;
9 | import org.witness.informacam.utils.Constants.App.Storage.Type;
10 | import org.witness.informacam.utils.Constants.Codes;
11 | import org.witness.informacam.utils.Constants.InformaCamEventListener;
12 | import org.witness.informacam.utils.Constants.Logger;
13 |
14 | import android.os.Bundle;
15 | import android.os.Message;
16 |
17 | public class BatchCompleteJob extends BackgroundTask {
18 | private static final long serialVersionUID = 1323437516938803940L;
19 |
20 | List thumbnails = new ArrayList();
21 |
22 | protected final static String LOG = "************************** BatchCompleteJob **************************";
23 |
24 | public BatchCompleteJob(BackgroundProcessor backgroundProcessor) {
25 | super(backgroundProcessor);
26 | }
27 |
28 | @Override
29 | protected boolean onStart() {
30 |
31 | persist();
32 |
33 | return super.onStart();
34 | }
35 |
36 | @Override
37 | protected void onStop() {
38 | super.onStop();
39 |
40 | Bundle data = new Bundle();
41 | data.putInt(Codes.Extras.MESSAGE_CODE, Codes.Messages.DCIM.STOP);
42 | Message message = new Message();
43 | message.setData(data);
44 |
45 | InformaCamEventListener mListener = informaCam.getEventListener();
46 | if (mListener != null) {
47 | mListener.onUpdate(message);
48 | }
49 | }
50 |
51 | public void addThumbnail(IDCIMEntry thumbnail) {
52 | thumbnails.add(thumbnail);
53 | }
54 |
55 | public void persist() {
56 | Logger.d(LOG, "CLEANING UP AFTER DCIM OBSERVER");
57 | for(IDCIMEntry entry : thumbnails) {
58 | informaCam.ioService.delete(entry.fileAsset.path, entry.fileAsset.source);
59 | informaCam.ioService.delete(entry.uri, Type.CONTENT_RESOLVER);
60 | }
61 | }
62 |
63 | }
64 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/intake/Intake.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.intake;
2 |
3 | import org.witness.informacam.models.j3m.IDCIMEntry;
4 | import org.witness.informacam.models.j3m.IDCIMDescriptor.IDCIMSerializable;
5 | import org.witness.informacam.utils.BackgroundProcessor;
6 | import org.witness.informacam.utils.Constants.App.Storage;
7 | import org.witness.informacam.utils.Constants.Codes;
8 | import org.witness.informacam.utils.Constants.InformaCamEventListener;
9 | import org.witness.informacam.utils.Constants.Logger;
10 | import org.witness.informacam.utils.Constants.Models;
11 |
12 | import android.app.IntentService;
13 | import android.content.Intent;
14 | import android.os.Bundle;
15 | import android.os.Message;
16 |
17 | public class Intake extends IntentService {
18 |
19 | public Intake() {
20 | super(Storage.Intake.TAG);
21 | }
22 |
23 | @Override
24 | protected void onHandleIntent(Intent intent) {
25 |
26 | BackgroundProcessor queue = new BackgroundProcessor();
27 | queue.setOnBatchComplete(new BatchCompleteJob(queue));
28 | IDCIMSerializable dcimDescriptor = ((IDCIMSerializable) intent.getSerializableExtra(Codes.Extras.RETURNED_MEDIA));
29 | long timeOffset = intent.getLongExtra(Codes.Extras.TIME_OFFSET, 0L);
30 | String[] cacheFiles = intent.getStringArrayExtra(Codes.Extras.INFORMA_CACHE);
31 |
32 | String parentId = null;
33 | if(intent.hasExtra(Codes.Extras.MEDIA_PARENT)) {
34 | parentId = intent.getStringExtra(Codes.Extras.MEDIA_PARENT);
35 | }
36 |
37 | for(IDCIMEntry entry : dcimDescriptor.dcimList) {
38 | queue.add(new EntryJob(queue, entry, parentId, cacheFiles, timeOffset));
39 | if(!entry.mediaType.equals(Models.IDCIMEntry.THUMBNAIL)) {
40 | //queue.numProcessing++;
41 | }
42 | }
43 |
44 | new Thread(queue).start();
45 | //queue.stop();
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/json/JSONException.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.json;
2 |
3 | /**
4 | * The JSONException is thrown by the JSON.org classes when things are amiss.
5 | *
6 | * @author JSON.org
7 | * @version 2014-05-03
8 | */
9 | public class JSONException extends RuntimeException {
10 | private static final long serialVersionUID = 0;
11 | private Throwable cause;
12 |
13 | /**
14 | * Constructs a JSONException with an explanatory message.
15 | *
16 | * @param message
17 | * Detail about the reason for the exception.
18 | */
19 | public JSONException(String message) {
20 | super(message);
21 | }
22 |
23 | /**
24 | * Constructs a new JSONException with the specified cause.
25 | * @param cause The cause.
26 | */
27 | public JSONException(Throwable cause) {
28 | super(cause.getMessage());
29 | this.cause = cause;
30 | }
31 |
32 | /**
33 | * Returns the cause of this exception or null if the cause is nonexistent
34 | * or unknown.
35 | *
36 | * @return the cause of this exception or null if the cause is nonexistent
37 | * or unknown.
38 | */
39 | @Override
40 | public Throwable getCause() {
41 | return this.cause;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/json/JSONString.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.json;
2 | /**
3 | * The JSONString interface allows a toJSONString()
4 | * method so that a class can change the behavior of
5 | * JSONObject.toString(), JSONArray.toString(),
6 | * and JSONWriter.value(Object). The
7 | * toJSONString method will be used instead of the default behavior
8 | * of using the Object's toString() method and quoting the result.
9 | */
10 | public interface JSONString {
11 | /**
12 | * The toJSONString method allows a class to produce its own JSON
13 | * serialization.
14 | *
15 | * @return A strictly syntactically correct JSON text.
16 | */
17 | public String toJSONString();
18 | }
19 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/credentials/ICredentials.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.credentials;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.models.Model;
6 |
7 | @SuppressWarnings("serial")
8 | public class ICredentials extends Model implements Serializable {
9 | public String iv = null;
10 | public String passwordBlock = null;
11 |
12 | public ICredentials() {
13 | super();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/credentials/IKeyStore.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.credentials;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.json.JSONObject;
6 | import org.witness.informacam.models.Model;
7 |
8 | @SuppressWarnings("serial")
9 | public class IKeyStore extends Model implements Serializable {
10 | public String path = null;
11 | public String password = null;
12 | public long lastModified = 0L;
13 |
14 | public IKeyStore() {
15 | super();
16 | }
17 |
18 | public IKeyStore(IKeyStore keyStore) throws InstantiationException, IllegalAccessException {
19 | super();
20 | inflate(keyStore.asJson());
21 | }
22 |
23 | public IKeyStore(JSONObject keyStore) throws InstantiationException, IllegalAccessException {
24 | super();
25 | inflate(keyStore);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/credentials/ISecretKey.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.credentials;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.json.JSONObject;
6 | import org.witness.informacam.models.Model;
7 |
8 | @SuppressWarnings("serial")
9 | public class ISecretKey extends Model implements Serializable {
10 | public String pgpKeyFingerprint = null;
11 | public String secretAuthToken = null;
12 | public String secretKey = null;
13 |
14 | public ISecretKey() {
15 | super();
16 | }
17 |
18 | public ISecretKey(ISecretKey secretKey) throws InstantiationException, IllegalAccessException {
19 | super();
20 | inflate(secretKey.asJson());
21 | }
22 |
23 | public ISecretKey(JSONObject secretKey) throws InstantiationException, IllegalAccessException {
24 | super();
25 | inflate(secretKey);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/forms/IInstalledForms.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.forms;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | import org.witness.informacam.models.Model;
7 |
8 | public class IInstalledForms extends Model {
9 | public List installedForms = new ArrayList();
10 | }
11 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/IDCIMEntry.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.InformaCam;
6 | import org.witness.informacam.models.Model;
7 | import org.witness.informacam.models.media.IAsset;
8 |
9 | @SuppressWarnings("serial")
10 | public class IDCIMEntry extends Model implements Serializable {
11 | public String uri = null;
12 |
13 | public String name = null;
14 | public String authority = null;
15 | public String originalHash = null;
16 | public String bitmapHash = null;
17 | public String mediaType = null;
18 |
19 | public IAsset fileAsset = null;
20 | public IAsset thumbnail = null;
21 |
22 | public IExif exif = null;
23 | public String cameraComponent = null;
24 |
25 | public long size = 0L;
26 | public long timeCaptured = 0L;
27 | public String timezone = null;
28 | public long id = 0L;
29 |
30 | public IDCIMEntry() {
31 | super();
32 | }
33 |
34 | public IDCIMEntry(Object dcimEntry) throws InstantiationException, IllegalAccessException {
35 | super();
36 | inflate(((Model) dcimEntry).asJson());
37 | }
38 |
39 | public boolean isAvailable() {
40 | boolean isAvailable = false;
41 |
42 | // do {
43 | isAvailable = InformaCam.getInstance().ioService.isAvailable(fileAsset.path, fileAsset.source);
44 | //} while(!isAvailable);
45 |
46 | return isAvailable;
47 | }
48 | }
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/IData.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import java.util.List;
4 |
5 | import org.witness.informacam.models.Model;
6 |
7 | public class IData extends Model {
8 | public List sensorCapture = null;
9 | public List userAppendedData = null;
10 | public IExif exif = null;
11 | public List attachments = null;
12 | public IIntakeData intakeData = null;
13 | }
14 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/IExif.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.models.Model;
6 |
7 | public class IExif extends Model implements Serializable {
8 | private static final long serialVersionUID = 3982862461387724113L;
9 |
10 | public String aperture = null;
11 | public String make = null;
12 | public String model = null;
13 | public String timestamp = null;
14 | public String exposure = null;
15 | public String iso = null;
16 |
17 | public int width = 0;
18 | public int height = 0;
19 | public int flash = 0;
20 | public int focalLength = 0;
21 | public int orientation = 0;
22 | public int whiteBalance = 0;
23 |
24 | public long duration = 0L;
25 | public float[] location = new float[] {0.0f, 0.0f};
26 |
27 | public IExif() {
28 | super();
29 | }
30 |
31 | public IExif(IExif exif) throws InstantiationException, IllegalAccessException {
32 | super();
33 | inflate(exif);
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/IGenealogy.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import java.util.List;
4 |
5 | import org.witness.informacam.models.Model;
6 |
7 | public class IGenealogy extends Model {
8 | public String localMediaPath = null;
9 | public long dateCreated = 0L;
10 | public String createdOnDevice = null;
11 | public List hashes = null;
12 | public String j3m_version = "J3M version 1.0";
13 | }
14 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/IIntakeData.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import org.witness.informacam.InformaCam;
4 | import org.witness.informacam.json.JSONObject;
5 | import org.witness.informacam.models.Model;
6 | import org.witness.informacam.utils.Constants.Logger;
7 |
8 | import android.util.Base64;
9 |
10 | public class IIntakeData extends Model {
11 | public byte[] data = null;
12 | public String signature = null;
13 |
14 | public IIntakeData() {
15 | super();
16 | }
17 |
18 | public IIntakeData(IIntakeData intakeData) throws InstantiationException, IllegalAccessException {
19 | super();
20 | inflate(intakeData);
21 | }
22 |
23 | public IIntakeData(long timeCreated, String timezone, long timeOffset, String originalHash, String cameraComponentPackageName) {
24 | super();
25 | InformaCam informaCam = InformaCam.getInstance();
26 |
27 | JSONObject dataObj = new JSONObject();
28 |
29 | try {
30 | dataObj.put("timezone", timezone);
31 | dataObj.put("timeCreated", timeCreated);
32 | dataObj.put("timeOffset", timeOffset);
33 | dataObj.put("cameraComponentPackageName", cameraComponentPackageName);
34 | dataObj.put("originalHash", originalHash);
35 |
36 | data = Base64.encode(dataObj.toString().getBytes(), Base64.DEFAULT);
37 | signature = new String(informaCam.signatureService.signData(data));
38 | } catch(Exception e) {
39 | Logger.e(LOG, e);
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/IIntent.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import org.witness.informacam.models.Model;
4 | import org.witness.informacam.utils.Constants.Models;
5 |
6 | public class IIntent extends Model {
7 | public String alias = null;
8 | public String pgpKeyFingerprint = null;
9 | public String intendedDestination = null;
10 | public int ownershipType = Models.IGenealogy.OwnershipType.INDIVIDUAL;
11 | }
12 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/ILocation.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import org.witness.informacam.models.Model;
4 |
5 | public class ILocation extends Model {
6 | public long cellId;
7 | public float[] geoCoordinates;
8 |
9 | public ILocation(float[] geoCoordinates) {
10 | this.geoCoordinates = geoCoordinates;
11 | }
12 |
13 | public ILocation(double[] geoCoordinates) {
14 | this.geoCoordinates = new float[] {(float) geoCoordinates[0], (float) geoCoordinates[1]};
15 | }
16 |
17 | public ILocation(double[] geoCoordinates, long cellId) {
18 | this(geoCoordinates);
19 |
20 | this.cellId = cellId;
21 | }
22 |
23 | public ILocation(float[] geoCoordinates, long cellId) {
24 | this(geoCoordinates);
25 |
26 | this.cellId = cellId;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/ILogPack.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import info.guardianproject.odkparser.utils.Model;
4 |
5 | import java.util.ArrayList;
6 | import java.util.Iterator;
7 | import java.util.List;
8 |
9 | import org.witness.informacam.json.JSONException;
10 | import org.witness.informacam.json.JSONObject;
11 |
12 | import android.util.Log;
13 |
14 | public class ILogPack extends Model {
15 | public List captureTypes = null;
16 |
17 | public ILogPack() {
18 | super();
19 | }
20 |
21 | public ILogPack(String key, Object value) {
22 | this(key, value, false);
23 | }
24 |
25 | public ILogPack(String key, Object value, boolean isCaptureEvent) {
26 | super();
27 |
28 | if(isCaptureEvent) {
29 | if(captureTypes == null) {
30 | captureTypes = new ArrayList();
31 | }
32 |
33 | if(!captureTypes.contains(value)) {
34 | captureTypes.add((Integer) value);
35 | }
36 | } else {
37 | try {
38 | this.put(key, value);
39 | } catch(JSONException e) {}
40 | }
41 |
42 | //Log.d(LOG, asJson().toString());
43 | }
44 |
45 | @SuppressWarnings("unchecked")
46 | @Override
47 | public void inflate(JSONObject values) {
48 | super.inflate(values);
49 |
50 | Iterator it = keys();
51 | while(it.hasNext()) {
52 | String key = it.next();
53 | try {
54 | put(key, values.get(key));
55 | } catch (JSONException e) {
56 | Log.e(LOG, e.toString());
57 | e.printStackTrace();
58 | }
59 | }
60 | }
61 |
62 | @SuppressWarnings("unchecked")
63 | @Override
64 | public JSONObject asJson() {
65 | JSONObject j = super.asJson();
66 | Iterator it = keys();
67 | while(it.hasNext()) {
68 | String key = it.next();
69 | try {
70 | j.put(key, get(key));
71 | } catch (JSONException e) {
72 | Log.e(LOG, e.toString());
73 | e.printStackTrace();
74 | }
75 | }
76 | return j;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/IPatch.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import java.util.List;
4 |
5 | import org.witness.informacam.models.Model;
6 | import org.witness.informacam.models.forms.IForm;
7 |
8 | public class IPatch extends Model {
9 | public String attachedMedia = null;
10 | public IForm attachedForm = null;
11 | public List associatedCaches = null;
12 |
13 | public String _id = null;
14 |
15 | public IPatch() {
16 | super();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/ISensorCapture.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import java.io.IOException;
4 | import java.security.NoSuchAlgorithmException;
5 |
6 | import org.witness.informacam.json.JSONException;
7 | import org.witness.informacam.json.JSONObject;
8 | import org.witness.informacam.models.Model;
9 | import org.witness.informacam.utils.Constants.Logger;
10 | import org.witness.informacam.utils.Constants.Suckers.CaptureEvent;
11 | import org.witness.informacam.utils.Constants.Suckers.Phone;
12 | import org.witness.informacam.utils.MediaHasher;
13 |
14 | public class ISensorCapture extends Model {
15 | public long timestamp = 0L;
16 | public int captureType = CaptureEvent.SENSOR_PLAYBACK;
17 | public JSONObject sensorPlayback = null;
18 |
19 | public ISensorCapture() {
20 | super();
21 | }
22 |
23 | public ISensorCapture(long timestamp, JSONObject sensorPlayback) {
24 | super();
25 |
26 | this.timestamp = timestamp;
27 |
28 | if(sensorPlayback.has(Phone.Keys.BLUETOOTH_DEVICE_ADDRESS)) {
29 | try {
30 | String btAnon = sensorPlayback.getString(Phone.Keys.BLUETOOTH_DEVICE_ADDRESS) + ((sensorPlayback.has(Phone.Keys.BLUETOOTH_DEVICE_NAME) && !sensorPlayback.getString(Phone.Keys.BLUETOOTH_DEVICE_NAME).equals("")) ? sensorPlayback.getString(Phone.Keys.BLUETOOTH_DEVICE_NAME) : "null");
31 | sensorPlayback.put(Phone.Keys.BLUETOOTH_DEVICE_ADDRESS, MediaHasher.hash(btAnon.getBytes(), "SHA-1"));
32 | } catch (NoSuchAlgorithmException e) {
33 | Logger.e(LOG, e);
34 | e.printStackTrace();
35 | } catch (JSONException e) {
36 | Logger.e(LOG, e);
37 | e.printStackTrace();
38 | } catch (IOException e) {
39 | Logger.e(LOG, e);
40 | e.printStackTrace();
41 | }
42 | }
43 |
44 | this.sensorPlayback = sensorPlayback;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/j3m/ISuckerCache.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.j3m;
2 |
3 | import org.witness.informacam.json.JSONArray;
4 | import org.witness.informacam.models.Model;
5 |
6 | public class ISuckerCache extends Model {
7 | public JSONArray cache = null;
8 | public long timeOffset = 0L;
9 | }
10 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/media/IImage.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.media;
2 |
3 | import java.io.IOException;
4 | import java.io.InputStream;
5 | import java.util.ArrayList;
6 |
7 | import org.witness.informacam.Debug;
8 | import org.witness.informacam.InformaCam;
9 | import org.witness.informacam.models.j3m.IGenealogy;
10 | import org.witness.informacam.storage.IOUtility;
11 | import org.witness.informacam.utils.Constants.Logger;
12 | import org.witness.informacam.utils.Constants.Models.IUser;
13 | import org.witness.informacam.utils.ImageUtility;
14 | import org.witness.informacam.utils.MediaHasher;
15 |
16 | import android.graphics.Bitmap;
17 | import android.graphics.BitmapFactory;
18 | import android.util.Log;
19 |
20 | public class IImage extends IMedia {
21 | public IImage() {
22 | super();
23 | }
24 |
25 | public IImage(IMedia media) throws InstantiationException, IllegalAccessException {
26 | super();
27 | inflate(media.asJson());
28 | }
29 |
30 | @Override
31 | public boolean analyze() throws IOException {
32 | super.analyze();
33 |
34 | InformaCam informaCam = InformaCam.getInstance();
35 |
36 |
37 | BitmapFactory.Options opts = new BitmapFactory.Options();
38 | opts.inJustDecodeBounds = true;
39 |
40 | InputStream isImage = informaCam.ioService.getStream(dcimEntry.fileAsset.path, dcimEntry.fileAsset.source);
41 | BitmapFactory.decodeStream(isImage, null, opts);
42 | height = opts.outHeight;
43 | width = opts.outWidth;
44 | isImage.close();
45 |
46 | // hash
47 | if(genealogy == null) {
48 | genealogy = new IGenealogy();
49 | }
50 |
51 |
52 | genealogy.hashes = new ArrayList();
53 |
54 | String hash = null;
55 |
56 | try
57 | {
58 | isImage = informaCam.ioService.getStream(dcimEntry.fileAsset.path, dcimEntry.fileAsset.source);
59 | hash = MediaHasher.getJpegHash(isImage);
60 | isImage.close();
61 |
62 | }
63 | catch (Exception e)
64 | {
65 | Log.e(LOG,"error media hash",e);
66 | }
67 | if (hash != null)
68 | genealogy.hashes.add(hash);
69 |
70 | return true;
71 | }
72 | }
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/media/IVideo.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.media;
2 |
3 | import java.io.IOException;
4 | import java.util.ArrayList;
5 |
6 | import org.witness.informacam.InformaCam;
7 | import org.witness.informacam.informa.embed.VideoConstructor;
8 | import org.witness.informacam.models.j3m.IGenealogy;
9 | import org.witness.informacam.storage.IOUtility;
10 |
11 | import android.graphics.Bitmap;
12 |
13 | public class IVideo extends IMedia {
14 | public IAsset video = null;
15 |
16 | public IVideo() {
17 | super();
18 | }
19 |
20 | public IVideo(IMedia media) throws InstantiationException, IllegalAccessException {
21 | super();
22 | inflate(media.asJson());
23 | }
24 |
25 | @Override
26 | public Bitmap getBitmap(IAsset bitmapAsset) {
27 | try
28 | {
29 | return IOUtility.getBitmapFromFile(dcimEntry.thumbnail.path, dcimEntry.thumbnail.source);
30 | }
31 | catch (IOException ioe)
32 | {
33 | return null;
34 | }
35 | }
36 |
37 | @Override
38 | public boolean analyze() throws IOException {
39 | super.analyze();
40 |
41 | InformaCam informaCam = InformaCam.getInstance();
42 |
43 | height = dcimEntry.exif.height;
44 | width = dcimEntry.exif.width;
45 |
46 | // 1. hash
47 | VideoConstructor vc = new VideoConstructor(informaCam);
48 | if(genealogy == null) {
49 | genealogy = new IGenealogy();
50 | }
51 |
52 | genealogy.hashes = new ArrayList();
53 |
54 | String hash = vc.hashVideo(dcimEntry.fileAsset.path, dcimEntry.fileAsset.source, "mp4");
55 |
56 | if (hash != null)
57 | genealogy.hashes.add(hash);
58 |
59 | // 2. copy over video
60 | video = dcimEntry.fileAsset;
61 | return true;
62 | }
63 | }
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/media/IVideoTrail.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.media;
2 |
3 | import org.witness.informacam.json.JSONException;
4 | import org.witness.informacam.json.JSONObject;
5 | import org.witness.informacam.models.Model;
6 | import org.witness.informacam.utils.Constants.Models;
7 |
8 | import android.util.Log;
9 |
10 | public class IVideoTrail extends Model {
11 | public long timestamp = 0L;
12 | public IRegionBounds bounds = null;
13 |
14 | public IVideoTrail() {
15 | super();
16 | }
17 |
18 | public IVideoTrail(long timestamp, IRegionBounds bounds) {
19 | super();
20 |
21 | this.timestamp = timestamp;
22 | this.bounds = bounds;
23 | }
24 |
25 | @Override
26 | public JSONObject asJson() {
27 | JSONObject vt = super.asJson();
28 | try {
29 | JSONObject b = vt.getJSONObject(Models.IRegion.BOUNDS);
30 | b.remove(Models.IRegion.Bounds.DURATION);
31 | b.remove(Models.IRegion.Bounds.START_TIME);
32 | b.remove(Models.IRegion.Bounds.END_TIME);
33 | } catch (JSONException e) {
34 | Log.e(LOG, e.toString());
35 | e.printStackTrace();
36 | }
37 |
38 | return vt;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/notifications/IMail.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.notifications;
2 |
3 | import org.witness.informacam.models.Model;
4 |
5 | public class IMail extends Model {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/organizations/IIdentity.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.organizations;
2 |
3 | import org.witness.informacam.models.Model;
4 |
5 | public class IIdentity extends Model {
6 | public String _id = null;
7 | public String _rev = null;
8 |
9 | public IIdentity() {
10 | super();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/organizations/IOrganization.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.organizations;
2 |
3 | import java.io.Serializable;
4 | import java.util.ArrayList;
5 | import java.util.List;
6 |
7 | import org.witness.informacam.InformaCam;
8 | import org.witness.informacam.json.JSONObject;
9 | import org.witness.informacam.models.Model;
10 | import org.witness.informacam.models.forms.IForm;
11 |
12 | @SuppressWarnings("serial")
13 | public class IOrganization extends Model implements Serializable {
14 | public String organizationName = null;
15 | public String organizationDetails = null;
16 | public String publicKey = null;
17 | public String organizationFingerprint = null;
18 | public String organizationIcon = null;
19 | public boolean keyReceived = false;
20 | public List repositories = new ArrayList();
21 | public List forms = new ArrayList();
22 |
23 | public IOrganization() {
24 | super();
25 | }
26 |
27 | public IOrganization(JSONObject organization) throws InstantiationException, IllegalAccessException {
28 | super();
29 | inflate(organization);
30 | }
31 |
32 | public void save() throws InstantiationException, IllegalAccessException {
33 | InformaCam informaCam = InformaCam.getInstance();
34 | informaCam.installedOrganizations.getByFingerprint(organizationFingerprint).inflate(this);
35 | informaCam.installedOrganizations.save();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/organizations/IRepository.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.organizations;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.models.Model;
6 |
7 | @SuppressWarnings("serial")
8 | public class IRepository extends Model implements Serializable {
9 | public String source = null;
10 |
11 | public String asset_root = null;
12 | public String asset_id = null;
13 |
14 | public String applicationSignature = null;
15 | public String packageName = null;
16 |
17 | }
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/transport/ITransportData.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.transport;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.models.Model;
6 | import org.witness.informacam.utils.Constants.App.Storage;
7 |
8 | public class ITransportData extends Model implements Serializable {
9 | private static final long serialVersionUID = 875084964718311617L;
10 |
11 | public String assetPath = null;
12 | public String assetName = null;
13 | public String mimeType = null;
14 | public String key = null;
15 | public int storageType = -1;
16 |
17 | public ITransportData() {
18 | super();
19 | }
20 |
21 | public ITransportData(ITransportData transportData) throws InstantiationException, IllegalAccessException {
22 | super();
23 | inflate(transportData);
24 | }
25 | }
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/utils/ILanguage.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.utils;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.models.Model;
6 |
7 | @SuppressWarnings("serial")
8 | public class ILanguage extends Model implements Serializable {
9 | public String code = null;
10 | public String label = null;
11 |
12 | public ILanguage() {}
13 |
14 | public ILanguage(String code, String label) {
15 | this.code = code;
16 | this.label = label;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/models/utils/ILanguageMap.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.models.utils;
2 |
3 | import java.io.Serializable;
4 | import java.util.ArrayList;
5 | import java.util.List;
6 |
7 | import org.witness.informacam.models.Model;
8 |
9 | @SuppressWarnings("serial")
10 | public class ILanguageMap extends Model implements Serializable {
11 | public List languages = new ArrayList();
12 |
13 | public ILanguageMap() {}
14 |
15 | public void add(String code, String label) {
16 | languages.add(languages.size(), new ILanguage(code, label));
17 | }
18 |
19 | public String getCode(int which) {
20 | return languages.get(which).code;
21 | }
22 |
23 | public ArrayList getLabels() {
24 | ArrayList labels = new ArrayList();
25 | for(ILanguage language : languages) {
26 | labels.add(language.label);
27 | }
28 |
29 | return labels;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/share/www/InternalRewrite.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.share.www;
2 |
3 | import java.util.Map;
4 |
5 | import fi.iki.elonen.NanoHTTPD.Response;
6 |
7 | /**
8 | * @author Paul S. Hawke (paul.hawke@gmail.com)
9 | * On: 9/15/13 at 2:52 PM
10 | */
11 | public class InternalRewrite extends Response {
12 | private final String uri;
13 | private final Map headers;
14 |
15 | public InternalRewrite(Map headers, String uri) {
16 | super(null);
17 | this.headers = headers;
18 | this.uri = uri;
19 | }
20 |
21 | public String getUri() {
22 | return uri;
23 | }
24 |
25 | public Map getHeaders() {
26 | return headers;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/share/www/ServerRunner.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.share.www;
2 |
3 | import java.io.IOException;
4 |
5 | import fi.iki.elonen.NanoHTTPD;
6 |
7 | public class ServerRunner {
8 | public static void run(Class serverClass) {
9 | try {
10 | executeInstance((NanoHTTPD) serverClass.newInstance());
11 | } catch (Exception e) {
12 | e.printStackTrace();
13 | }
14 | }
15 |
16 | public static void executeInstance(NanoHTTPD server) {
17 | try {
18 | server.start();
19 | } catch (IOException ioe) {
20 | System.err.println("Couldn't start server:\n" + ioe);
21 | System.exit(-1);
22 | }
23 |
24 | System.out.println("Server started, Hit Enter to stop.\n");
25 |
26 | try {
27 | System.in.read();
28 | } catch (Throwable ignored) {
29 | }
30 |
31 | server.stop();
32 | System.out.println("Server stopped.\n");
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/share/www/WebServerPlugin.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.share.www;
2 |
3 | import java.io.File;
4 | import java.util.Map;
5 |
6 | import fi.iki.elonen.NanoHTTPD;
7 |
8 | /**
9 | * @author Paul S. Hawke (paul.hawke@gmail.com)
10 | * On: 9/14/13 at 8:09 AM
11 | */
12 | public interface WebServerPlugin {
13 |
14 | void initialize(Map commandLineOptions);
15 |
16 | boolean canServeUri(String uri, File rootDir);
17 |
18 | NanoHTTPD.Response serveFile(String uri, Map headers, File file, String mimeType);
19 | }
20 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/share/www/WebServerPluginInfo.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.share.www;
2 |
3 | /**
4 | * @author Paul S. Hawke (paul.hawke@gmail.com)
5 | * On: 9/14/13 at 8:09 AM
6 | */
7 | public interface WebServerPluginInfo {
8 | String[] getMimeTypes();
9 |
10 | String[] getIndexFilesForMimeType(String mime);
11 |
12 | WebServerPlugin getWebServerPlugin(String mimeType);
13 | }
14 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/transport/TransportUtility.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.transport;
2 |
3 | import org.witness.informacam.InformaCam;
4 | import org.witness.informacam.models.organizations.IRepository;
5 | import org.witness.informacam.models.transport.ITransportStub;
6 | import org.witness.informacam.utils.Constants.Logger;
7 | import org.witness.informacam.utils.Constants.Models;
8 | import org.witness.informacam.utils.Constants.App.Transport;
9 |
10 | import android.content.Intent;
11 |
12 | public class TransportUtility {
13 | private static final String LOG = Transport.LOG;
14 |
15 | public static void initTransport(ITransportStub transportStub) {
16 | InformaCam informaCam = InformaCam.getInstance();
17 | Logger.d(LOG, "TRANSPORT:\n" + transportStub.asJson().toString());
18 |
19 | for(IRepository repository : transportStub.organization.repositories) {
20 |
21 | Intent intent = null;
22 | if(repository.source.equals(Models.ITransportStub.RepositorySources.GOOGLE_DRIVE)) {
23 | //intent = new Intent(informaCam, GoogleAccountUtility.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
24 | intent = new Intent(informaCam, GoogleDriveTransport.class);
25 | }
26 |
27 | if(repository.source.equals(Models.ITransportStub.RepositorySources.GLOBALEAKS)) {
28 | intent = new Intent(informaCam, GlobaleaksTransport.class);
29 | }
30 |
31 | if(repository.source.equals(Models.ITransportStub.RepositorySources.APP)) {
32 | // look up the APK by package name and signature
33 | // so, since this is in the transport loop, i pretty much only ever have an encrypted file. can i share this out as bytes? or must i burn it to SD?
34 |
35 | /*
36 | Uri uri = URI.create("");
37 | intent = new Intent(Intent.ACTION_SEND)
38 | .setPackage(repository.packageName)
39 | .putExtra(Intent.EXTRA_STREAM, uri);
40 | */
41 | }
42 |
43 | if(intent != null) {
44 | Logger.d(LOG, "HEY STARTING TO TRANSPORT");
45 |
46 | intent.putExtra(Models.ITransportStub.TAG, transportStub);
47 | informaCam.startService(intent);
48 | }
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/ui/LoginActivity.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.ui;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 |
6 | public class LoginActivity extends Activity {
7 |
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | // TODO Auto-generated method stub
11 | super.onCreate(savedInstanceState);
12 |
13 | finish();
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/ui/popups/Popup.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.ui.popups;
2 |
3 | import org.witness.informacam.utils.Constants.App;
4 |
5 | import android.app.Activity;
6 | import android.app.AlertDialog;
7 | import android.app.Dialog;
8 | import android.view.LayoutInflater;
9 | import android.view.View;
10 |
11 | public class Popup extends AlertDialog.Builder {
12 | public Object context;
13 | public Dialog alert;
14 | public View layout;
15 |
16 | protected final static String LOG = App.Background.LOG;
17 |
18 | interface PopupListener {
19 | public void perform();
20 | }
21 |
22 | public Popup(Activity a, int layoutId) {
23 | super(a);
24 |
25 | layout = LayoutInflater.from(a).inflate(layoutId, null);
26 |
27 | alert = create();
28 | setView(layout);
29 | }
30 |
31 | public void Show() {
32 | alert = this.show();
33 | }
34 |
35 | public void cancel() {
36 | alert.cancel();
37 | }
38 |
39 | public void setObjectContext(Object context) {
40 | this.context = context;
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/ui/popups/YesNoPopup.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.ui.popups;
2 |
3 | import java.util.ArrayList;
4 |
5 | import org.witness.informacam.R;
6 |
7 | import android.app.Activity;
8 | import android.view.View;
9 | import android.view.View.OnClickListener;
10 | import android.widget.Button;
11 | import android.widget.LinearLayout;
12 |
13 | public class YesNoPopup extends Popup implements OnClickListener {
14 | protected Button ok, cancel;
15 | protected LinearLayout infoHolder;
16 |
17 | public YesNoPopup(Activity a, ArrayList infoViews) {
18 | super(a, R.layout.popup_yes_no);
19 | ok = (Button) layout.findViewById(R.id.yes_no_ok);
20 | ok.setOnClickListener(this);
21 |
22 | cancel = (Button) layout.findViewById(R.id.yes_no_cancel);
23 | cancel.setOnClickListener(this);
24 |
25 | infoHolder = (LinearLayout) layout.findViewById(R.id.info_holder);
26 | for(View v : infoViews) {
27 | infoHolder.addView(v);
28 | }
29 |
30 | Show();
31 | }
32 |
33 | @Override
34 | public void onClick(View v) {}
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/ui/screens/WizardSubFragmentFinish.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.ui.screens;
2 |
3 | import org.witness.informacam.R;
4 |
5 | import android.app.Activity;
6 | import android.os.Bundle;
7 | import android.support.v4.app.Fragment;
8 | import android.view.LayoutInflater;
9 | import android.view.View;
10 | import android.view.ViewGroup;
11 |
12 | public class WizardSubFragmentFinish extends Fragment {
13 | View rootView;
14 | Activity a;
15 |
16 | @Override
17 | public void onCreate(Bundle savedInstanceState) {
18 | super.onCreate(savedInstanceState);
19 | }
20 |
21 | @Override
22 | public View onCreateView(LayoutInflater li, ViewGroup container, Bundle savedInstanceState) {
23 | super.onCreateView(li, container, savedInstanceState);
24 |
25 | rootView = li.inflate(R.layout.fragment_wizard_sub_fragment_finish, null);
26 |
27 | return rootView;
28 | }
29 |
30 | @Override
31 | public void onAttach(Activity a) {
32 | super.onAttach(a);
33 | this.a = a;
34 | }
35 |
36 | @Override
37 | public void onActivityCreated(Bundle savedInstanceState) {
38 | super.onActivityCreated(savedInstanceState);
39 |
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/utils/BackgroundProcessor.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.utils;
2 |
3 | import java.util.concurrent.LinkedBlockingQueue;
4 |
5 | import org.witness.informacam.utils.Constants.App.Background;
6 |
7 | import android.util.Log;
8 |
9 | @SuppressWarnings("serial")
10 | public class BackgroundProcessor extends LinkedBlockingQueue implements Runnable {
11 | BackgroundTask currentTask = null;
12 | BackgroundTask onBatchComplete = null;
13 |
14 | public static int numProcessing = 0;
15 | public static int numCompleted = 0;
16 |
17 | private boolean stopped = false;
18 |
19 | private final static String LOG = Background.LOG;
20 |
21 | public void setOnBatchComplete(BackgroundTask onBatchComplete) {
22 | this.onBatchComplete = onBatchComplete;
23 | }
24 |
25 | public void stop() {
26 | stopped = true;
27 | if(onBatchComplete != null) {
28 | add(onBatchComplete);
29 | }
30 | }
31 |
32 | @Override
33 | public void run() {
34 | while(!stopped || this.size() > 0) {
35 | try {
36 | while((currentTask = take()) != null) {
37 | Log.d(LOG, "starting a new task. current queue size: " + size());
38 | if(currentTask.onStart()) {
39 | currentTask.onStop();
40 | }
41 | }
42 | } catch (InterruptedException e) {
43 | Log.e(LOG, e.toString(),e);
44 | }
45 | }
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/src/org/witness/informacam/utils/BackgroundTask.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.utils;
2 |
3 | import java.io.Serializable;
4 |
5 | import org.witness.informacam.InformaCam;
6 |
7 | @SuppressWarnings("serial")
8 | public class BackgroundTask implements Serializable {
9 | protected BackgroundProcessor backgroundProcessor = null;
10 | protected InformaCam informaCam = InformaCam.getInstance();
11 |
12 | public BackgroundTask(BackgroundProcessor backgroundProcessor) {
13 | this.backgroundProcessor = backgroundProcessor;
14 | }
15 |
16 | public BackgroundTask getOnBatchCompleteTask() {
17 | return backgroundProcessor.onBatchComplete;
18 | }
19 |
20 | protected boolean onStart() {
21 | return true;
22 | }
23 |
24 | protected void onStop() {}
25 | }
--------------------------------------------------------------------------------
/src/org/witness/informacam/utils/InnerBroadcaster.java:
--------------------------------------------------------------------------------
1 | package org.witness.informacam.utils;
2 |
3 | import org.witness.informacam.InformaCam;
4 | import org.witness.informacam.utils.Constants.App;
5 | import org.witness.informacam.utils.Constants.Codes;
6 |
7 | import android.content.BroadcastReceiver;
8 | import android.content.Context;
9 | import android.content.Intent;
10 | import android.content.IntentFilter;
11 | import android.util.Log;
12 |
13 | public class InnerBroadcaster extends BroadcastReceiver {
14 | private final static String LOG = App.LOG;
15 |
16 | public IntentFilter intentFilter;
17 | public int processId = -1;
18 | public boolean isIntended = true;
19 |
20 | private boolean isMounted = false;
21 |
22 | public InnerBroadcaster(IntentFilter intentFilter, int processId) {
23 | this.intentFilter = intentFilter;
24 | this.processId = processId;
25 | }
26 |
27 | public void setMounted(boolean isMounted) {
28 | this.isMounted = isMounted;
29 | }
30 |
31 | public boolean isMounted() {
32 | return isMounted;
33 | }
34 |
35 | @Override
36 | public void onReceive(Context context, Intent intent) {
37 | InformaCam informaCam = InformaCam.getInstance();
38 | if(informaCam == null) {
39 | isIntended = false;
40 | return;
41 | }
42 |
43 | if(intent.hasExtra(Codes.Extras.RESTRICT_TO_PROCESS)) {
44 | int restrictToProcess = intent.getIntExtra(Codes.Extras.RESTRICT_TO_PROCESS, -1);
45 | Log.d(LOG, "this broadcast should be restricted to pid " + restrictToProcess + " (my pid: " + informaCam.getProcess() + ")");
46 | if(restrictToProcess != informaCam.getProcess()) {
47 | isIntended = false;
48 | return;
49 | }
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------