From dfcd8cc80927ef26487e2deab74d18062b8950e1 Mon Sep 17 00:00:00 2001 From: karan Date: Mon, 9 Sep 2019 16:15:39 +0530 Subject: [PATCH 01/13] add reset brightness --- .../java/flutter/plugins/screen/screen/ScreenPlugin.java | 8 +++++++- lib/screen.dart | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index e98a2a7..bcef5f6 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -37,12 +37,18 @@ public void onMethodCall(MethodCall call, Result result) { _registrar.activity().getWindow().setAttributes(layoutParams); result.success(null); break; + case "resetBrightness": + WindowManager.LayoutParams params = _registrar.activity().getWindow().getAttributes(); + params.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE; + _registrar.activity().getWindow().setAttributes(params); + result.success(null); + break; case "isKeptOn": int flags = _registrar.activity().getWindow().getAttributes().flags; result.success((flags & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) != 0) ; break; case "keepOn": - Boolean on = call.argument("on"); + Boolean on = call.argument("on"); if (on) { System.out.println("Keeping screen on "); _registrar.activity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); diff --git a/lib/screen.dart b/lib/screen.dart index 4dbc0d1..d5e993a 100644 --- a/lib/screen.dart +++ b/lib/screen.dart @@ -9,4 +9,5 @@ class Screen { static Future setBrightness(double brightness) =>_channel.invokeMethod('setBrightness',{"brightness" : brightness}); static Future get isKeptOn async => (await _channel.invokeMethod('isKeptOn')) as bool; static Future keepOn(bool on) => _channel.invokeMethod('keepOn', {"on" : on}); + static Future resetBrightness() => _channel.invokeMethod('resetBrightness'); } From 4e798b4838d2e7b079fd37dc3e343a6b2c7c93d0 Mon Sep 17 00:00:00 2001 From: karan Date: Wed, 25 Sep 2019 18:54:27 +0530 Subject: [PATCH 02/13] reet brightness inios --- .../java/flutter/plugins/screen/screen/ScreenPlugin.java | 2 +- ios/Classes/ScreenPlugin.m | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index bcef5f6..0c7ba43 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -48,7 +48,7 @@ public void onMethodCall(MethodCall call, Result result) { result.success((flags & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) != 0) ; break; case "keepOn": - Boolean on = call.argument("on"); + Boolean on = call.argument("on"); if (on) { System.out.println("Keeping screen on "); _registrar.activity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); diff --git a/ios/Classes/ScreenPlugin.m b/ios/Classes/ScreenPlugin.m index 0902cc1..e837781 100644 --- a/ios/Classes/ScreenPlugin.m +++ b/ios/Classes/ScreenPlugin.m @@ -17,7 +17,10 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { NSNumber *brightness = call.arguments[@"brightness"]; [[UIScreen mainScreen] setBrightness:brightness.floatValue]; result(nil); - } + } else if ([@"resetBrightness" isEqualToString:call.method]) { + [[UIScreen mainScreen] setBrightness:nil]; + result(nil); + } else if ([@"isKeptOn" isEqualToString:call.method]) { bool isIdleTimerDisabled = [[UIApplication sharedApplication] isIdleTimerDisabled]; result([NSNumber numberWithBool:isIdleTimerDisabled]); From 312a2e326ca7701e062dd9b2ea9219bd6c4c66a8 Mon Sep 17 00:00:00 2001 From: karan Date: Wed, 25 Sep 2019 19:10:05 +0530 Subject: [PATCH 03/13] reset code --- ios/Classes/ScreenPlugin.m | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ios/Classes/ScreenPlugin.m b/ios/Classes/ScreenPlugin.m index e837781..0902cc1 100644 --- a/ios/Classes/ScreenPlugin.m +++ b/ios/Classes/ScreenPlugin.m @@ -17,10 +17,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { NSNumber *brightness = call.arguments[@"brightness"]; [[UIScreen mainScreen] setBrightness:brightness.floatValue]; result(nil); - } else if ([@"resetBrightness" isEqualToString:call.method]) { - [[UIScreen mainScreen] setBrightness:nil]; - result(nil); - } + } else if ([@"isKeptOn" isEqualToString:call.method]) { bool isIdleTimerDisabled = [[UIApplication sharedApplication] isIdleTimerDisabled]; result([NSNumber numberWithBool:isIdleTimerDisabled]); From e3b2dd51ba2dded2d8d2fe4d64e6241a120e5cb5 Mon Sep 17 00:00:00 2001 From: karan Date: Tue, 1 Oct 2019 12:42:38 +0530 Subject: [PATCH 04/13] add some message tutorial --- README.md | 13 ++++++++----- .../flutter/plugins/screen/screen/ScreenPlugin.java | 2 +- example/lib/main.dart | 10 +++++----- ios/Classes/ScreenPlugin.m | 2 +- lib/{screen.dart => flutter_screen.dart} | 4 ++-- pubspec.yaml | 8 ++++---- 6 files changed, 21 insertions(+), 18 deletions(-) rename lib/{screen.dart => flutter_screen.dart} (91%) diff --git a/README.md b/README.md index 295e5bb..20d65a0 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ A Flutter plugin to manage the device's screen on Android and iOS. ## Usage -To use this plugin, add `screen` as a [dependency in your pubspec.yaml file](https://flutter.io/platform-plugins/). +To use this plugin, add `flutter_screen` as a [dependency in your pubspec.yaml file](https://flutter.io/platform-plugins/). Make sure you add the following permissions to your Android Manifest ``` @@ -13,17 +13,20 @@ Make sure you add the following permissions to your Android Manifest ## Example ``` dart // Import package -import 'package:screen/screen.dart'; +import 'package:flutter_screen/flutter_screen.dart'; // Get the current brightness: double brightness = await Screen.brightness; // Set the brightness: -Screen.setBrightness(0.5); +FlutterScreen.setBrightness(0.5); // Check if the screen is kept on: -bool isKeptOn = await Screen.isKeptOn; +bool isKeptOn = await FlutterScreen.isKeptOn; // Prevent screen from going into sleep mode: -Screen.keepOn(true); +FlutterScreen.keepOn(true); + +//free brightness (it works only on Android): +FlutterScreen.resetBrightness(); ``` diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index 0c7ba43..a202d43 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -20,7 +20,7 @@ private ScreenPlugin(Registrar registrar){ private Registrar _registrar; public static void registerWith(Registrar registrar) { - final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/clovisnicolas/flutter_screen"); + final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/singlakaran/flutter_screen"); channel.setMethodCallHandler(new ScreenPlugin(registrar)); } diff --git a/example/lib/main.dart b/example/lib/main.dart index bf59225..1cf830b 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:screen/screen.dart'; +import 'package:screen/flutter_screen.dart'; void main() => runApp(new MyApp()); @@ -19,8 +19,8 @@ class _MyAppState extends State { } initPlatformState() async { - bool keptOn = await Screen.isKeptOn; - double brightness = await Screen.brightness; + bool keptOn = await FlutterScreen.isKeptOn; + double brightness = await FlutterScreen.brightness; setState((){ _isKeptOn = keptOn; _brightness = brightness; @@ -40,7 +40,7 @@ class _MyAppState extends State { children: [ new Text("Screen is kept on ? "), new Checkbox(value: _isKeptOn, onChanged: (bool b){ - Screen.keepOn(b); + FlutterScreen.keepOn(b); setState((){_isKeptOn = b; }); }) ] @@ -48,7 +48,7 @@ class _MyAppState extends State { new Text("Brightness :"), new Slider(value : _brightness, onChanged : (double b){ setState((){_brightness = b;}); - Screen.setBrightness(b); + FlutterScreen.setBrightness(b); }) ] ) diff --git a/ios/Classes/ScreenPlugin.m b/ios/Classes/ScreenPlugin.m index 0902cc1..38eb84f 100644 --- a/ios/Classes/ScreenPlugin.m +++ b/ios/Classes/ScreenPlugin.m @@ -3,7 +3,7 @@ @implementation ScreenPlugin + (void)registerWithRegistrar:(NSObject*)registrar { FlutterMethodChannel* channel = [FlutterMethodChannel - methodChannelWithName:@"github.com/clovisnicolas/flutter_screen" + methodChannelWithName:@"github.com/singlakaran/flutter_screen" binaryMessenger:[registrar messenger]]; ScreenPlugin* instance = [[ScreenPlugin alloc] init]; [registrar addMethodCallDelegate:instance channel:channel]; diff --git a/lib/screen.dart b/lib/flutter_screen.dart similarity index 91% rename from lib/screen.dart rename to lib/flutter_screen.dart index d5e993a..cd3d739 100644 --- a/lib/screen.dart +++ b/lib/flutter_screen.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'package:flutter/services.dart'; -class Screen { - static const MethodChannel _channel = const MethodChannel('github.com/clovisnicolas/flutter_screen'); +class FlutterScreen { + static const MethodChannel _channel = const MethodChannel('github.com/singlakaran/flutter_screen'); static Future get brightness async => (await _channel.invokeMethod('brightness')) as double; static Future setBrightness(double brightness) =>_channel.invokeMethod('setBrightness',{"brightness" : brightness}); diff --git a/pubspec.yaml b/pubspec.yaml index c3531d0..31c452b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,8 +1,8 @@ -name: screen +name: flutter_screen description: A Flutter plugin to manage the device's screen on Android and iOS. -version: 0.0.5 -author: Clovis Nicolas -homepage: https://github.com/clovisnicolas/flutter_screen +version: 0.0.2 +author: karan singla +homepage: https://github.com/singlakaran/flutter_screen environment: sdk: '>=2.0.0 <3.0.0' From ab14a6a5ee5918c049a3fbaec961018073265a88 Mon Sep 17 00:00:00 2001 From: karan Date: Tue, 1 Oct 2019 14:11:33 +0530 Subject: [PATCH 05/13] Revert "add some message tutorial" This reverts commit e3b2dd51 --- README.md | 13 +++++-------- .../flutter/plugins/screen/screen/ScreenPlugin.java | 2 +- example/lib/main.dart | 10 +++++----- ios/Classes/ScreenPlugin.m | 2 +- lib/{flutter_screen.dart => screen.dart} | 4 ++-- pubspec.yaml | 8 ++++---- 6 files changed, 18 insertions(+), 21 deletions(-) rename lib/{flutter_screen.dart => screen.dart} (91%) diff --git a/README.md b/README.md index 20d65a0..295e5bb 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ A Flutter plugin to manage the device's screen on Android and iOS. ## Usage -To use this plugin, add `flutter_screen` as a [dependency in your pubspec.yaml file](https://flutter.io/platform-plugins/). +To use this plugin, add `screen` as a [dependency in your pubspec.yaml file](https://flutter.io/platform-plugins/). Make sure you add the following permissions to your Android Manifest ``` @@ -13,20 +13,17 @@ Make sure you add the following permissions to your Android Manifest ## Example ``` dart // Import package -import 'package:flutter_screen/flutter_screen.dart'; +import 'package:screen/screen.dart'; // Get the current brightness: double brightness = await Screen.brightness; // Set the brightness: -FlutterScreen.setBrightness(0.5); +Screen.setBrightness(0.5); // Check if the screen is kept on: -bool isKeptOn = await FlutterScreen.isKeptOn; +bool isKeptOn = await Screen.isKeptOn; // Prevent screen from going into sleep mode: -FlutterScreen.keepOn(true); - -//free brightness (it works only on Android): -FlutterScreen.resetBrightness(); +Screen.keepOn(true); ``` diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index a202d43..0c7ba43 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -20,7 +20,7 @@ private ScreenPlugin(Registrar registrar){ private Registrar _registrar; public static void registerWith(Registrar registrar) { - final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/singlakaran/flutter_screen"); + final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/clovisnicolas/flutter_screen"); channel.setMethodCallHandler(new ScreenPlugin(registrar)); } diff --git a/example/lib/main.dart b/example/lib/main.dart index 1cf830b..bf59225 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:screen/flutter_screen.dart'; +import 'package:screen/screen.dart'; void main() => runApp(new MyApp()); @@ -19,8 +19,8 @@ class _MyAppState extends State { } initPlatformState() async { - bool keptOn = await FlutterScreen.isKeptOn; - double brightness = await FlutterScreen.brightness; + bool keptOn = await Screen.isKeptOn; + double brightness = await Screen.brightness; setState((){ _isKeptOn = keptOn; _brightness = brightness; @@ -40,7 +40,7 @@ class _MyAppState extends State { children: [ new Text("Screen is kept on ? "), new Checkbox(value: _isKeptOn, onChanged: (bool b){ - FlutterScreen.keepOn(b); + Screen.keepOn(b); setState((){_isKeptOn = b; }); }) ] @@ -48,7 +48,7 @@ class _MyAppState extends State { new Text("Brightness :"), new Slider(value : _brightness, onChanged : (double b){ setState((){_brightness = b;}); - FlutterScreen.setBrightness(b); + Screen.setBrightness(b); }) ] ) diff --git a/ios/Classes/ScreenPlugin.m b/ios/Classes/ScreenPlugin.m index 38eb84f..0902cc1 100644 --- a/ios/Classes/ScreenPlugin.m +++ b/ios/Classes/ScreenPlugin.m @@ -3,7 +3,7 @@ @implementation ScreenPlugin + (void)registerWithRegistrar:(NSObject*)registrar { FlutterMethodChannel* channel = [FlutterMethodChannel - methodChannelWithName:@"github.com/singlakaran/flutter_screen" + methodChannelWithName:@"github.com/clovisnicolas/flutter_screen" binaryMessenger:[registrar messenger]]; ScreenPlugin* instance = [[ScreenPlugin alloc] init]; [registrar addMethodCallDelegate:instance channel:channel]; diff --git a/lib/flutter_screen.dart b/lib/screen.dart similarity index 91% rename from lib/flutter_screen.dart rename to lib/screen.dart index cd3d739..d5e993a 100644 --- a/lib/flutter_screen.dart +++ b/lib/screen.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'package:flutter/services.dart'; -class FlutterScreen { - static const MethodChannel _channel = const MethodChannel('github.com/singlakaran/flutter_screen'); +class Screen { + static const MethodChannel _channel = const MethodChannel('github.com/clovisnicolas/flutter_screen'); static Future get brightness async => (await _channel.invokeMethod('brightness')) as double; static Future setBrightness(double brightness) =>_channel.invokeMethod('setBrightness',{"brightness" : brightness}); diff --git a/pubspec.yaml b/pubspec.yaml index 31c452b..c3531d0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,8 +1,8 @@ -name: flutter_screen +name: screen description: A Flutter plugin to manage the device's screen on Android and iOS. -version: 0.0.2 -author: karan singla -homepage: https://github.com/singlakaran/flutter_screen +version: 0.0.5 +author: Clovis Nicolas +homepage: https://github.com/clovisnicolas/flutter_screen environment: sdk: '>=2.0.0 <3.0.0' From 5ecf52675db9c5e73d7e024e5df3bbd45b1f6bdd Mon Sep 17 00:00:00 2001 From: karan Date: Wed, 6 Nov 2019 11:48:53 +0530 Subject: [PATCH 06/13] add description --- CHANGELOG.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37b684b..40623f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,12 @@ -## [0.0.5] - August 21, 2018 -* Update Android SDK reference +## [0.0.3] - November 6th, 2019. -## [0.0.4] - August 21, 2018 -* Adjust pubspec.yml to match Dart 2.0 SDK version - -## [0.0.3] - May 4th, 2018 -* Port to Dart 2.0 +* Update description -## [0.0.2] - January 23rd, 2018. +## [0.0.2] - October 1st, 2019. * Update description -## [0.0.1] - January 23rd, 2018. +## [0.0.1] - October 1st, 2019. -* Brightness can be set and retrieved -* Device can be kept "on" +* Brightness can be reset after use From f53124a1f62ade3b0a817142ef562712892bfa2b Mon Sep 17 00:00:00 2001 From: knoyo <59814509@qq.com> Date: Tue, 12 May 2020 15:46:22 +0800 Subject: [PATCH 07/13] feat: Support the v2 Android embedding. --- .../plugins/screen/screen/ScreenPlugin.java | 56 +++++++++++++++---- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index e98a2a7..dc639fc 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -1,8 +1,14 @@ package flutter.plugins.screen.screen; +import android.app.Activity; import android.provider.Settings; import android.view.WindowManager; +import androidx.annotation.NonNull; + +import io.flutter.embedding.engine.plugins.FlutterPlugin; +import io.flutter.embedding.engine.plugins.activity.ActivityAware; +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; @@ -12,18 +18,47 @@ /** * ScreenPlugin */ -public class ScreenPlugin implements MethodCallHandler { +public class ScreenPlugin implements MethodCallHandler, FlutterPlugin, ActivityAware { private ScreenPlugin(Registrar registrar){ - this._registrar = registrar; + this._activity = registrar.activity(); } - private Registrar _registrar; + private Activity _activity; public static void registerWith(Registrar registrar) { final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/clovisnicolas/flutter_screen"); channel.setMethodCallHandler(new ScreenPlugin(registrar)); } + public ScreenPlugin() {} + + @Override + public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { + final MethodChannel channel = new MethodChannel(binding.getBinaryMessenger(), "github.com/clovisnicolas/flutter_screen"); + channel.setMethodCallHandler(this); + } + + @Override + public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {} + + @Override + public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { + this._activity = binding.getActivity(); + } + + @Override + public void onDetachedFromActivityForConfigChanges() { } + + @Override + public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) { + this._activity = binding.getActivity(); + } + + @Override + public void onDetachedFromActivity() { + this._activity = null; + } + @Override public void onMethodCall(MethodCall call, Result result) { switch(call.method){ @@ -32,24 +67,24 @@ public void onMethodCall(MethodCall call, Result result) { break; case "setBrightness": double brightness = call.argument("brightness"); - WindowManager.LayoutParams layoutParams = _registrar.activity().getWindow().getAttributes(); + WindowManager.LayoutParams layoutParams = _activity.getWindow().getAttributes(); layoutParams.screenBrightness = (float)brightness; - _registrar.activity().getWindow().setAttributes(layoutParams); + _activity.getWindow().setAttributes(layoutParams); result.success(null); break; case "isKeptOn": - int flags = _registrar.activity().getWindow().getAttributes().flags; + int flags = _activity.getWindow().getAttributes().flags; result.success((flags & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) != 0) ; break; case "keepOn": Boolean on = call.argument("on"); if (on) { System.out.println("Keeping screen on "); - _registrar.activity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + _activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } else{ System.out.println("Not keeping screen on"); - _registrar.activity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + _activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } result.success(null); break; @@ -61,10 +96,10 @@ public void onMethodCall(MethodCall call, Result result) { } private float getBrightness(){ - float result = _registrar.activity().getWindow().getAttributes().screenBrightness; + float result = _activity.getWindow().getAttributes().screenBrightness; if (result < 0) { // the application is using the system brightness try { - result = Settings.System.getInt(_registrar.context().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS) / (float)255; + result = Settings.System.getInt(_activity.getApplicationContext().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS) / (float)255; } catch (Settings.SettingNotFoundException e) { result = 1.0f; e.printStackTrace(); @@ -72,5 +107,4 @@ private float getBrightness(){ } return result; } - } From cfb5740a81e5834254112b263f2ec8ade157b0c8 Mon Sep 17 00:00:00 2001 From: LaelLuo Date: Tue, 9 Jun 2020 10:31:14 +0800 Subject: [PATCH 08/13] add miui support --- .gitignore | 39 ++++++ .../plugins/screen/screen/ScreenPlugin.java | 115 ++++++++++-------- 2 files changed, 103 insertions(+), 51 deletions(-) diff --git a/.gitignore b/.gitignore index 14c7d4c..8eac3b0 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,42 @@ build/ ios/.generated/ packages pubspec.lock +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Exceptions to above rules. +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index e98a2a7..f798f29 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -1,5 +1,6 @@ package flutter.plugins.screen.screen; +import android.content.res.Resources; import android.provider.Settings; import android.view.WindowManager; @@ -14,63 +15,75 @@ */ public class ScreenPlugin implements MethodCallHandler { - private ScreenPlugin(Registrar registrar){ - this._registrar = registrar; - } - private Registrar _registrar; + private ScreenPlugin(Registrar registrar) { + this._registrar = registrar; + } - public static void registerWith(Registrar registrar) { - final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/clovisnicolas/flutter_screen"); - channel.setMethodCallHandler(new ScreenPlugin(registrar)); - } + private Registrar _registrar; - @Override - public void onMethodCall(MethodCall call, Result result) { - switch(call.method){ - case "brightness": - result.success(getBrightness()); - break; - case "setBrightness": - double brightness = call.argument("brightness"); - WindowManager.LayoutParams layoutParams = _registrar.activity().getWindow().getAttributes(); - layoutParams.screenBrightness = (float)brightness; - _registrar.activity().getWindow().setAttributes(layoutParams); - result.success(null); - break; - case "isKeptOn": - int flags = _registrar.activity().getWindow().getAttributes().flags; - result.success((flags & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) != 0) ; - break; - case "keepOn": - Boolean on = call.argument("on"); - if (on) { - System.out.println("Keeping screen on "); - _registrar.activity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - } - else{ - System.out.println("Not keeping screen on"); - _registrar.activity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + public static void registerWith(Registrar registrar) { + final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/clovisnicolas/flutter_screen"); + channel.setMethodCallHandler(new ScreenPlugin(registrar)); + } + + @Override + public void onMethodCall(MethodCall call, Result result) { + switch (call.method) { + case "brightness": + result.success(getBrightness()); + break; + case "setBrightness": + double brightness = call.argument("brightness"); + WindowManager.LayoutParams layoutParams = _registrar.activity().getWindow().getAttributes(); + layoutParams.screenBrightness = (float) brightness; + _registrar.activity().getWindow().setAttributes(layoutParams); + result.success(null); + break; + case "isKeptOn": + int flags = _registrar.activity().getWindow().getAttributes().flags; + result.success((flags & WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) != 0); + break; + case "keepOn": + Boolean on = call.argument("on"); + if (on) { + System.out.println("Keeping screen on "); + _registrar.activity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } else { + System.out.println("Not keeping screen on"); + _registrar.activity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + result.success(null); + break; + + default: + result.notImplemented(); + break; } - result.success(null); - break; + } - default: - result.notImplemented(); - break; + private float getBrightness() { + float result = _registrar.activity().getWindow().getAttributes().screenBrightness; + if (result < 0) { // the application is using the system brightness + try { + result = Settings.System.getInt(_registrar.context().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS) / (float) getBrightnessMax(); + } catch (Settings.SettingNotFoundException e) { + result = 1.0f; + e.printStackTrace(); + } + } + return result; } - } - private float getBrightness(){ - float result = _registrar.activity().getWindow().getAttributes().screenBrightness; - if (result < 0) { // the application is using the system brightness - try { - result = Settings.System.getInt(_registrar.context().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS) / (float)255; - } catch (Settings.SettingNotFoundException e) { - result = 1.0f; - e.printStackTrace(); - } + private int getBrightnessMax() { + try { + Resources system = Resources.getSystem(); + int resId = system.getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android"); + if (resId != 0) { + return system.getInteger(resId); + } + } catch (Exception ignore) { + } + return 255; } - return result; - } } From 1ea0f39ec2999be00657935bd3f7546da6fc64e6 Mon Sep 17 00:00:00 2001 From: LaelLuo Date: Tue, 9 Jun 2020 12:49:51 +0800 Subject: [PATCH 09/13] add reset support --- ios/Classes/ScreenPlugin.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ios/Classes/ScreenPlugin.m b/ios/Classes/ScreenPlugin.m index 0902cc1..d909134 100644 --- a/ios/Classes/ScreenPlugin.m +++ b/ios/Classes/ScreenPlugin.m @@ -26,6 +26,10 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { NSNumber *b = call.arguments[@"on"]; [[UIApplication sharedApplication] setIdleTimerDisabled:b.boolValue]; } + else if ([@"resetBrightness" isEqualToString:call.method]) { + [[UIScreen mainScreen] setBrightness:nil]; + result(nil); + } else { result(FlutterMethodNotImplemented); } From ec2eef0aa9eb488955db2c67fa4775bf5cc7d138 Mon Sep 17 00:00:00 2001 From: LaelLuo Date: Tue, 9 Jun 2020 13:12:36 +0800 Subject: [PATCH 10/13] fix: add reset support --- .../flutter/plugins/screen/screen/ScreenPlugin.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index ee98bdd..8795ef7 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -27,11 +27,6 @@ private ScreenPlugin(Registrar registrar) { private Activity _activity; - private Registrar _registrar; - - public ScreenPlugin() { - } - @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { final MethodChannel channel = new MethodChannel(binding.getBinaryMessenger(), "github.com/clovisnicolas/flutter_screen"); @@ -62,7 +57,7 @@ public void onDetachedFromActivity() { } @Override - public void onMethodCall(MethodCall call, Result result) { + public void onMethodCall(MethodCall call, @NonNull Result result) { switch (call.method) { case "brightness": result.success(getBrightness()); @@ -90,9 +85,9 @@ public void onMethodCall(MethodCall call, Result result) { result.success(null); break; case "resetBrightness": - WindowManager.LayoutParams params = _registrar.activity().getWindow().getAttributes(); + WindowManager.LayoutParams params = _activity.getWindow().getAttributes(); params.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE; - _registrar.activity().getWindow().setAttributes(params); + _activity.getWindow().setAttributes(params); result.success(null); break; default: From 80a6670c05831f92fff3a71350a70e603f5715bc Mon Sep 17 00:00:00 2001 From: LaelLuo Date: Tue, 9 Jun 2020 13:17:53 +0800 Subject: [PATCH 11/13] fix: add reset support --- .../java/flutter/plugins/screen/screen/ScreenPlugin.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index 8795ef7..3dc91f2 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -14,19 +14,16 @@ import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; import io.flutter.plugin.common.MethodCall; -import io.flutter.plugin.common.PluginRegistry.Registrar; /** * ScreenPlugin */ public class ScreenPlugin implements MethodCallHandler, FlutterPlugin, ActivityAware { - private ScreenPlugin(Registrar registrar) { - this._activity = registrar.activity(); - } - private Activity _activity; + public ScreenPlugin() { } + @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { final MethodChannel channel = new MethodChannel(binding.getBinaryMessenger(), "github.com/clovisnicolas/flutter_screen"); @@ -57,7 +54,7 @@ public void onDetachedFromActivity() { } @Override - public void onMethodCall(MethodCall call, @NonNull Result result) { + public void onMethodCall(MethodCall call, Result result) { switch (call.method) { case "brightness": result.success(getBrightness()); From 757419a5cd70f57118b9bd2d7461d6e3c2270345 Mon Sep 17 00:00:00 2001 From: LaelLuo Date: Mon, 24 Aug 2020 18:31:57 +0800 Subject: [PATCH 12/13] Revert "Merge branch 'reset'" This reverts commit 1db79f15bd1ef1e4bd18c07516fcb15c8bd4484f. Conflicts: android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java --- CHANGELOG.md | 16 +++++++++++----- .../plugins/screen/screen/ScreenPlugin.java | 7 ------- lib/screen.dart | 1 - 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40623f9..37b684b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,18 @@ -## [0.0.3] - November 6th, 2019. +## [0.0.5] - August 21, 2018 +* Update Android SDK reference -* Update description +## [0.0.4] - August 21, 2018 +* Adjust pubspec.yml to match Dart 2.0 SDK version + +## [0.0.3] - May 4th, 2018 +* Port to Dart 2.0 -## [0.0.2] - October 1st, 2019. +## [0.0.2] - January 23rd, 2018. * Update description -## [0.0.1] - October 1st, 2019. +## [0.0.1] - January 23rd, 2018. -* Brightness can be reset after use +* Brightness can be set and retrieved +* Device can be kept "on" diff --git a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java index 3dc91f2..1eb66c7 100644 --- a/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java +++ b/android/src/main/java/flutter/plugins/screen/screen/ScreenPlugin.java @@ -81,16 +81,9 @@ public void onMethodCall(MethodCall call, Result result) { } result.success(null); break; - case "resetBrightness": - WindowManager.LayoutParams params = _activity.getWindow().getAttributes(); - params.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE; - _activity.getWindow().setAttributes(params); - result.success(null); - break; default: result.notImplemented(); break; - } } diff --git a/lib/screen.dart b/lib/screen.dart index d5e993a..4dbc0d1 100644 --- a/lib/screen.dart +++ b/lib/screen.dart @@ -9,5 +9,4 @@ class Screen { static Future setBrightness(double brightness) =>_channel.invokeMethod('setBrightness',{"brightness" : brightness}); static Future get isKeptOn async => (await _channel.invokeMethod('isKeptOn')) as bool; static Future keepOn(bool on) => _channel.invokeMethod('keepOn', {"on" : on}); - static Future resetBrightness() => _channel.invokeMethod('resetBrightness'); } From f831d3a96a5522eca1ad667438f21eb5163a5609 Mon Sep 17 00:00:00 2001 From: LaelLuo Date: Tue, 9 Jun 2020 12:49:51 +0800 Subject: [PATCH 13/13] Revert "add reset support" This reverts commit 1ea0f39ec2999be00657935bd3f7546da6fc64e6. --- ios/Classes/ScreenPlugin.m | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ios/Classes/ScreenPlugin.m b/ios/Classes/ScreenPlugin.m index d909134..0902cc1 100644 --- a/ios/Classes/ScreenPlugin.m +++ b/ios/Classes/ScreenPlugin.m @@ -26,10 +26,6 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { NSNumber *b = call.arguments[@"on"]; [[UIApplication sharedApplication] setIdleTimerDisabled:b.boolValue]; } - else if ([@"resetBrightness" isEqualToString:call.method]) { - [[UIScreen mainScreen] setBrightness:nil]; - result(nil); - } else { result(FlutterMethodNotImplemented); }