Skip to content

Commit

Permalink
Merge pull request #76 from measurement-kit/new-ux
Browse files Browse the repository at this point in the history
New ux
  • Loading branch information
bassosimone authored Feb 3, 2017
2 parents c270fea + 9467574 commit 82f9d8f
Show file tree
Hide file tree
Showing 174 changed files with 3,330 additions and 46,376 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@
/ooniprobe.xcodeproj/xcuserdata
/ooniprobe.xcworkspace/xcuserdata/
/Pods/

ooniprobe.xcworkspace/xcuserdata/lorenzo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
15 changes: 15 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# ooniprobe-ios 1.1.0 [2017-02-03]

This is the first public release of ooniprobe-ios.

measurement-kit version: 0.4.0-beta.3

ooniprobe-wui version: 2.2.0-rc.0

# ooniprobe-ios 1.0

This version has never been released and was only present in test flight.

measurement-kit version: various (<0.4.0-beta.3)

ooniprobe-wui version: various (<2.2.0-rc.0)
8 changes: 6 additions & 2 deletions Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ platform :ios, '8.0'
target 'ooniprobe' do
pod 'measurement_kit',
:git => 'https://github.com/measurement-kit/measurement-kit.git',
:branch => 'stable'
:tag => 'v0.4.0-beta.3'
pod 'Toast'
pod 'sundown'
pod 'PBRevealViewController'
pod 'UIBarButtonItem-Badge-Coding'
pod 'Fabric'
pod 'Crashlytics'
pod 'MBProgressHUD'
end
31 changes: 22 additions & 9 deletions Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,28 +1,41 @@
PODS:
- measurement_kit (0.4.0-beta.1)
- sundown (0.1.0)
- Crashlytics (3.8.3):
- Fabric (~> 1.6.3)
- Fabric (1.6.11)
- MBProgressHUD (1.0.0)
- measurement_kit (0.4.0-beta.3)
- PBRevealViewController (1.1.3)
- Toast (3.1.0)
- UIBarButtonItem-Badge-Coding (0.0.1)

DEPENDENCIES:
- measurement_kit (from `https://github.com/measurement-kit/measurement-kit.git`, branch `stable`)
- sundown
- Crashlytics
- Fabric
- MBProgressHUD
- measurement_kit (from `https://github.com/measurement-kit/measurement-kit.git`, tag `v0.4.0-beta.3`)
- PBRevealViewController
- Toast
- UIBarButtonItem-Badge-Coding

EXTERNAL SOURCES:
measurement_kit:
:branch: stable
:git: https://github.com/measurement-kit/measurement-kit.git
:tag: v0.4.0-beta.3

CHECKOUT OPTIONS:
measurement_kit:
:commit: bb12ec38315c8f8265d022fe7259b2e2db9c2b0f
:git: https://github.com/measurement-kit/measurement-kit.git
:tag: v0.4.0-beta.3

SPEC CHECKSUMS:
measurement_kit: a75a6a1e91b4ca61f975470ee9dbd21d027daf9f
sundown: 240edd458462fd773a474023559622c3a8566b5e
Crashlytics: 2b6dbe138a42395577cfa73dfa1aa7248cadf39e
Fabric: 5911403591946b8228ab1c51d98f1d7137e863c6
MBProgressHUD: 4890f671c94e8a0f3cf959aa731e9de2f036d71a
measurement_kit: 7067386d6e5fac0816b083ab19342109634c1079
PBRevealViewController: 22aa8fdcbe3eca1bdcfdd1613695b66ac37f6dc9
Toast: 14a93686d6c8bfe2727afd342414e35660a8a1f3
UIBarButtonItem-Badge-Coding: 3f8e96f75f7d7c7516c1a1706b566892bf2db134

PODFILE CHECKSUM: 841bc4f01160d0672dfa91d06217daba5129ea51
PODFILE CHECKSUM: 1be74636e5f3aa3b5e82a57ed5079c9ee515674a

COCOAPODS: 1.1.1
411 changes: 199 additions & 212 deletions ooniprobe.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

This file was deleted.

4 changes: 3 additions & 1 deletion ooniprobe/AppDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
// information on the copying conditions.

#import <UIKit/UIKit.h>
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
@interface AppDelegate : UIResponder <UIApplicationDelegate, CrashlyticsDelegate>

@property (strong, nonatomic) UIWindow *window;

