added: implemented shared_preferences plugin in persist_key_value example

This commit is contained in:
Nishant Srivastava
2018-08-07 01:11:10 +02:00
parent 1bfa214477
commit 6d0c12ea4f
2 changed files with 232 additions and 45 deletions

View File

@ -2,13 +2,9 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="c53a8206-78cc-43cb-ac2b-1cf6a52e2018" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/libraries/Dart_Packages.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Dart_Packages.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ios/Flutter/Debug.xcconfig" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Flutter/Debug.xcconfig" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ios/Flutter/Release.xcconfig" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Flutter/Release.xcconfig" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/MyCounter.dart" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/lib/main.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/main.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pubspec.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/pubspec.yaml" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@ -27,8 +23,8 @@
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="dart" value="2" />
<entry key="gradle" value="1" />
<entry key="dart" value="4" />
<entry key="gradle" value="3" />
<entry key="iml" value="1" />
<entry key="lock" value="1" />
<entry key="packages" value="1" />
@ -37,8 +33,8 @@
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key="Dart" value="2" />
<entry key="Groovy" value="1" />
<entry key="Dart" value="4" />
<entry key="Groovy" value="3" />
<entry key="IDEA_MODULE" value="1" />
<entry key="PLAIN_TEXT" value="2" />
<entry key="YAML" value="1" />
@ -46,13 +42,15 @@
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="dart" value="415" />
<entry key="dart" value="1347" />
<entry key="gradle" value="4" />
<entry key="yaml" value="10" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="Dart" value="415" />
<entry key="Dart" value="1347" />
<entry key="Groovy" value="4" />
<entry key="YAML" value="10" />
</counts>
</usages-collector>
@ -63,8 +61,8 @@
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/lib/main.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="20" column="23" lean-forward="true" selection-start-line="20" selection-start-column="23" selection-end-line="20" selection-end-column="23" />
<state relative-caret-position="323">
<caret line="37" column="41" lean-forward="true" selection-start-line="37" selection-start-column="41" selection-end-line="37" selection-end-column="41" />
<folding>
<element signature="e#0#39#0" expanded="true" />
</folding>
@ -72,17 +70,15 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pubspec.yaml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Dart File" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
</component>
@ -91,6 +87,8 @@
<list>
<option value="$PROJECT_DIR$/test/widget_test.dart" />
<option value="$PROJECT_DIR$/pubspec.yaml" />
<option value="$PROJECT_DIR$/android/app/build.gradle" />
<option value="$PROJECT_DIR$/lib/MyCounter.dart" />
<option value="$PROJECT_DIR$/lib/main.dart" />
</list>
</option>
@ -100,7 +98,9 @@
<option name="width" value="1440" />
<option name="height" value="811" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
@ -120,6 +120,17 @@
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
<item name="android" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="persist_key_value" type="b2602c69:ProjectViewProjectNode" />
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
<item name="android" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="persist_key_value" type="b2602c69:ProjectViewProjectNode" />
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
<item name="lib" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="persist_key_value" type="b2602c69:ProjectViewProjectNode" />
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
@ -133,9 +144,12 @@
</panes>
</component>
<component name="PropertiesComponent">
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1533592102787" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1533596990709" />
<property name="dart.analysis.tool.window.force.activate" value="false" />
<property name="io.flutter.reload.alreadyRun" value="true" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.0" />
<property name="show.migrate.to.gradle.popup" value="false" />
</component>
<component name="RunDashboard">
@ -165,6 +179,7 @@
</component>
<component name="ToolWindowManager">
<frame x="0" y="23" width="1440" height="804" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Designer" />
<window_info id="Build Variants" side_tool="true" />
@ -221,17 +236,42 @@
<entry file="file://$PROJECT_DIR$/pubspec.yaml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
<caret line="10" selection-start-line="10" selection-end-line="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234">
<caret line="27" lean-forward="true" selection-start-line="27" selection-end-line="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android/build.gradle">
<provider selected="true" editor-type-id="text-editor" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="12" selection-start-line="12" selection-end-line="12" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/sdks/flutter_sdk/.pub-cache/hosted/pub.dartlang.org/shared_preferences-0.4.2/lib/shared_preferences.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="151">
<caret line="88" column="15" selection-start-line="88" selection-start-column="15" selection-end-line="88" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/MyCounter.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="165">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/main.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="20" column="23" lean-forward="true" selection-start-line="20" selection-start-column="23" selection-end-line="20" selection-end-column="23" />
<state relative-caret-position="323">
<caret line="37" column="41" lean-forward="true" selection-start-line="37" selection-start-column="41" selection-end-line="37" selection-end-column="41" />
<folding>
<element signature="e#0#39#0" expanded="true" />
</folding>
@ -241,6 +281,65 @@
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>Android</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>persist_key_value_android</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectJDKs.UI">
<settings>
<splitter-proportions>
@ -252,6 +351,18 @@
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>Dart Packages</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

View File

@ -1,25 +1,101 @@
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(new MaterialApp(
// Disable the debug flag
debugShowCheckedModeBanner: false,
// Home
home: new MyHome()));
}
class MyHome extends StatefulWidget {
@override
MyHomeState createState() {
return new MyHomeState();
}
}
class MyHomeState extends State<MyHome> {
var nameOfApp = "Persist Key Value";
runApp(new MaterialApp(
// Title
title: nameOfApp,
// Home
home: new Scaffold(
// Appbar
appBar: new AppBar(
// Title
title: new Text(nameOfApp),
),
// Body
body: new Container(
// Center the content
child: new Center(
// Add Text
child: new Text("Hello World!"),
var counter = 0;
// define a key to use later
var key = "counter";
@override
void initState() {
super.initState();
_loadSavedData();
}
_loadSavedData() async {
// Get shared preference instance
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
// Get value
counter = (prefs.getInt(key) ?? 0);
});
}
_onIncrementHit() async {
// Get shared preference instance
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
// Get value
counter = (prefs.getInt(key) ?? 0) + 1;
});
// Save Value
prefs.setInt(key, counter);
}
_onDecrementHit() async {
// Get shared preference instance
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
// Get value
counter = (prefs.getInt(key) ?? 0) - 1;
});
// Save Value
prefs.setInt(key, counter);
}
@override
Widget build(BuildContext context) {
return new Scaffold(
// Appbar
appBar: new AppBar(
// Title
title: new Text(nameOfApp),
),
// Body
body: new Container(
// Center the content
child: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(
'$counter',
textScaleFactor: 10.0,
),
new Padding(padding: new EdgeInsets.all(10.0)),
new RaisedButton(
onPressed: _onIncrementHit,
child: new Text('Increment Counter')),
new Padding(padding: new EdgeInsets.all(10.0)),
new RaisedButton(
onPressed: _onDecrementHit,
child: new Text('Decrement Counter')),
],
),
),
)));
),
);
}
}