powermanagement plugin for iOS

dev
Viras- 11 years ago
parent 6b1b27eca5
commit b864c5d72a

@ -8,6 +8,7 @@ It should be used for applications which keep running for a long time without an
For details on power functionality see:
* WindowsPhone: [UserIdleDetectionMode](http://msdn.microsoft.com/en-US/library/windowsphone/develop/microsoft.phone.shell.phoneapplicationservice.useridledetectionmode%28v=vs.105%29.aspx)
* iOS: [idleTimerDisabled](http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/instp/UIApplication/idleTimerDisabled)
Installation
---------

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://cordova.apache.org/ns/plugins/1.0"
id="at.gofg.sportscomputer.powermanagement"
version="1.0.0">
version="1.1.0">
<name>PowerManagement</name>
<description>PowerManagement plugin for Cordova</description>
<license>GPL</license>
@ -32,4 +32,16 @@
<source-file src="src/wp/PowerManagement.cs" />
</platform>
<!-- ios -->
<platform name="ios">
<config-file target="config.xml" parent="/widget">
<feature name="PowerManagement">
<param name="ios-package" value="PowerManagement" />
</feature>
</config-file>
<header-file src="src/ios/PowerManagement.h" />
<source-file src="src/ios/PowerManagement.m" />
</platform>
</plugin>

@ -0,0 +1,45 @@
/*
* Copyright (C) 2011-2012 Wolfgang Koller
*
* This file is part of GOFG Sports Computer - http://www.gofg.at/.
*
* GOFG Sports Computer is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* GOFG Sports Computer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GOFG Sports Computer. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* Cordova (iOS) plugin for accessing the power-management functions of the device
*/
#ifdef CORDOVA_FRAMEWORK
#import <CORDOVA/CDVPlugin.h>
#else
#import "CORDOVA/CDVPlugin.h"
#endif
/**
* Interface which does the actual handling
*/
@interface PowerManagement :CDVPlugin {
}
/**
* Sets the idleTimerDisable property to true so that the idle timeout is disabled
*/
- (void) acquire:(CDVInvokedUrlCommand*)command;
/**
* Sets the idleTimerDisable property to false so that the idle timeout is enabled
*/
- (void) release:(CDVInvokedUrlCommand*)command;
@end

@ -0,0 +1,75 @@
/*
* Copyright (C) 2011-2012 Wolfgang Koller
*
* This file is part of GOFG Sports Computer - http://www.gofg.at/.
*
* GOFG Sports Computer is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* GOFG Sports Computer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GOFG Sports Computer. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* Cordova (iOS) plugin for accessing the power-management functions of the device
*/
#import "PowerManagement.h"
/**
* Actual implementation of the interface
*/
@implementation PowerManagement
- (void) acquire:(CDVInvokedUrlCommand*)command
{
CDVPluginResult* result = nil;
NSString* jsString = nil;
NSString* callbackId = command.callbackId;
// Acquire a reference to the local UIApplication singleton
UIApplication* app = [UIApplication sharedApplication];
if( ![app isIdleTimerDisabled] ) {
[app setIdleTimerDisabled:true];
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
jsString = [result toSuccessCallbackString:callbackId];
}
else {
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ILLEGAL_ACCESS_EXCEPTION messageAsString:@"IdleTimer already disabled"];
jsString = [result toErrorCallbackString:callbackId];
}
[self writeJavascript:jsString];
}
- (void) release:(CDVInvokedUrlCommand*)command
{
CDVPluginResult* result = nil;
NSString* jsString = nil;
NSString* callbackId = command.callbackId;
// Acquire a reference to the local UIApplication singleton
UIApplication* app = [UIApplication sharedApplication];
if( [app isIdleTimerDisabled] ) {
[app setIdleTimerDisabled:false];
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
jsString = [result toSuccessCallbackString:callbackId];
}
else {
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ILLEGAL_ACCESS_EXCEPTION messageAsString:@"IdleTimer not disabled"];
jsString = [result toErrorCallbackString:callbackId];
}
[self writeJavascript:jsString];
}
@end
Loading…
Cancel
Save