Expand Down
16 changes: 14 additions & 2 deletions ooniprobe/AppDelegate.mm
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ @implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"DefaultPreferences" ofType:@"plist"]]];
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"HelveticaNeue" size:20], NSFontAttributeName, nil]];
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"HelveticaNeue" size:16],NSFontAttributeName, nil] forState:UIControlStateNormal];
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: color_off_white, NSForegroundColorAttributeName, [UIFont fontWithName:@"FiraSansOT-Bold" size:18], NSFontAttributeName, nil]];
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"FiraSansOT-Bold" size:15],NSFontAttributeName, nil] forState:UIControlStateNormal];
CrashlyticsKit.delegate = self;
[Fabric with:@[[Crashlytics class]]];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[self registerNotifications];
return YES;
Expand Down Expand Up @@ -48,4 +50,14 @@ - (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
//TODO start your long running bg task here
}

- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report completionHandler:(void (^)(BOOL))completionHandler {
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
completionHandler([[[NSUserDefaults standardUserDefaults] objectForKey:@"send_crash"] boolValue]);
}];
}

@end
122 changes: 67 additions & 55 deletions ooniprobe/Base.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,26 @@
// MeasurementKit is free software. See AUTHORS and LICENSE for more
// information on the copying conditions.
"app_name" = "ooniprobe";
//"testing_history" = "Tests";
//"select_test" = "Select test";
"run_test" = "Run";

"run_tests" = "Run Tests";
"past_tests" = "Past Tests";
"settings" = "Settings";
"about" = "About";

"dns_injection" = "DNS Injection";
"tcp_connect" = "TCP Connect";
"http_invalid_request_line" = "HTTP Invalid request line";
"http_header_field_manipulation" = "HTTP Header field manipulation";
"web_connectivity" = "Web Connectivity";
"ndt_test" = "Ndt Test";
"ndt_test" = "NDT Speed Test";

"http_invalid_request_line_desc" = "Find proxy technologies in your network";
"web_connectivity_desc" = "Check whether and how websites are blocked";
"ndt_test_desc" = "Measure the speed and performance of your network";
"web_connectivity_desc" = "Check if websites are blocked";
"http_invalid_request_line_desc" = "Find 'middle boxes'";
"ndt_test_desc" = "Measurement network speed and performance";


"check_port" = "Check port";
"traceroute" = "Traceroute";
"http_invalid_request_line_longdesc" = "This test tries to detect the presence of network components (“middle box”) which could be responsible for censorship and/or surveillance.";
"web_connectivity_longdesc" = "This test examines whether access to websites is blocked through DNS tampering, TCP connection RST/IP blocking, or by a transparent HTTP proxy.";
"ndt_test_longdesc" = "This test measures the speed and performance of your network.";

"running_tests" = "Running tests";
"finished_tests" = "Finished tests";
Expand All @@ -34,49 +36,54 @@
"test_result" = "Test result";
"change" = "Change";

"next" = "Next";
"previous" = "Previous";

"wrong" = "Your answers to one or more of the quiz questions is wrong. Please read the Risks documentation and try again.";
"correct" = "You answered to the quiz correctly. Carry on.";

"configure" = "Configure";
"ooniprobe_configured" = "Successfully configured ooniprobe. You are all set to go!";

"introduction" = "Introduction";
"risks" = "Risks";
"quiz" = "Quiz";
"configuration" = "Configuration";

"greetings" = "Greetings!";
"intro_text_1" = "This setup wizard will help you get started with ooniprobe. It should take about 5 minutes.";
"intro_text_2" = "The Open Observatory of Network Interference (OONI) works to fight network censorship and surveillance.";
"intro_text_3" = "By running this software, you may be putting yourself at risk.";
"intro_text_4" = "The next two steps of this wizard will walk you through some of the potential dangers. Please bear with us, as this is important!";

"quiz_text" = "Please answer the following questions to ensure you have understood what ooniprobe does and that you are aware of risks associated with running the software.";

"header_1" = "In regards to how detectable ooniprobe is, which of the following statements is true?";
"answer_1_1" = "Anyone monitoring my internet activity (e.g. ISP, government or employer) might be able to see that I am running ooniprobe, even though OONI takes precautions to make this hard";
"answer_1_2" = "Anyone monitoring my internet activity (e.g. ISP, government or employer) will not be able to see that I am running ooniprobe";
"answer_1_3" = "ooniprobe is designed to protect my privacy and therefore my use of ooniprobe cannot be detected";

"header_2" = "In regards to the publication of measurements, which of the following statements is true?";
"answer_2_1" = "My measurements will not by default get published on OONI Explorer";
"answer_2_2" = "My measurements will by default get published on OONI Explorer and might include personally-identifiable information.";
"answer_2_3" = "My measurements will by default get published to OONI Explorer and will never include any personally-identifiable information";

"configuration_text" = "Certain aspects of how ooniprobe operates can be customized. Usually the default values are the best option, so only change these if you really have to.";

