1660120860
Julia guard automatically launches respective tests when Julia files are modified.
The codebase's architecture is largely derived from guard-minitest.
Ruby must be installed, then run:
$ gem install bundler
$ cd /your/julia/project/dir
$ bundle init
Add this line to your project's newly created Gemfile:
gem 'guard-julia'
And then execute:
$ bundle
Please read Guard usage documentation.
To create the Guardfile run:
$ bundle exec guard init julia
Then run guard itself:
$ bundle exec guard
all_on_start: true # Run all tests on startup
julia_file_path: 'julia' # File path to Julia executable
all_tests_file: 'test/runtests.jl' # File to run all tests
cli: ['--code-coverage'] # CLI arguments to Julia
env: {} # Environment variables
You can pass any of these options in the Guardfile like so:
guard :julia, cli: ['--code-coverage', '-p 1'] do
# ...
end
bundle
)git checkout -b my-new-feature
)git commit -am 'Add some feature'
)bundle exec rake test
)bundle exec rubocop
)git push origin my-new-feature
)Author: svs14
Source Code: https://github.com/svs14/guard-julia
License: MIT license
1659533400
admost_flutter_plugin
A new Flutter plugin that uses native platform views to show AdMost mediation platform banner ads!
This plugin also has support for Interstitial and Reward ads.
Add thidars to your pubspec.yml dependencies:
admost_flutter_plugin: "^1.2.4"
Add the related dependencies into android/app/build.graddle. Dependencies changes according to your ad network choices. The items shown below represents Facebook audience network dependencies chosen as sample. Refer to the admost android documentation for necessary dependencies for selected ad networks for an application.
dependencies {
implementation 'com.admost.sdk:facebook-adapter:6.11.0.a31'
implementation 'androidx.annotation:annotation:1.2.0'
}
It may be needed to add extra repository based on ad network selection. This configuration can be found in the admost android documentation as well.
import 'package:flutter/material.dart';
import 'package:admost_flutter_plugin/admost.dart';
import 'package:admost_flutter_plugin/admost_interstitial.dart';
import 'package:admost_flutter_plugin/admost_rewarded.dart';
import 'package:admost_flutter_plugin/admost_ad_events.dart';
import 'package:admost_flutter_plugin/admost_banner.dart';
import 'package:admost_flutter_plugin/admost_banner_size.dart';
import 'package:admost_flutter_plugin/admost_native_ad.dart';
import 'dart:io';
void main() {
WidgetsFlutterBinding.ensureInitialized();
Map<String, String> conf = {
"appId": Platform.isIOS
? "15066ddc-9c18-492c-8185-bea7e4c7f88c"
: "6cc8e89a-b52a-4e9a-bb8c-579f7ec538fe",
"userConsent": "1",
"subjectToGDPR": "1",
"subjectToCCPA": "0"
};
Admost.initialize(conf);
runApp(MyApp());
}
/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
static const String _title = 'Flutter Code Sample';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: _title,
home: Scaffold(
appBar: AppBar(title: const Text(_title)),
body: MyHomePage(),
),
);
}
}
/// This is the stateless widget that the main application instantiates.
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String interstitialText = 'Load Interstitial';
String rewardedText = 'Load Rewarded';
AdmostInterstitial interstitialAd;
AdmostRewarded rewardAd;
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(10),
child: Center(
widthFactor: 2,
heightFactor: 2,
child: Column(children: <Widget>[
Card(
child: InkWell(
splashColor: Colors.blue.withAlpha(30),
onTap: () async {
if (interstitialAd == null) {
interstitialAd = AdmostInterstitial(
zoneId: Platform.isIOS
? '39f74377-5682-436a-9338-9d1c4df410bd'
: 'f99e409b-f9ab-4a2e-aa9a-4d143e6809ae',
listener: (AdmostAdEvent event, Map<String, dynamic> args) {
if (event == AdmostAdEvent.loaded) {
interstitialText = 'Show Interstitial';
setState(() {
interstitialText;
});
}
if (event == AdmostAdEvent.dismissed) {
interstitialText = 'Load Interstitial';
setState(() {
interstitialText;
});
}
if (event == AdmostAdEvent.failedToLoad) {
print("failedToLoad");
print("Error code: ${args['errorCode']}");
}
if (event == AdmostAdEvent.statusChanged) {
print("statusChanged");
print("Status: ${args['status']}");
}
},
);
}
if (await interstitialAd.isLoaded) {
interstitialAd.show("YOUR TAG");
} else {
interstitialAd.load();
}
},
child: Center(
widthFactor: 2,
heightFactor: 2,
child: Text(interstitialText),
),
),
),
Card(
child: InkWell(
splashColor: Colors.blue.withAlpha(30),
onTap: () async {
if (rewardAd == null) {
rewardAd = AdmostRewarded(
zoneId: Platform.isIOS
? '2bdefd44-5269-4cbc-b93a-373b74a2f067'
: '88cfcfd0-2f8c-4aba-9f36-cc0ac99ab140',
listener: (AdmostAdEvent event, Map<String, dynamic> args) {
if (event == AdmostAdEvent.loaded) {
rewardedText = 'Show Rewarded';
setState(() {
rewardedText;
});
} else if (event == AdmostAdEvent.dismissed) {
rewardedText = 'Load Rewarded';
setState(() {
rewardedText;
});
} else if (event == AdmostAdEvent.failedToLoad) {
print("failedToLoad");
} else if (event == AdmostAdEvent.completed) {
print("REWARDED");
}
},
);
}
if (await rewardAd.isLoaded) {
rewardAd.show("YOUR TAG");
} else {
rewardAd.load();
}
},
child: Center(
widthFactor: 2,
heightFactor: 2,
child: Text(rewardedText),
),
),
),
Card(
child: AdmostBanner(
adUnitId: Platform.isIOS
? "b4009772-de04-42c4-bbaa-c18da9e4a1ab"
: '9fb970db-7d96-4ef2-ac8c-d88ec22270ff',
adSize: AdmostBannerSize.LEADERBOARD,
listener: (AdmostAdEvent event, Map<String, dynamic> args) {
if (event == AdmostAdEvent.loaded) {
print("ADMOST Ad Loaded");
}
if (event == AdmostAdEvent.clicked) {
print("ADMOST Ad clicked");
}
if (event == AdmostAdEvent.failedToLoad) {
print("Error code: ${args['errorCode']}");
}
},tag:'YOUR TAG',
),
),
Card(
child: AdmostNativeAd(
adUnitId: Platform.isIOS
? 'c72a4a52-23c5-4c34-9eb1-7bbc4c08c7e4'
: 'f3915393-7f42-4b9d-97c3-e7d4017c7591',
adSize: AdmostBannerSize.MEDIUM_RECTANGLE,
xibNameForIOS: 'AMRNativeAdBaseView250',
listener: (AdmostAdEvent event, Map<String, dynamic> args) {
if (event == AdmostAdEvent.loaded) {
print("ADMOST Native Ad Loaded");
}
if (event == AdmostAdEvent.clicked) {
print("ADMOST Ad clicked");
}
if (event == AdmostAdEvent.failedToLoad) {
print("Error code: ${args['errorCode']}");
}
},tag:'YOUR TAG',
),
)
]),
),
);
}
}
IOS
For IOS it is enough to add the following parameter to the AdmostNativeAd view;
xibNameForIOS: 'AMRNativeAdBaseView250',
Android
As in the MainActivity in the example project, you can follow the following steps;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="120dp"
android:background="@android:color/white"
android:orientation="horizontal">
<ImageView
android:id="@+id/admost_flutter_back_image"
android:layout_width="145dp"
android:layout_marginLeft="5dp"
android:adjustViewBounds="true"
android:layout_gravity="left|center"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:visibility="gone"/>
<ImageView
android:id="@+id/admost_flutter_main_image"
android:layout_width="145dp"
android:layout_marginLeft="5dp"
android:adjustViewBounds="true"
android:layout_gravity="left|center"
android:layout_height="wrap_content"
android:scaleType="fitXY" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="0dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/admost_flutter_icon"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginRight="4dp"
android:layout_marginTop="6dp"
android:background="@null"
android:scaleType="fitXY" />
<TextView
android:id="@+id/admost_flutter_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_marginRight="15dp"
android:maxLines="1"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:text="Title"
android:textColor="#ff000000"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/admost_flutter_attribution"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:layout_marginTop="30dp"
android:layout_marginLeft="10dp"
android:text="Ad"
android:textColor="#ffacabab"
android:textSize="12sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:layout_marginLeft="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/admost_flutter_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="5dp"
android:ellipsize="end"
android:lineSpacingExtra="3dp"
android:maxLines="2"
android:paddingBottom="5dp"
android:paddingTop="8dp"
android:text="Title Lorem ipsom dolor sit amet consaposod elit"
android:textColor="#cc2a2e32"
android:textSize="12sp"/>
<Button
android:id="@+id/admost_flutter_cta"
android:layout_width="match_parent"
android:layout_height="36dp"
android:layout_marginBottom="12dp"
android:layout_marginTop="-10dp"
android:layout_gravity="center"
android:gravity="center"
android:text="Go"
android:textStyle="bold"
android:textSize="14sp"
android:textColor="@android:color/black"/>
</LinearLayout>
<LinearLayout
android:id="@+id/admost_flutter_ad_choices"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="right"
android:orientation="vertical"/>
</RelativeLayout>
</LinearLayout>
val binder: AdMostViewBinder = admost.sdk.AdMostViewBinder.Builder(R.layout.custom_layout_flutter)
.iconImageId(R.id.cardIcon)
.titleId(R.id.cardTitle)
.callToActionId(R.id.CallToActionTextView)
.textId(R.id.cardDetailText)
.attributionId(R.id.cardAttribution)
.mainImageId(R.id.cardImage)
.backImageId(R.id.cardBack)
.privacyIconId(R.id.ad_choices)
.isRoundedMode(true)
.build()
AdmostFLTNativeAdBinder.getInstance().binder = binder;
IOS
Admost.trackIAPForIOS(transactionId, currency, amount, ['tag1', 'tag2']);
Android
Admost.trackIAPForAndroid(originalJSON, signature, currency, amount, ['tag1', 'tag2'])
Run this command:
With Flutter:
$ flutter pub add admost_flutter_plugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
admost_flutter_plugin: ^1.2.4
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:admost_flutter_plugin/admost.dart';
import 'package:admost_flutter_plugin/admost_ad_events.dart';
import 'package:admost_flutter_plugin/admost_banner.dart';
import 'package:admost_flutter_plugin/admost_banner_controller.dart';
import 'package:admost_flutter_plugin/admost_banner_size.dart';
import 'package:admost_flutter_plugin/admost_event_handler.dart';
import 'package:admost_flutter_plugin/admost_interstitial.dart';
import 'package:admost_flutter_plugin/admost_ios_attrackingmanager.dart';
import 'package:admost_flutter_plugin/admost_native_ad.dart';
import 'package:admost_flutter_plugin/admost_rewarded.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:admost_flutter_plugin/admost.dart';
import 'package:admost_flutter_plugin/admost_interstitial.dart';
import 'package:admost_flutter_plugin/admost_rewarded.dart';
import 'package:admost_flutter_plugin/admost_ad_events.dart';
import 'package:admost_flutter_plugin/admost_banner.dart';
import 'package:admost_flutter_plugin/admost_banner_size.dart';
import 'package:admost_flutter_plugin/admost_native_ad.dart';
import 'package:admost_flutter_plugin/admost_ios_attrackingmanager.dart';
import 'dart:io';
void main() {
WidgetsFlutterBinding.ensureInitialized();
Admost.initialize(
appId: Platform.isIOS
? "15066ddc-9c18-492c-8185-bea7e4c7f88c"
: "6cc8e89a-b52a-4e9a-bb8c-579f7ec538fe",
userConsent: "1",
subjectToGDPR: "1",
subjectToCCPA: "0");
//Admost.setUserId("myUniqueUserId");
//AdmostATTrackingManager.requestTrackingAuthorization().then((value) => print("TrackingAuthorizationStatus: ${value}"));
//AdmostATTrackingManager.getTrackingAuthorizationStatus().then((value) => print("TrackingAuthorizationStatus: ${value}"));
runApp(MyApp());
}
/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
static const String _title = 'Flutter Code Sample';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: _title,
home: Scaffold(
appBar: AppBar(title: const Text(_title)),
body: MyHomePage(),
),
);
}
}
/// This is the stateless widget that the main application instantiates.
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String interstitialText = 'Load Interstitial';
String rewardedText = 'Load Rewarded';
AdmostInterstitial interstitialAd;
AdmostRewarded rewardAd;
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(10),
child: Center(
widthFactor: 2,
heightFactor: 2,
child: Column(children: <Widget>[
Card(
child: InkWell(
onTap: () {
Admost.startTestSuite(Platform.isIOS
? "15066ddc-9c18-492c-8185-bea7e4c7f88c"
: "6cc8e89a-b52a-4e9a-bb8c-579f7ec538fe");
},
child: Center(
widthFactor: 2,
heightFactor: 2,
child: Text("Start Tester Info"),
),
),
),
Card(
child: InkWell(
splashColor: Colors.blue.withAlpha(30),
onTap: () async {
if (interstitialAd == null) {
interstitialAd = AdmostInterstitial(
zoneId: Platform.isIOS
? '39f74377-5682-436a-9338-9d1c4df410bd'
: 'f99e409b-f9ab-4a2e-aa9a-4d143e6809ae',
listener: (AdmostAdEvent event, Map<String, dynamic> args) {
if (event == AdmostAdEvent.loaded) {
print("<ADMOST> Interstitial loaded");
print(
"<ADMOST> Interstitial network: ${args['network']}");
print("<ADMOST> Interstitial ecpm: ${args['ecpm']}");
interstitialText = 'Show Interstitial';
setState(() {
interstitialText;
});
}
if (event == AdmostAdEvent.dismissed) {
print("<ADMOST> Interstitial dismissed");
interstitialText = 'Load Interstitial';
setState(() {
interstitialText;
});
}
if (event == AdmostAdEvent.opened) {
print("<ADMOST> Interstitial Opened");
}
if (event == AdmostAdEvent.failedToLoad) {
print("<ADMOST> Interstitial failedToLoad");
print(
"<ADMOST> Interstitial Error code: ${args['errorCode']}");
print(
"<ADMOST> Interstitial Error description: ${args['errorMessage']}");
}
if (event == AdmostAdEvent.failedToShow) {
print("<ADMOST> Interstitial failedToShow");
print(
"<ADMOST> Interstitial Error code: ${args['errorCode']}");
print(
"<ADMOST> Interstitial Error description: ${args['errorMessage']}");
}
},
);
}
if (await interstitialAd.isLoaded) {
interstitialAd.show();
// If you want to add tag, you should remove the line above and use the code below (optional)
// interstitialAd.show("YOUR TAG");
} else {
interstitialAd.load();
}
},
child: Center(
widthFactor: 2,
heightFactor: 2,
child: Text(interstitialText),
),
),
),
Card(
child: InkWell(
splashColor: Colors.blue.withAlpha(30),
onTap: () async {
if (rewardAd == null) {
rewardAd = AdmostRewarded(
zoneId: Platform.isIOS
? '2bdefd44-5269-4cbc-b93a-373b74a2f067'
: '88cfcfd0-2f8c-4aba-9f36-cc0ac99ab140',
listener: (AdmostAdEvent event, Map<String, dynamic> args) {
if (event == AdmostAdEvent.loaded) {
print("<ADMOST> Rewarded loaded");
print("<ADMOST> Rewarded network: ${args['network']}");
print("<ADMOST> Rewarded ecpm: ${args['ecpm']}");
rewardedText = 'Show Rewarded';
setState(() {
rewardedText;
});
} else if (event == AdmostAdEvent.dismissed) {
print("<ADMOST> Rewarded dismissed");
rewardedText = 'Load Rewarded';
setState(() {
rewardedText;
});
} else if (event == AdmostAdEvent.failedToLoad) {
print("<ADMOST> Rewarded failedToLoad");
print(
"<ADMOST> Rewarded Error code: ${args['errorCode']}");
print(
"<ADMOST> Rewarded Error description: ${args['errorMessage']}");
} else if (event == AdmostAdEvent.failedToShow) {
print("<ADMOST> Rewarded failedToShow");
print(
"<ADMOST> Rewarded Error code: ${args['errorCode']}");
print(
"<ADMOST> Rewarded Error description: ${args['errorMessage']}");
} else if (event == AdmostAdEvent.opened) {
print("<ADMOST> Rewarded Opened");
} else if (event == AdmostAdEvent.completed) {
print("<ADMOST> Rewarded completed");
}
},
);
}
if (await rewardAd.isLoaded) {
rewardAd.show();
// If you want to add tag, you should remove the line above and use the code below (optional)
// rewardAd.show("YOUR TAG");
} else {
rewardAd.load();
}
},
child: Center(
widthFactor: 2,
heightFactor: 2,
child: Text(rewardedText),
),
),
),
Card(
child: AdmostBanner(
adUnitId: Platform.isIOS
? "b4009772-de04-42c4-bbaa-c18da9e4a1ab"
: '9fb970db-7d96-4ef2-ac8c-d88ec22270ff',
adSize: AdmostBannerSize.LEADERBOARD,
listener: (AdmostAdEvent event, Map<String, dynamic> args){
if (event == AdmostAdEvent.loaded) {
print("<ADMOST> Banner Ad network: ${args['network']}");
print("<ADMOST> Banner Ad ecpm: ${args['ecpm']}");
print("<ADMOST> Banner Ad Loaded");
}
if (event == AdmostAdEvent.clicked) {
print("<ADMOST> Banner Ad network: ${args['network']}");
print("<ADMOST> Banner Ad clicked");
}
if (event == AdmostAdEvent.failedToLoad) {
print(
"<ADMOST> Banner Error description: ${args['errorMessage']}");
print("<ADMOST Banner Error code: ${args['errorCode']}");
}
},
//optional
//tag:"YOUR TAG",
),
),
Card(
child: AdmostNativeAd(
adUnitId: Platform.isIOS
? 'c72a4a52-23c5-4c34-9eb1-7bbc4c08c7e4'
: '951d398e-b6ec-40a7-bc80-6b4b223418df',
adSize: AdmostBannerSize.MEDIUM_RECTANGLE,
xibNameForIOS: 'AMRNativeAdBaseView250',
listener: (AdmostAdEvent event, Map<String, dynamic> args) {
if (event == AdmostAdEvent.loaded) {
print("<ADMOST> Native Ad network: ${args['network']}");
print("<ADMOST> Native Ad ecpm: ${args['ecpm']}");
print("<ADMOST> Native Ad Loaded");
}
if (event == AdmostAdEvent.clicked) {
print("<ADMOST> Native Ad network: ${args['network']}");
print("<ADMOST> Native Ad clicked");
}
if (event == AdmostAdEvent.failedToLoad) {
print("<ADMOST> Native Ad Error code: ${args['errorCode']}");
print(
"<ADMOST> Native Ad Error description: ${args['errorMessage']}");
}
},
//optional
//tag:"YOUR TAG",
),
)
]),
),
);
}
}
Original article source at: https://pub.dev/packages/admost_flutter_plugin
1659520020
Turns "divider" roles into actual dividers.
Before:
After:
A divider role I have is not being shown as a divider.
This plugin was made to support a variety of divider formats. However, if a certain divider name isn't working (or is being flagged incorrectly), please create an issue with the role name so I can update the plugin to support it.
How can I change the divider style?
You can style the dividers by selecting the .role-divider
class. Here's an example made by @12944qwerty:
.role-divider {
font-weight: normal !important;
text-transform: capitalize;
margin-bottom: 2px;
margin-top: 2px !important;
}
How do I remove a divider role from someone in my server?
You can manage divider roles in the member context menu. Right click on the member and go to the "Roles" section, then click on any roles you want to remove.
Some divider roles are completely missing from a member!
By default, this plugin will hide any divider roles that do not have any roles under them. This can be turned off in settings.
Author: Asportnoy
Source Code: https://github.com/asportnoy/powercord-role-dividers
License: MIT license
1659518956
This is the development code of Nvim-R which improves Vim's support to edit R code.
If you use a plugin manager, such as vim-plug, follow its instructions on how to install plugins from github.
To install the stable version of the plugin, if using vim-plug, put this in your vimrc
/init.vim
:
Plug 'jalvesaq/Nvim-R', {'branch': 'stable'}
The stable
branch is a copy of the last released version plus minor bug fixes eventually found after the release. I plan to keep the stable branch compatible with Ubuntu LTS releases, and the master branch compatible with Ubuntu normal releases. If you need an older version, you could try either the oldstable
branch or one of the tagged versions.
James Eapen maintains an online version of the plugin's documentation. Please, read the section Installation for details.
Please read the plugin's documentation for instructions on usage.
The animated GIF below shows R running in a Neovim terminal buffer. We can note:
The editor has some code to load Afrobarometer data on Mozambique, R is running below the editor and the Object Browser is on the right side. On the R Console, we can see messages inform some packages were loaded. The messages are in magenta because they were colorized by the package colorout.
When the command library("foreign")
is sent to R, the string read.spss turns blue because it is immediately recognized as a loaded function (the Vim color scheme used is southernlights).
When Mozambique's data.frame is created, it is automatically displayed in the Object Browser. Messages about unrecognized types are in magenta because they were sent to stderr, and the line Warning messages is in red because colorout recognized it as a warning.
When the "label" attributes are applied to the data.frame elements, the labels show up in the Object Browser.
The next images show results of omni completion.
The last slide shows the output of summary
.
In addition to sending lines of code to R Console, Nvim-R and R communicate with each other through TCP connections. The R package nvimcom runs a TCP server that receives messages from Vim/Neovim, and it also sends messages through a TCP connection to Vim/Neovim. Moreover, nvimcom includes the application nclientserver which is never used by R itself, but is run by Vim/Neovim, providing both a TCP client and a TCP server. The Diagram below shows the three paths of communication between Vim/Neovim and R:
The black path is followed by all commands that you trigger in the editor and that you can see being pasted into R Console. There are three different ways of sending the commands to R Console:
When running R in a Neovim built-in terminal, the function chansend()
is used to send code to R Console.
When running R in an external terminal emulator, Tmux is used to send commands to R Console.
On Windows operating system, Nvim-R can send a message to R (nvimcom) which forwards the command to R Console.
The blue path is followed by the few commands that you trigger, but that are not pasted into R Console and do not output anything in R Console; their results are seen in the editor itself. These are the commands to do omnicompletion (of names of objects and function arguments), start and manipulate the Object Browser (\ro
, \r=
and \r-
), call R help (\rh
or :Rhelp
), insert the output of an R command (:Rinsert
) and format selected text (:Rformat
).
The red path is followed by R messages that tell the editor to update the Object Browser, update the syntax highlight to include newly loaded libraries and open the PDF output after knitting an Rnoweb file and compiling the LaTeX result.
Author: jalvesaq
Source Code: https://github.com/jalvesaq/Nvim-R
License: GPL-2.0 license
1659310620
Upshot.ai is a analytics and customer engagement platform. This framework helps you capture analytics, track events, send smart notifications and in-app messages to users.
Run this command:
With Flutter:
$ flutter pub add flutter_upshot_plugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
flutter_upshot_plugin: ^1.0.8
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:flutter_upshot_plugin/flutter_upshot_plugin.dart';
example/lib/main.dart
import 'dart:collection';
import 'dart:developer';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_upshot_plugin/flutter_upshot_plugin.dart';
import 'package:flutter_upshot_plugin/upshotConstants.dart';
import 'package:flutter_upshot_plugin_example/upshotMethodChannel.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
String? eventId;
@override
void initState() {
super.initState();
initPlatformState();
// initialiseBrandKinesis();
FlutterUpshotPlugin.initializeUpshotUsingConfigFile();
UpshotMethodChannel(context);
}
Future<void> initPlatformState() async {
String platformVersion;
try {
platformVersion = await FlutterUpshotPlugin.getSDKVersion ??
'Unknown platform version';
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
Future<void> initialiseBrandKinesis() async {
try {
await FlutterUpshotPlugin.initializeUpshotUsingConfigFile();
} catch (e) {
log('Error: $e');
}
}
Future<void> initializeBrandKinesisWithOptions(String appId, String ownerId,
bool fetchLocation, bool useExternalStorage, bool enableDebugLogs) async {
Map optionsMap = {
UpshotInitOptions.appId.name : appId,
UpshotInitOptions.ownerId.name: ownerId,
UpshotInitOptions.enableDebuglogs.name: enableDebugLogs,
UpshotInitOptions.enableLocation.name: fetchLocation,
UpshotInitOptions.enableCrashlogs.name: true,
UpshotInitOptions.enableExternalStorage.name: useExternalStorage
};
await FlutterUpshotPlugin.initialiseUpshotUsingOptions(optionsMap);
}
Future<void> createEvent(String eventName, HashMap<String, Object> data) async {
try {
String? eventID = await FlutterUpshotPlugin.createCustomEvent(eventName, data, false);
eventId = eventID;
log('$eventId');
} catch (e) {
log('Error : $e');
}
}
Future<void> createLocationEvent(double lat, double long) async {
try {
await FlutterUpshotPlugin.createLocationEvent(lat, long);
} catch (e) {
log('$e');
}
}
Future<void> createAttributionEvent(String attributionSource,
String utmSource, String utmMedium, String utmCampaign) async {
try {
Map optionsMap = {
UpshotAttribution.attributionSource.toString(): attributionSource,
UpshotAttribution.utmSource.toString(): utmSource,
UpshotAttribution.utmMedium.toString(): utmMedium,
UpshotAttribution.utmCampaign.toString():utmCampaign
};
await FlutterUpshotPlugin.createAttributionEvent(optionsMap);
} catch (e) {
log('$e');
}
}
static Future<void> sendUserDetails(HashMap<String, Object> data) async {
await FlutterUpshotPlugin.sendUserDetails(data);
}
static Future<void> setValueAndClose(String eventName, Map data) async {
await FlutterUpshotPlugin.setValueAndClose(eventName, data);
}
static Future<void> closeEventForId(String eventId) async {
await FlutterUpshotPlugin.closeEventForId(eventId);
}
static Future<void> dispatchEventWithTime(bool time) async {
await FlutterUpshotPlugin.dispatchEvents(time);
}
static Future<void> removeTutorial() async {
await FlutterUpshotPlugin.removeTutorial();
}
static Future<void> createPageViewEvent(String pageName) async {
try {
String? eventID = await FlutterUpshotPlugin.createPageViewEvent(pageName);
log(eventID.toString());
} catch (e) {
log('Error : $e');
}
}
Future<void> terminateUpshot() async {
await FlutterUpshotPlugin.terminateUpshot();
}
Future<void> showActivity(String tag) async {
await FlutterUpshotPlugin.showActivity(-1, tag);
}
static Future<void> getBadges() async {
await FlutterUpshotPlugin.fetchUserBadges();
}
static Future<void> getCampaignDetails() async {
await FlutterUpshotPlugin.fetchInboxDetails();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Padding(
padding: const EdgeInsets.all(12.0),
child: ListView(
shrinkWrap: true,
children: [
const SizedBox(height: 20),
Center(
child: Text('Running on: $_platformVersion\n'),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
initializeBrandKinesisWithOptions(
"appId", "ownerId", true, true, true);
},
child: const Text("Initialize With Options"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () async {
HashMap<String, Object>? data = HashMap();
data['city'] = 'Bengaluru';
data['timesVisited'] = 20;
createEvent("test", data);
},
child: const Text("Create Event"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () async {
createLocationEvent(17.2365, 25.3269);
},
child: const Text("Create Location Event"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
terminateUpshot();
},
child: const Text("Terminate Upshot"),
),
const SizedBox(height: 10),
/// Pass user data as key and value pair
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
HashMap<String, Object> data = HashMap();
data.putIfAbsent("first_name", () => "G S Prakash");
data.putIfAbsent("age", () => 23);
data.putIfAbsent("gender", () => 1);
data.putIfAbsent("mail", () => "gsp8672@gmail.com");
data.putIfAbsent("day", () => 23);
data.putIfAbsent("month", () => 3);
data.putIfAbsent("year", () => 1996);
data.putIfAbsent("appUID", () => "GFKB6598BV");
data.putIfAbsent("facebookId", () => "some URL");
data.putIfAbsent("twitterId", () => "some URL");
/// Others Data
data.putIfAbsent("city", () => "Bangalore");
data.putIfAbsent("state", () => "Karnataka");
sendUserDetails(data);
},
child: const Text("Send User Details"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
getBadges();
},
child: const Text("Get Badges"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
closeEventForId('ffa1d44d-b0d6-48e3-a9f6-ae2481d90996\$c');
},
child: const Text("Close Event for ID"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
HashMap<String, Object>? data = HashMap();
data['city'] = 'Bengaluru';
data['timesVisited'] = 20;
setValueAndClose("test", data);
},
child: const Text("SetValue And Close"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
createPageViewEvent("Login");
},
child: const Text("Create page view event"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
getCampaignDetails();
},
child: const Text("Get VisualInbox"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
dispatchEventWithTime(true);
},
child: const Text("Dispatch event with time"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
removeTutorial();
},
child: const Text("Remove Tutorial"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
showActivity("main");
},
child: const Text("Show Activity"),
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.black12,
textStyle: const TextStyle(color: Colors.white)),
onPressed: () {
createAttributionEvent(
"attribution", "utmSource", "utmMedium", "utmCampaign");
},
child: const Text("Create Attribution Event"),
),
const SizedBox(height: 40),
],
),
),
),
);
}
}
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Author: Upshot-AI
Source Code: https://github.com/Upshot-AI/flutter_upshot_plugin
License: MIT license
1658749200
Provide Iotpay service for Wechat, Alipay, Unionpay, Credit
Run this command:
With Flutter:
$ flutter pub add iotpay_flutter_plugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
iotpay_flutter_plugin: ^0.0.1
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:iotpay_flutter_plugin/iotpay_flutter_plugin.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:iotpay_flutter_plugin/iotpay_flutter_plugin.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
@override
void initState() {
super.initState();
initPlatformState();
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
String platformVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
// We also handle the message potentially returning null.
try {
platformVersion =
await IotpayFlutterPlugin.platformVersion ?? 'Unknown platform version';
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Text('Running on: $_platformVersion\n'),
),
),
);
}
}
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Original article source at: https://pub.dev/packages/iotpay_flutter_plugin
1658606220
indigitall flutter plugin
Run this command:
With Flutter:
$ flutter pub add indigitall_flutter_plugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
indigitall_flutter_plugin: ^1.3.1
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:indigitall_flutter_plugin/indigitall_flutter_plugin.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:indigitall_flutter_plugin/core/utils/IndigitallParams.dart';
import 'package:indigitall_flutter_plugin/indigitall_flutter_plugin.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String? _deviceId = 'Unknown';
@override
void initState() {
super.initState();
Map params = {
IndigitallParams.PARAM_APP_KEY : "YOUR_APP_KEY",
IndigitallParams.PARAM_SENDER_ID : "YOUR_SENDER_ID",
IndigitallParams.PARAM_REQUEST_LOCATION : true,
IndigitallParams.PARAM_WIFI_FILTER_ENABLED : true,
IndigitallParams.PARAM_LOG_DEBUG : false
};
IndigitallFlutterPlugin.init(params, (device) => {
print("init device "+ device.deviceId.toString()),
_deviceId = device.deviceId,
}, (device) => {
print("init onnew device "+ device.deviceId.toString()),
_deviceId = device.deviceId,
}, (error) => {
print("error init device "+ error.errorMessage.toString())
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Text('Device Id: $_deviceId\n'),
),
),
);
}
}
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started our sdk with Flutter, view our Indigitall online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Original article source at: https://pub.dev/packages/indigitall_flutter_plugin
1658533980
A new Flutter plugin.
Run this command:
With Flutter:
$ flutter pub add flutter_plugin_qpos
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
flutter_plugin_qpos: ^0.1.3
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:flutter_plugin_qpos/flutter_plugin_qpos.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'pages/PluginPage.dart';
import 'pages/SecondScreen.dart';
void main() => runApp(MyApp());
Map<String, WidgetBuilder>? routes;
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or simply save your changes to "hot reload" in a Flutter IDE).
// Notice that the counter didn't reset back to zero; the application
// is not restarted.
primarySwatch: Colors.blue,
),
//注册路由表
routes: {
"/": (context) => PluginPage(),
// '/second': (context) => SecondScreen(),
},
onGenerateRoute: (RouteSettings settings) {
String? routeName = settings.name;
print(routeName);
return MaterialPageRoute(builder: (context) => PluginPage());
}
);
}
}
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Original article source at: https://pub.dev/packages/flutter_plugin_qpos
1658402770
adjoe's flutter plugin
Run this command:
With Flutter:
$ flutter pub add jd_adjoe_plugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
jd_adjoe_plugin: ^0.0.3
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:jd_adjoe_plugin/jd_adjoe_plugin.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:jd_adjoe_plugin/jd_adjoe_plugin.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Column(
children: [
],
),
),
);
}
}
Author: LiJinJinJIn
Source Code: https://github.com/LiJinJinJIn/jd_adjoe_plugin
License: View license
1658130612
Add the following entry to your Info.plist file, located in
<key>NSCameraUsageDescription</key><string>$(PRODUCT_NAME) Camera Usage!</string><key>NSMicrophoneUsageDescription</key><string>$(PRODUCT_NAME) Microphone Usage!</string>
Ensure the following permission is present in your Android Manifest file, located in
<project root>/android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
First we need to create an instance of emitter client.
Emitter emitter = Emitter.instance;
Below described main helpful callbacks and listeners:
emitter.onConnect = (res) {
};
emitter.onPresence = (res) {
};
emitter.onsubscribe = (value) {
};
emitter.onMessage = (msg) async {
};
class used in ReadReceiptModel class to inform status of the message
class ReceiptType {
static var sent = 1;
static var delivered = 2;
static var seen = 3;
}
Class to identify the type of file
class MediaType {
static int image = 0;
static int audio = 1;
static int video = 2;
static int file = 3;
}
Class to identify the type of Message
class MessageType {
static const String text = "text";
static const String media = "media";
static const String file = "file";
static const String thumbnail = "thumbnail";
static const String path = "path";
static const String typing = "typing";
}
SDK Methods:
Use this method to connect socket.
emitter.connect(
String clientId,
bool reconnectivity,
String refID,
String authorization_token,
String project_id,
String host,
String port,
);
Use this method to subscribe to a chat or group
emitter.subscribePresence(String channelKey, String channelName, bool changes, bool status);
Use this method to acknowledge the availability of the user.
emitter.subscribePresence(String channelKey, String channelName, bool changes, bool status);
Use this method to publish message of object type which can be of any type i-e text ,audio,video,document or images type.
emitter.publish(String channelKey, String channelName, Map<String, dynamic> send_message);
Run this command:
With Flutter:
$ flutter pub add vdotok_connect
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
vdotok_connect: ^0.0.7
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:vdotok_connect/vdotok_connect.dart';
example/lib/main.dart
import 'dart:async';
import 'dart:io';
import 'package:data_connection_checker/data_connection_checker.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:vdkFlutterChat/src/Screeens/home/homeIndex.dart';
import 'package:vdkFlutterChat/src/Screeens/login/SignInScreen.dart';
import 'package:vdkFlutterChat/src/Screeens/splash/splash.dart';
import 'package:vdkFlutterChat/src/constants/constant.dart';
import 'package:vdkFlutterChat/src/core/providers/auth.dart';
import 'package:vdkFlutterChat/src/routing/routes.dart';
import 'src/constants/constant.dart';
class MyHttpOverrides extends HttpOverrides {
@override
HttpClient createHttpClient(SecurityContext context) {
return super.createHttpClient(context)
..badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
}
}
void main() {
HttpOverrides.global = new MyHttpOverrides();
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool state = true;
bool connectionState = false;
bool keepShowing = false;
bool isDeviceConnected = false;
bool isdev=true;
StreamSubscription subscription;
GlobalKey<ScaffoldMessengerState> rootScaffoldMessengerKey;
@override
void initState() {
super.initState();
rootScaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();
checkStatus();
checkConnectivity();
}
@override
void dispose() {
subscription.cancel();
super.dispose();
}
checkStatus() async {
if (!kIsWeb) {
bool connectivity = await DataConnectionChecker().hasConnection;
print("this is for web $connectivity");
if (connectivity == true) {
setState(() {
state = true;
print("here in state circle");
});
} else {
setState(() {
state = false;
});
}
}
}
void checkConnectivity() async {
isDeviceConnected = false;
if (!kIsWeb) {
DataConnectionChecker().onStatusChange.listen((status) async {
print("this on listener");
isDeviceConnected = await DataConnectionChecker().hasConnection;
print("this is is connected $isDeviceConnected");
if (isDeviceConnected == true) {
if (state == true)
state = false;
else{
setState(() {
isdev=true;
});
showSnackbar("Internet Connected", whiteColor, Colors.green, false);}
} else {
{
setState(() {
isdev=false;
});
showSnackbar(
"No Internet Connection", whiteColor, primaryColor, true);
}
}
});
}
}
showSnackbar(text, Color color, Color backgroundColor, bool check) {
if (check == false) {
rootScaffoldMessengerKey.currentState
..hideCurrentSnackBar()
..showSnackBar(SnackBar(
content: Text(
'$text',
style: TextStyle(color: color),
),
backgroundColor: backgroundColor,
duration: Duration(seconds: 2),
));
} else if (check == true) {
rootScaffoldMessengerKey.currentState
..hideCurrentSnackBar()
..showSnackBar(SnackBar(
content: Text(
'$text',
style: TextStyle(color: color),
),
backgroundColor: backgroundColor,
duration: Duration(days: 1),
));
}
}
@override
Widget build(BuildContext context) {
// SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => AuthProvider()..isUserLogedIn()),
],
child: MaterialApp(
scaffoldMessengerKey: rootScaffoldMessengerKey,
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
theme: ThemeData(
accentColor: primaryColor,
primaryColor: primaryColor,
scaffoldBackgroundColor: Colors.white,
textTheme: TextTheme(
bodyText1: TextStyle(color: secondaryColor),
bodyText2: TextStyle(color: secondaryColor), //Text
)),
onGenerateRoute: Routers.generateRoute,
home: Scaffold(
body: Consumer<AuthProvider>(
builder: (context, auth, child) {
if (auth.loggedInStatus == Status.Authenticating)
return SplashScreen();
else if (auth.loggedInStatus == Status.LoggedIn) {
print("thiddfdfbkdfkbndfkn $isdev");
return HomeIndex(state:isdev);
} else
return SignInScreen();
},
),
),
),
);
}
}
Original article source at: https://pub.dev/packages/vdotok_connect
1657927260
A plugin library that exposes platform specific date, time and picker popups. It uses the native iOS 14 UIKit UIDatePicker and SwiftUI like Picker on iOS and the corresponding material pickers on other platforms.
First import it in your Dart code:
import 'package:uipickers/uipickers.dart';
Then select one of the following widgets:
The AdaptiveDatePicker is used for selecting a date or time. It displays the currently selected date/time in its widget. On iOS it will use a native iOS 14 style UIDatePicker. The initialDate property sets the currently selected date, firstDate is the earliest allowable date and lastDate is the latest allowable date. The onChanged event handler is called when the user selects an item from the popup:
DateTime selectedDate = DateTime.now();
//...
AdaptiveDatePicker(
initialDate: selectedDate,
firstDate: DateTime.now(),
lastDate: DateTime.now().add(Duration(days: 10)),
onChanged: (date) { setState(() => selectedDate = date); },
)
Warning: The size of the widget should be constrained. For example it could be wrapped inside a SizedBox:
SizedBox(width: 150, height: 34,
child: AdaptiveDatePicker(
//...
)
)
In order to use the native version explicitly, just set the type property to cupertino, or replace AdaptiveDatePicker with UIDatePicker:
AdaptiveDatePicker(
type: AdaptiveDatePickerType.cupertino,
//...
)
The tintColor property is specific for UIDatePicker. It changes the highlighted text color:
UIDatePicker(
tintColor: UIColors.red,
//...
)
There are various attributes to customize, for example backgroundColor, cornerRadius, borderColor, etc.:
AdaptiveDatePicker(
backgroundColor: Colors.blue[50]!,
borderColor: Colors.blue[800]!,
borderWidth: 3,
cornerRadius: 4,
items: items,
value: selectedItem,
onChanged: (value) { setState(() => selectedItem = value); },
);
The AdaptivePicker widget allows automatic selection of the underlying widget implementation based on the operating system. On iOS it will use a SwiftUI like picker based on UIButton+UIMenu. The value property sets the currently selected item index, and the onChanged event handler is called when the user selects an item from the popup:
int selectedItem = 1;
var items = [ 'one', 'two', 'three' ];
//...
AdaptivePicker(
items: items,
value: selectedItem,
onChanged: (value) { setState(() => selectedItem = value); }
)
Warning: The size of the widget should be constrained. For example it could be wrapped inside a SizedBox:
SizedBox(width: 150, height: 34,
child: AdaptiveDatePicker(
//...
)
)
In order to use the native version explicitly, just set the type property to cupertino, or replace AdaptivePicker with UIPicker:
AdaptivePicker(
type: AdaptivePickerType.cupertino,
//...
)
There are various attributes to customize, for example backgroundColor, cornerRadius, borderColor, etc.:
UIPicker(
backgroundColor: Colors.blue[50]!,
borderColor: Colors.blue[800]!,
borderWidth: 3,
cornerRadius: 4,
items: items,
value: selectedItem,
onChanged: (value) { setState(() => selectedItem = value); },
);
Run this command:
With Flutter:
$ flutter pub add uipickers
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
uipickers: ^0.0.8
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:uipickers/uipickers.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:uipickers/uipickers.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
int selectedItem = 0;
DateTime selectedDate = DateTime.now();
final key1 = GlobalKey();
final key2 = GlobalKey();
final items = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Padding(
padding: const EdgeInsets.fromLTRB(100, 140, 20, 20),
child: Column(children: [
SizedBox(
width: 150,
height: 34,
child: AdaptivePicker(
key: key1,
type: AdaptivePickerType.material,
items: items,
value: selectedItem,
onChanged: (val) {
setState(() {
selectedItem = val ?? 0;
selectedDate = DateTime.now()
.add(Duration(days: selectedItem));
});
})),
const SizedBox(height: 12),
SizedBox(
width: 150,
height: 34,
child: AdaptiveDatePicker(
key: key2,
type: AdaptiveDatePickerType.material,
initialDate: selectedDate,
firstDate: DateTime.now(),
lastDate: DateTime.now().add(const Duration(days: 10)),
onChanged: (date) {
setState(() {
selectedDate = date;
selectedItem =
daysBetween(DateTime.now(), selectedDate);
});
},
))
]))));
}
int daysBetween(DateTime from, DateTime to) {
var fromD = DateTime(from.year, from.month, from.day);
var toD = DateTime(to.year, to.month, to.day);
return (toD.difference(fromD).inHours / 24).round();
}
}
Original article source at: https://pub.dev/packages/uipickers
1657892940
The platform interface for the analytics module of Amplify Flutter.
Run this command:
With Flutter:
$ flutter pub add amplify_analytics_plugin_interface
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
amplify_analytics_plugin_interface: ^0.5.1
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:amplify_analytics_plugin_interface/amplify_analytics_plugin_interface.dart';
Original article source at: https://pub.dev/packages/amplify_analytics_plugin_interface
1657877880
A new Flutter project.
Run this command:
With Flutter:
$ flutter pub add testdialogplugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
testdialogplugin: ^0.0.1
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:testdialogplugin/testdialogplugin.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:testdialogplugin/testdialogplugin.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
@override
void initState() {
super.initState();
initPlatformState();
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
String platformVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
// We also handle the message potentially returning null.
try {
platformVersion =
await Testdialogplugin.platformVersionDialog ?? 'Unknown platform version';
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Text('Running on: $_platformVersion\n'),
),
),
);
}
}
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
=======
DialogPluginFlutter
DialogPluginFlutter
26927643364523a0ba3d35962dc2b55a3923e516+
Original article source at: https://pub.dev/packages/testdialogplugin
1657837320
NetBeans CakePHP3/4 Plugin
This plugin provides support for CakePHP3/4.
You can update to the new version by the same way as the install. You don't have to uninstall the old version.
Enabled
If you just installed Cake3/4 via Composer, you don't have to do anything.
Use when your CakePHP app directory exists in your php project as a subdirectory.
e.g. set app
to Root setting like the following case:
source directory
├── foo
├── bar
└── app
├── README.md
├── bin
├── composer.json
├── composer.lock
├── config
├── index.php
├── logs
├── phpunit.xml.dist
├── plugins
├── src
├── tests
├── tmp
├── vendor
└── webroot
The same as App settings of config/app.php
Support them using .cake
file.
.cake
file.cake
filehome.ctp [Pages]
Component
// in your Controller e.g. SomeController or AppController
public $components = ['Foo', 'My.Bar', 'Bar' => ['className' => 'MyBar'] ];
public initialize() {
$this->loadComponent('Foo');
$this->laodComponent('Bar', ['className' => 'MyBar']);
}
// in your Controller
$this->[Ctrl+Space]
Helper
// in your Controller e.g. SomeController or AppController
public $helpers = ['Foo', 'My.Bar', 'Bar' => ['className' => 'MyBar'] ];
// in your template file e.g. index.ctp
$this->[Ctrl+Space]
Table
// in your Controller e.g. SomeController
$this->loadModel('Users');
// in your Controller
$this->[Ctrl+Space]
Please add @property
to your table class if you want to use like the following:
// e.g. BookmarksTable
/**
* @property \App\Model\Table\TagsTable $Tags
*/
class BookmarksTable extends Table {
}
$this->Bookmarks->Tags->[Ctrl+Space]
Method Parameters
// e.g. path/to/your/template/index.ctp
// file path completion
$this->Html->css('[Ctrl+Space]');
// constants
$this->Html->docType('[Ctrl+Space]');
NOTE Please add a semicolon(;) if you want to use code completions for parameters. Tips: You can add it like the following: Ctrl+;
This feature is not enabled by default. If you want to use it, please set the KeyMap to it. (Tools > Options > Keymap > Search CakePHP
> CakePHP3/4: Smart Go To > e.g. set Ctrl + Shift + J)
Files related to the current editor are shown when you run this action. e.g. If your current file is a Controller, template, table, entity, testcase, conponent and helper file(s) will be shown.
You can change a list to specific category's one like the following. (Ctrl is a Ctrl or Command key)
NOTE Core files are not shown (e.g. HtmlHelper, AuthComponent, e.t.c.)
You can use the .cake if you want to use the specified directories for Controller, Table, Template, e.t.c.. The file format is the following:
{
"cake": ".\/vendor\/cakephp\/cakephp",
"build_path": {
"entities": [
".\/src\/Model\/Entity\/"
],
"tables": [
".\/src\/Model\/Table\/"
],
"behaviors": [
".\/src\/Model\/Behavior\/"
],
"controllers": [
".\/src\/Controller\/"
],
"components": [
".\/src\/Controller\/Component\/"
],
"templates": [
".\/src\/Template\/"
],
"views": [
".\/src\/View\/"
],
"helpers": [
".\/src\/View\/Helper\/"
],
"consoles": [
".\/src\/Console\/"
],
"shells": [
".\/src\/Shell\/"
],
"tasks": [
".\/src\/Shell\/Task\/"
],
"locales": [
".\/src\/Locale\/"
],
"vendors": [
".\/vendor\/"
],
"plugins": [
".\/plugins\/"
]
}
}
NOTE It is not available in any categories.
You can add some directories(nodes) under the your project tree. Controller, Model, e.t.c. are shown by default. If you want to hide/show them, please change the options.(Tools > Options > PHP > Frameworks and Tools > CakePHP3/4 > Custom nodes)
Right-click a project > CakePHP3/4
All commands will be shown as a list in the command dialog. Then you can run a command with some parameters.
Just run cake server
. If you want to set details, please use Run Configuration
of project properties.
Please run this action after you changed the .cake
file or you updated the version of CakePHP. Refresh the version number and category paths.
If you have issues, please submit them to GitHub Issues . Please don't create PRs soon.
Author: junichi11
Source Code: https://github.com/junichi11/cakephp3-netbeans
License: Apache-2.0 license
1657829880
A plugin to discover and manage CakePHP plugins and generate skeleton application code.
You can install this plugin into your CakePHP application using composer.
The recommended way to install composer packages is:
composer require --dev cakedc/mixer
Ensure Mixer Plugin is loaded in your config/bootstrap.php file
if (Configure::read('debug')) {
Plugin::load('CakeDC/Mixer', ['bootstrap' => true, 'routes' => true]);
}
Now you can navigate to your app /mixer
URL and start discovery and managing your plugins! It searches through all packages on Packagist with type "cakephp-plugin" excluding CakePHP 2.x packages.
Attention: we don't want you to use Mixer in production. That's why we're asking to add it to require-dev
composer.json section and it will only work when debug
is on.
For bugs and feature requests, please use the issues section of this repository.
Commercial support is also available, contact us for more information.
This repository follows the CakeDC Plugin Standard. If you'd like to contribute new features, enhancements or bug fixes to the plugin, please read our Contribution Guidelines for detailed instructions.
Author: CakeDC
Source Code: https://github.com/CakeDC/mixer
License: View license