浏览代码

Update features

Vishnu Mohandas 4 年之前
父节点
当前提交
1f6a0ebecc
共有 3 个文件被更改,包括 75 次插入155 次删除
  1. 二进制
      assets/preserved.png
  2. 二进制
      assets/synced.png
  3. 75 155
      lib/ui/landing_page.dart

二进制
assets/preserved.png


二进制
assets/synced.png


+ 75 - 155
lib/ui/landing_page.dart

@@ -176,9 +176,18 @@ class _LandingPageState extends State<LandingPage> {
       constraints: BoxConstraints(maxHeight: 320),
       child: PageView(
         children: [
-          _getProtectedFeature(),
-          _getPreservedFeature(),
-          _getAccessibleFeature(),
+          FeatureItemWidget(
+              "assets/protected.png",
+              "protected",
+              "end-to-end encrypted with your password,",
+              "visible only to you"),
+          FeatureItemWidget("assets/synced.png", "synced",
+              "available across all your devices,", "web, android and ios"),
+          FeatureItemWidget(
+              "assets/preserved.png",
+              "preserved",
+              "reliably replicated to a fallout shelter,",
+              "designed to outlive"),
         ],
         onPageChanged: (index) {
           setState(() {
@@ -189,158 +198,6 @@ class _LandingPageState extends State<LandingPage> {
     );
   }
 
-  Widget _getProtectedFeature() {
-    return Container(
-      child: Column(
-        crossAxisAlignment: CrossAxisAlignment.stretch,
-        children: [
-          Image.asset(
-            "assets/protected.png",
-            height: 170,
-          ),
-          Padding(padding: EdgeInsets.all(16)),
-          Container(
-            child: Column(
-              crossAxisAlignment: CrossAxisAlignment.center,
-              mainAxisAlignment: MainAxisAlignment.start,
-              children: [
-                Text(
-                  "protected",
-                  style: TextStyle(
-                    fontSize: 18,
-                    fontWeight: FontWeight.bold,
-                    color: Theme.of(context).buttonColor,
-                  ),
-                ),
-                Padding(padding: EdgeInsets.all(12)),
-                Container(
-                  child: Text(
-                    "end-to-end encrypted with your password,",
-                    textAlign: TextAlign.center,
-                    style: TextStyle(
-                      color: Colors.white.withOpacity(0.9),
-                    ),
-                  ),
-                ),
-                Padding(padding: EdgeInsets.all(2)),
-                Container(
-                  child: Text(
-                    "visible only to you",
-                    textAlign: TextAlign.center,
-                    style: TextStyle(
-                      color: Colors.white.withOpacity(0.9),
-                    ),
-                  ),
-                ),
-              ],
-            ),
-          ),
-        ],
-      ),
-    );
-  }
-
-  Widget _getPreservedFeature() {
-    return Container(
-      child: Column(
-        crossAxisAlignment: CrossAxisAlignment.stretch,
-        children: [
-          Image.asset(
-            "assets/protected.png",
-            height: 170,
-          ),
-          Padding(padding: EdgeInsets.all(10)),
-          Container(
-            child: Column(
-              crossAxisAlignment: CrossAxisAlignment.center,
-              mainAxisAlignment: MainAxisAlignment.start,
-              children: [
-                Text(
-                  "preserved",
-                  style: TextStyle(
-                    fontSize: 16,
-                    fontWeight: FontWeight.bold,
-                  ),
-                ),
-                Padding(padding: EdgeInsets.all(6)),
-                Container(
-                  child: Text(
-                    "reliably saved to multiple locations,",
-                    textAlign: TextAlign.center,
-                    style: TextStyle(
-                      color: Colors.white70,
-                    ),
-                  ),
-                ),
-                Padding(padding: EdgeInsets.all(2)),
-                Container(
-                  child: Text(
-                    "including a fallout shelter",
-                    textAlign: TextAlign.center,
-                    style: TextStyle(
-                      color: Colors.white70,
-                    ),
-                  ),
-                ),
-              ],
-            ),
-          ),
-        ],
-      ),
-    );
-  }
-
-  Widget _getAccessibleFeature() {
-    return Container(
-      child: Column(
-        crossAxisAlignment: CrossAxisAlignment.stretch,
-        children: [
-          Image.asset(
-            "assets/protected.png",
-            height: 170,
-          ),
-          Padding(padding: EdgeInsets.all(10)),
-          Container(
-            child: Column(
-              crossAxisAlignment: CrossAxisAlignment.center,
-              mainAxisAlignment: MainAxisAlignment.start,
-              children: [
-                Text(
-                  "accessible",
-                  style: TextStyle(
-                    fontSize: 16,
-                    fontWeight: FontWeight.bold,
-                  ),
-                  textAlign: TextAlign.center,
-                ),
-                Padding(padding: EdgeInsets.all(6)),
-                Container(
-                  child: Text(
-                    "available on all your devices,",
-                    textAlign: TextAlign.center,
-                    style: TextStyle(
-                      color: Colors.white70,
-                    ),
-                  ),
-                ),
-              ],
-            ),
-          ),
-          Padding(padding: EdgeInsets.all(2)),
-          Container(
-            child: Text(
-              "android, ios and desktop",
-              textAlign: TextAlign.center,
-              style: TextStyle(
-                color: Colors.white70,
-              ),
-            ),
-          ),
-        ],
-      ),
-    );
-  }
-
   void _navigateToSignUpPage() {
     var page;
     if (Configuration.instance.getToken() == null) {
@@ -393,3 +250,66 @@ class _LandingPageState extends State<LandingPage> {
     );
   }
 }
+
+class FeatureItemWidget extends StatelessWidget {
+  final String assetPath, featureTitle, firstLine, secondLine;
+  const FeatureItemWidget(
+    this.assetPath,
+    this.featureTitle,
+    this.firstLine,
+    this.secondLine, {
+    Key key,
+  }) : super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
+    return Container(
+      child: Column(
+        crossAxisAlignment: CrossAxisAlignment.stretch,
+        children: [
+          Image.asset(
+            assetPath,
+            height: 170,
+          ),
+          Padding(padding: EdgeInsets.all(16)),
+          Container(
+            child: Column(
+              crossAxisAlignment: CrossAxisAlignment.center,
+              mainAxisAlignment: MainAxisAlignment.start,
+              children: [
+                Text(
+                  featureTitle,
+                  style: TextStyle(
+                    fontSize: 18,
+                    fontWeight: FontWeight.bold,
+                    color: Theme.of(context).buttonColor,
+                  ),
+                ),
+                Padding(padding: EdgeInsets.all(12)),
+                Container(
+                  child: Text(
+                    firstLine,
+                    textAlign: TextAlign.center,
+                    style: TextStyle(
+                      color: Colors.white.withOpacity(0.9),
+                    ),
+                  ),
+                ),
+                Padding(padding: EdgeInsets.all(2)),
+                Container(
+                  child: Text(
+                    secondLine,
+                    textAlign: TextAlign.center,
+                    style: TextStyle(
+                      color: Colors.white.withOpacity(0.9),
+                    ),
+                  ),
+                ),
+              ],
+            ),
+          ),
+        ],
+      ),
+    );
+  }
+}