"include_ip" = "Include IP address in results";
"include_asn" = "Include your network information in the reports";
"include_cc" = "Include your country name in the reports";
"upload_results" = "Upload results to the default ooni collector";

"include_ip_ic" = "Should we include your IP address in results?";
"include_asn_ic" = "Should we include your network information in the reports (note: disabling this will make it much harder for us to draw conclusions from the measurements)?";
"include_cc_ic" = "Should we include your country name in the reports (note: disabling this will make it much harder for us to draw conclusions from the measurements)?";
"upload_results_ic" = "Should we upload your results to the default ooni collector?";
"welcome_ooniprobe" = "Welcome to ooniprobe!";
"get_started" = "Get Started!";

"what_is_ooniprobe" = "What is ooniprobe?";
"learn_more" = "Learn more";

"risks_text_1" = "Ooniprobe is free and open source software that enables you to examine internet censorship in your network!";
"risks_text_2" = "By running this app, you can examine whether and how websites are blocked, and whether censorship and/or surveillance systems are present in your network.";
"risks_text_3" = "You can also run this app to measure the speed and performance of your network.";
"risks_text_4" = "The data that you can collect through this app can serve as evidence of censorship events .";
"risks_text_5" = "Since ooniprobe is an investigatory tool and as such, may pose some risks.";

"potential_risks" = "Potential risks";
"laws_text_1" = "Anyone monitoring your internet activity (e.g. ISP, government, employer) can know that you are running ooniprobe (even though OONI tries to make this hard).";
"laws_text_2" = "When testing websites for censorship, you will connect to and download data from provocative or objectionable sites (e.g. pornography) that might be illegal in your country.";
"laws_text_3" = "OONI’s HTTP invalid request line test might trigger the suspicion of your ISP and could be viewed as a form of “hacking”.";
"laws_text_4" = "Unless you configure your settings otherwise, all data collected from your tests will by default be published by OONI and might include some personally- identifiable information (though OONI tries to prevent this from happening).";
"laws_text_5" = "The mere use of ooniprobe might be viewed as a form of espionage, regardless of the laws in your country.";
"laws_text_6" = "To our knowledge, no ooniprobe user has ever faced consequences from the use of our platform. However, many countries have a lengthy history of targeting and abusing digital rights activists, which could leave ooniprobe users subject to severe civil, criminal, or extra-judicial penalties.";
"laws_text_6" = "We encourage you to consult with a lawyer prior to installing and running ooniprobe.";
"i_understand_the_risks" = "I understand the risks.";

"pop_quiz" = "Pop Quiz!";
"question_1" = "Question 1: Anyone monitoring my internet activity (e.g. ISP, government or employer) might be able to see that I am running ooniprobe, even though OONI takes precautions to make this hard";
"question_2" = "Question 2: My measurements will by default get published on OONI Explorer and might include personally-identifiable information.";
"true" = "True";
"false" = "False";
"how_did_i_do" = "How did I do?";

"wrong" = "A little bit more reading is required for you to proceed.";
"correct" = "Good job! You have answered the quiz correctly.";

"set_up_sharing" = "Set Up Sharing";
"include_ip" = "Include your IP?";
"include_asn" = "Include your network info?";
"include_cc" = "Include your country name?";
"upload_results" = "Share results publicly?";
"settings_text" = "All measurements are sent by default to OONI's measurement collector and automately published through the OONI explorer and OONI's list of measurements.";
"im_all_set" = "I'm all set!";
"ooniprobe_configured" ="Successfully configured ooniprobe. You are all set to go!";

"about_ooni" = "About OONI";
"about_text_1" = "The Open Observatory of Network Interference (OONI) is a free software project under The Tor Project that aims to increase transparency of internet censorship around the world.";
"about_text_2" ="Since 2012, OONI has collected millions of network measurements from around the world, shedding light on multiple instances of internet censorship and traffic manipulation.";
"learn_more" = "Learn More";

"run" = "Run";
"view" = "View";

"no_result" = "No results";
"no_result_msg" = "The test has no results or it was aborted";
Expand All @@ -85,9 +92,14 @@
"local_notifications_time" = "Time";
"local_notifications_text" = "Time to run tests";

"collector_settings" = "Collector settings";
"notifications" = "Notifications";

"max_runtime" = "Max runtime (seconds)";
"test_limits" = "Test limits";
"advanced_settings" = "Advanced settings";
"finished_running" = "%@ finished running";
"view_log" = "View log";
"copy_to_clipboard" = "Copy to clipboard";
"copied_clipboard" = "Copied into clipboard";
"send_crash" = "Send crash reports";
"privacy" = "Privacy";
"view_data_policy" = "Click here to view our data policy";
Loading

0 comments on commit 82f9d8f

Please sign in to comment.