You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2013/10/28 23:13:16 UTC

[1/9] git commit: [CB-4848] Fix Xcode 5 semantic issues for Media Capture plugin

Updated Branches:
  refs/heads/dev 2ebeb2bb5 -> 6b1a781ee


[CB-4848] Fix Xcode 5 semantic issues for Media Capture plugin


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/43a09825
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/43a09825
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/43a09825

Branch: refs/heads/dev
Commit: 43a0982529d3a251c41c9ccce6a9dd86d61cabb4
Parents: 9a8cc8f
Author: Shazron Abdullah <sh...@apache.org>
Authored: Mon Sep 16 15:30:26 2013 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Sep 16 15:30:26 2013 -0700

----------------------------------------------------------------------
 src/ios/CDVCapture.m | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/43a09825/src/ios/CDVCapture.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVCapture.m b/src/ios/CDVCapture.m
index 50bf0e7..774c430 100644
--- a/src/ios/CDVCapture.m
+++ b/src/ios/CDVCapture.m
@@ -88,7 +88,8 @@
 
         self.inUse = YES;
 
-        if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
+        SEL pvcSel = NSSelectorFromString(@"presentViewController:::");
+        if ([self.viewController respondsToSelector:pvcSel]) {
             [self.viewController presentViewController:navController animated:YES completion:nil];
         } else {
             [self.viewController presentModalViewController:navController animated:YES];
@@ -139,7 +140,8 @@
         // CDVImagePicker specific property
         pickerController.callbackId = callbackId;
 
-        if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
+        SEL pvcSel = NSSelectorFromString(@"presentViewController:::");
+        if ([self.viewController respondsToSelector:pvcSel]) {
             [self.viewController presentViewController:pickerController animated:YES completion:nil];
         } else {
             [self.viewController presentModalViewController:pickerController animated:YES];
@@ -255,7 +257,8 @@
         // CDVImagePicker specific property
         pickerController.callbackId = callbackId;
 
-        if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
+        SEL pvcSel = NSSelectorFromString(@"presentViewController:::");
+        if ([self.viewController respondsToSelector:pvcSel]) {
             [self.viewController presentViewController:pickerController animated:YES completion:nil];
         } else {
             [self.viewController presentModalViewController:pickerController animated:YES];
@@ -615,7 +618,7 @@
     // timerLabel.autoresizingMask = reSizeMask;
     [self.timerLabel setBackgroundColor:[UIColor clearColor]];
     [self.timerLabel setTextColor:[UIColor whiteColor]];
-    [self.timerLabel setTextAlignment:UITextAlignmentCenter];
+    [self.timerLabel setTextAlignment:NSTextAlignmentCenter];
     [self.timerLabel setText:@"0:00"];
     [self.timerLabel setAccessibilityHint:NSLocalizedString(@"recorded time in minutes and seconds", nil)];
     self.timerLabel.accessibilityTraits |= UIAccessibilityTraitUpdatesFrequently;


[9/9] git commit: CB-5188:

Posted by st...@apache.org.
CB-5188:


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/6b1a781e
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/6b1a781e
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/6b1a781e

Branch: refs/heads/dev
Commit: 6b1a781ee8dbbea408f0316319d5f1733947d225
Parents: 5f50ac7
Author: Steven Gill <st...@gmail.com>
Authored: Mon Oct 28 12:27:16 2013 -0700
Committer: Steven Gill <st...@gmail.com>
Committed: Mon Oct 28 12:27:16 2013 -0700

----------------------------------------------------------------------
 plugin.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/6b1a781e/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index cd22f66..ad8290e 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -3,7 +3,7 @@
 <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
 xmlns:android="http://schemas.android.com/apk/res/android"
            id="org.apache.cordova.media-capture"
-      version="0.2.4">
+      version="0.2.5-dev">
     <name>Capture</name>
 
     <description>Cordova Media Capture Plugin</description>


[2/9] git commit: [CB-4847] iOS 7 microphone access requires user permission - if denied, CDVCapture, CDVSound does not handle it properly

Posted by st...@apache.org.
[CB-4847] iOS 7 microphone access requires user permission - if denied, CDVCapture, CDVSound does not handle it properly


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/a99ab1b4
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/a99ab1b4
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/a99ab1b4

Branch: refs/heads/dev
Commit: a99ab1b4f79df49b5bea34d52f68f4e6009f54ed
Parents: 43a0982
Author: Shazron Abdullah <sh...@apache.org>
Authored: Mon Sep 16 15:59:43 2013 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Sep 16 15:59:43 2013 -0700

----------------------------------------------------------------------
 src/ios/CDVCapture.m | 54 +++++++++++++++++++++++++++++++++--------------
 1 file changed, 38 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/a99ab1b4/src/ios/CDVCapture.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVCapture.m b/src/ios/CDVCapture.m
index 774c430..e14f248 100644
--- a/src/ios/CDVCapture.m
+++ b/src/ios/CDVCapture.m
@@ -721,25 +721,47 @@
         [self.recordButton setImage:stopRecordImage forState:UIControlStateNormal];
         self.recordButton.accessibilityTraits &= ~[self accessibilityTraits];
         [self.recordingView setHidden:NO];
-        NSError* error = nil;
-        [self.avSession setCategory:AVAudioSessionCategoryRecord error:&error];
-        [self.avSession setActive:YES error:&error];
-        if (error) {
-            // can't continue without active audio session
-            self.errorCode = CAPTURE_INTERNAL_ERR;
-            [self dismissAudioView:nil];
-        } else {
-            if (self.duration) {
-                self.isTimed = true;
-                [self.avRecorder recordForDuration:[duration doubleValue]];
+        __block NSError* error = nil;
+        
+        void (^startRecording)(void) = ^{
+            [self.avSession setCategory:AVAudioSessionCategoryRecord error:&error];
+            [self.avSession setActive:YES error:&error];
+            if (error) {
+                // can't continue without active audio session
+                self.errorCode = CAPTURE_INTERNAL_ERR;
+                [self dismissAudioView:nil];
             } else {
-                [self.avRecorder record];
+                if (self.duration) {
+                    self.isTimed = true;
+                    [self.avRecorder recordForDuration:[duration doubleValue]];
+                } else {
+                    [self.avRecorder record];
+                }
+                [self.timerLabel setText:@"0.00"];
+                self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
+                self.doneButton.enabled = NO;
             }
-            [self.timerLabel setText:@"0.00"];
-            self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
-            self.doneButton.enabled = NO;
+            UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);
+        };
+        
+        SEL rrpSel = NSSelectorFromString(@"requestRecordPermission:");
+        if ([self.avSession respondsToSelector:rrpSel])
+        {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
+            [self.avSession performSelector:rrpSel withObject:^(BOOL granted){
+                if (granted) {
+                    startRecording();
+                } else {
+                    NSLog(@"Error creating audio session, microphone permission denied.");
+                    self.errorCode = CAPTURE_INTERNAL_ERR;
+                    [self dismissAudioView:nil];
+                }
+            }];
+#pragma clang diagnostic pop
+        } else {
+            startRecording();
         }
-        UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);
     }
 }
 


[4/9] git commit: Revert "[CB-4848] Fix Xcode 5 semantic issues for Media Capture plugin"

Posted by st...@apache.org.
Revert "[CB-4848] Fix Xcode 5 semantic issues for Media Capture plugin"

This reverts commit 43a0982529d3a251c41c9ccce6a9dd86d61cabb4.


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/0774b947
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/0774b947
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/0774b947

Branch: refs/heads/dev
Commit: 0774b947105b25c0b2295cb5bd02bb1a40c7b5e1
Parents: 545da9e
Author: Shazron Abdullah <sh...@apache.org>
Authored: Mon Sep 16 17:24:18 2013 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Sep 16 17:24:18 2013 -0700

----------------------------------------------------------------------
 src/ios/CDVCapture.m | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/0774b947/src/ios/CDVCapture.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVCapture.m b/src/ios/CDVCapture.m
index 774c430..50bf0e7 100644
--- a/src/ios/CDVCapture.m
+++ b/src/ios/CDVCapture.m
@@ -88,8 +88,7 @@
 
         self.inUse = YES;
 
-        SEL pvcSel = NSSelectorFromString(@"presentViewController:::");
-        if ([self.viewController respondsToSelector:pvcSel]) {
+        if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
             [self.viewController presentViewController:navController animated:YES completion:nil];
         } else {
             [self.viewController presentModalViewController:navController animated:YES];
@@ -140,8 +139,7 @@
         // CDVImagePicker specific property
         pickerController.callbackId = callbackId;
 
-        SEL pvcSel = NSSelectorFromString(@"presentViewController:::");
-        if ([self.viewController respondsToSelector:pvcSel]) {
+        if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
             [self.viewController presentViewController:pickerController animated:YES completion:nil];
         } else {
             [self.viewController presentModalViewController:pickerController animated:YES];
@@ -257,8 +255,7 @@
         // CDVImagePicker specific property
         pickerController.callbackId = callbackId;
 
-        SEL pvcSel = NSSelectorFromString(@"presentViewController:::");
-        if ([self.viewController respondsToSelector:pvcSel]) {
+        if ([self.viewController respondsToSelector:@selector(presentViewController:::)]) {
             [self.viewController presentViewController:pickerController animated:YES completion:nil];
         } else {
             [self.viewController presentModalViewController:pickerController animated:YES];
@@ -618,7 +615,7 @@
     // timerLabel.autoresizingMask = reSizeMask;
     [self.timerLabel setBackgroundColor:[UIColor clearColor]];
     [self.timerLabel setTextColor:[UIColor whiteColor]];
-    [self.timerLabel setTextAlignment:NSTextAlignmentCenter];
+    [self.timerLabel setTextAlignment:UITextAlignmentCenter];
     [self.timerLabel setText:@"0:00"];
     [self.timerLabel setAccessibilityHint:NSLocalizedString(@"recorded time in minutes and seconds", nil)];
     self.timerLabel.accessibilityTraits |= UIAccessibilityTraitUpdatesFrequently;


[7/9] git commit: [CB-5188] Updated version and RELEASENOTES.md for release 0.2.4

Posted by st...@apache.org.
[CB-5188] Updated version and RELEASENOTES.md for release 0.2.4


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/09db3605
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/09db3605
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/09db3605

Branch: refs/heads/dev
Commit: 09db3605b0e97b25a2ba885bf3bf8d5db8b53b5b
Parents: 2ebeb2b
Author: Steven Gill <st...@gmail.com>
Authored: Mon Oct 28 12:05:56 2013 -0700
Committer: Steven Gill <st...@gmail.com>
Committed: Mon Oct 28 12:05:56 2013 -0700

----------------------------------------------------------------------
 RELEASENOTES.md | 5 +++++
 plugin.xml      | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/09db3605/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 36140fd..b72177c 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -38,3 +38,8 @@
 ### 0.2.3 (Oct 9, 2013)
 * CB-4720: fixed incorrect feature tag in plugin.xml for wp
 * [CB-4915] Incremented plugin version on dev branch.
+
+ ### 0.2.4 (Oct 28, 2013)
+* CB-5199 - ios - Media Capture - UI issues under iOS 7
+* CB-5128: added repo + issue tag to plugin.xml for media capture plugin
+* [CB-5010] Incremented plugin version on dev branch.

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/09db3605/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index 766a713..cd22f66 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -3,7 +3,7 @@
 <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
 xmlns:android="http://schemas.android.com/apk/res/android"
            id="org.apache.cordova.media-capture"
-      version="0.2.4-dev">
+      version="0.2.4">
     <name>Capture</name>
 
     <description>Cordova Media Capture Plugin</description>


[8/9] git commit: Merge branch 'dev'

Posted by st...@apache.org.
Merge branch 'dev'


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/5f50ac70
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/5f50ac70
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/5f50ac70

Branch: refs/heads/dev
Commit: 5f50ac704f2ce95b58b948eafc78925b5fd356c1
Parents: 5cae5ee 09db360
Author: Steven Gill <st...@gmail.com>
Authored: Mon Oct 28 12:13:54 2013 -0700
Committer: Steven Gill <st...@gmail.com>
Committed: Mon Oct 28 12:13:54 2013 -0700

----------------------------------------------------------------------
 RELEASENOTES.md      |  5 +++++
 plugin.xml           |  4 +++-
 src/ios/CDVCapture.m | 21 +++++++++++++++++++++
 3 files changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[6/9] git commit: Merge branch 'dev'

Posted by st...@apache.org.
Merge branch 'dev'


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/5cae5eee
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/5cae5eee
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/5cae5eee

Branch: refs/heads/dev
Commit: 5cae5eee051ad9822a39fbfcb99756ed92ec0b1f
Parents: badaf74 1eae635
Author: Steven Gill <st...@gmail.com>
Authored: Wed Oct 9 15:45:04 2013 -0700
Committer: Steven Gill <st...@gmail.com>
Committed: Wed Oct 9 15:45:04 2013 -0700

----------------------------------------------------------------------
 RELEASENOTES.md |  4 ++++
 plugin.xml      | 10 +++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------



[3/9] git commit: Revert "[CB-4847] iOS 7 microphone access requires user permission - if denied, CDVCapture, CDVSound does not handle it properly"

Posted by st...@apache.org.
Revert "[CB-4847] iOS 7 microphone access requires user permission - if denied, CDVCapture, CDVSound does not handle it properly"

This reverts commit a99ab1b4f79df49b5bea34d52f68f4e6009f54ed.


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/545da9e8
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/545da9e8
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/545da9e8

Branch: refs/heads/dev
Commit: 545da9e81ab013d6fecba8f382f8106f9b9a1ea7
Parents: a99ab1b
Author: Shazron Abdullah <sh...@apache.org>
Authored: Mon Sep 16 17:24:11 2013 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Mon Sep 16 17:24:11 2013 -0700

----------------------------------------------------------------------
 src/ios/CDVCapture.m | 54 ++++++++++++++---------------------------------
 1 file changed, 16 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/blob/545da9e8/src/ios/CDVCapture.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVCapture.m b/src/ios/CDVCapture.m
index e14f248..774c430 100644
--- a/src/ios/CDVCapture.m
+++ b/src/ios/CDVCapture.m
@@ -721,47 +721,25 @@
         [self.recordButton setImage:stopRecordImage forState:UIControlStateNormal];
         self.recordButton.accessibilityTraits &= ~[self accessibilityTraits];
         [self.recordingView setHidden:NO];
-        __block NSError* error = nil;
-        
-        void (^startRecording)(void) = ^{
-            [self.avSession setCategory:AVAudioSessionCategoryRecord error:&error];
-            [self.avSession setActive:YES error:&error];
-            if (error) {
-                // can't continue without active audio session
-                self.errorCode = CAPTURE_INTERNAL_ERR;
-                [self dismissAudioView:nil];
+        NSError* error = nil;
+        [self.avSession setCategory:AVAudioSessionCategoryRecord error:&error];
+        [self.avSession setActive:YES error:&error];
+        if (error) {
+            // can't continue without active audio session
+            self.errorCode = CAPTURE_INTERNAL_ERR;
+            [self dismissAudioView:nil];
+        } else {
+            if (self.duration) {
+                self.isTimed = true;
+                [self.avRecorder recordForDuration:[duration doubleValue]];
             } else {
-                if (self.duration) {
-                    self.isTimed = true;
-                    [self.avRecorder recordForDuration:[duration doubleValue]];
-                } else {
-                    [self.avRecorder record];
-                }
-                [self.timerLabel setText:@"0.00"];
-                self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
-                self.doneButton.enabled = NO;
+                [self.avRecorder record];
             }
-            UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);
-        };
-        
-        SEL rrpSel = NSSelectorFromString(@"requestRecordPermission:");
-        if ([self.avSession respondsToSelector:rrpSel])
-        {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
-            [self.avSession performSelector:rrpSel withObject:^(BOOL granted){
-                if (granted) {
-                    startRecording();
-                } else {
-                    NSLog(@"Error creating audio session, microphone permission denied.");
-                    self.errorCode = CAPTURE_INTERNAL_ERR;
-                    [self dismissAudioView:nil];
-                }
-            }];
-#pragma clang diagnostic pop
-        } else {
-            startRecording();
+            [self.timerLabel setText:@"0.00"];
+            self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
+            self.doneButton.enabled = NO;
         }
+        UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil);
     }
 }
 


[5/9] git commit: Merge branch 'dev'

Posted by st...@apache.org.
Merge branch 'dev'


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/commit/badaf74b
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/tree/badaf74b
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture/diff/badaf74b

Branch: refs/heads/dev
Commit: badaf74ba8cc1de97e8c834dd6c1fcf062346477
Parents: 0774b94 feaf9f3
Author: Steven Gill <st...@gmail.com>
Authored: Wed Sep 25 18:19:07 2013 -0700
Committer: Steven Gill <st...@gmail.com>
Committed: Wed Sep 25 18:19:07 2013 -0700

----------------------------------------------------------------------
 CHANGELOG.md                 |  23 ------
 RELEASENOTES.md              |  36 +++++++++
 plugin.xml                   |   7 +-
 src/android/Capture.java     |  40 +++++++---
 src/android/FileHelper.java  |  60 +++++++++++++++
 src/ios/CDVCapture.m         |  71 +++++++++++++-----
 src/windows8/CaptureProxy.js |  14 ++--
 src/windows8/MediaFile.js    |   4 +-
 test/capture/index.html      | 150 ++++++++++++++++++++++++++++++++++++++
 test/index.html              |   1 +
 www/MediaFile.js             |   2 +-
 11 files changed, 342 insertions(+), 66 deletions(-)
----------------------------------------------------------------------