obscured_preferences 0.1.0 copy "obscured_preferences: ^0.1.0" to clipboard
obscured_preferences: ^0.1.0 copied to clipboard

The package uses shared_preferences and encrypt packages to encrypt values stored in shared preferences.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:obscured_preferences/obscured_preferences.dart';

const STR_KEY = "StrKey";
const BOOL_KEY = "BoolKey";
const INT_KEY = "IntKey";
const DOUBLE_KEY = "DoubleKey";
const STR_LIST_KEY = "StrListKey";

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PrefsPage(),
    );
  }
}

class PrefsPage extends StatefulWidget {
  @override
  PrefsPageState createState() => PrefsPageState();
}

class PrefsPageState extends State<PrefsPage> {
  ObscuredPrefs _prefs;

  List<String> _randomList = ['Hello', 'One', 'Flutter', 'World'];

  String _savedStringValue;
  bool _savedBoolValue;
  int _savedIntValue;
  double _savedDoubleValue;
  List<String> _savedStringListValue = [];

  @override
  void initState() {
    super.initState();
    _initPrefs();
  }

  void _initPrefs() async {
    _prefs = await ObscuredPrefs.getInstance();
    setState(() {
      _savedStringValue = _prefs.getString(STR_KEY);
      _savedBoolValue = _prefs.getBool(BOOL_KEY);
      _savedIntValue = _prefs.getInt(INT_KEY);
      _savedDoubleValue = _prefs.getDouble(DOUBLE_KEY);
      _savedStringListValue = _prefs.getStringList(STR_LIST_KEY) ?? [];
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(
          "Obscured Prefs",
        ),
      ),
      body: SingleChildScrollView(
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              TextField(
                decoration: InputDecoration(
                  labelText: "String Value",
                ),
                onSubmitted: _onSaveStringPressed,
              ),
              Text(
                "Saved String: $_savedStringValue",
              ),
              _savedBoolValue == null
                  ? Text("Bool value not saved")
                  : SizedBox(
                      width: 0,
                      height: 0,
                    ),
              Switch(
                value: _savedBoolValue ?? false,
                onChanged: _onSaveBoolPressed,
              ),
              TextField(
                decoration: InputDecoration(
                  labelText: "Int Value",
                ),
                onSubmitted: _onSaveIntPressed,
                keyboardType: TextInputType.numberWithOptions(
                  signed: true,
                ),
              ),
              Text(
                "Saved Int: $_savedIntValue",
              ),
              TextField(
                decoration: InputDecoration(
                  labelText: "Double Value",
                ),
                onSubmitted: _onSaveDoublePressed,
                keyboardType: TextInputType.numberWithOptions(
                  signed: true,
                  decimal: true,
                ),
              ),
              Text(
                "Saved Double: $_savedDoubleValue",
              ),
              RaisedButton(
                onPressed: _onSaveStringListPressed,
                color: Colors.blue,
                child: Text(
                  "Save List",
                  style: TextStyle(
                    color: Colors.white,
                  ),
                ),
              ),
              Container(
                height: 100,
                child: ListView(
                  children: _savedStringListValue
                      .map((s) => ListTile(
                            title: Text(s),
                          ))
                      .toList(),
                ),
              )
            ],
          ),
        ),
      ),
    );
  }

  void _onSaveStringPressed(String value) async {
    if (_prefs != null) {
      await _prefs.setString(STR_KEY, value);
    }
    setState(() {
      _savedStringValue = _prefs.getString(STR_KEY);
    });
  }

  void _onSaveStringListPressed() async {
    if (_prefs != null) {
      await _prefs.setStringList(STR_LIST_KEY, _randomList);
    }
    setState(() {
      _savedStringListValue = _prefs.getStringList(STR_LIST_KEY);
    });
  }

  void _onSaveIntPressed(String value) async {
    if (_prefs != null) {
      await _prefs.setInt(INT_KEY, int.tryParse(value));
    }
    setState(() {
      _savedIntValue = _prefs.getInt(INT_KEY);
    });
  }

  void _onSaveDoublePressed(String value) async {
    if (_prefs != null) {
      await _prefs.setDouble(DOUBLE_KEY, double.tryParse(value));
    }
    setState(() {
      _savedDoubleValue = _prefs.getDouble(DOUBLE_KEY);
    });
  }

  void _onSaveBoolPressed(bool value) async {
    if (_prefs != null) {
      await _prefs.setBool(BOOL_KEY, value);
    }
    setState(() {
      _savedBoolValue = _prefs.getBool(BOOL_KEY);
    });
  }
}
6
likes
40
pub points
0%
popularity

Publisher

unverified uploader

The package uses shared_preferences and encrypt packages to encrypt values stored in shared preferences.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

encrypt, flutter, shared_preferences

More

Packages that depend on obscured_preferences