diff --git a/.gradle/6.1/executionHistory/executionHistory.lock b/.gradle/6.1/executionHistory/executionHistory.lock
deleted file mode 100644
index d10cb2ef929a9a07707ae5ef8ef3b31e4b396a64..0000000000000000000000000000000000000000
Binary files a/.gradle/6.1/executionHistory/executionHistory.lock and /dev/null differ
diff --git a/.gradle/6.1/fileChanges/last-build.bin b/.gradle/6.1/fileChanges/last-build.bin
deleted file mode 100644
index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000
Binary files a/.gradle/6.1/fileChanges/last-build.bin and /dev/null differ
diff --git a/.gradle/6.1/fileHashes/fileHashes.lock b/.gradle/6.1/fileHashes/fileHashes.lock
deleted file mode 100644
index 9304040eeced1877738d0cda2b088394a30f2113..0000000000000000000000000000000000000000
Binary files a/.gradle/6.1/fileHashes/fileHashes.lock and /dev/null differ
diff --git a/.gradle/6.1/gc.properties b/.gradle/6.1/gc.properties
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
deleted file mode 100644
index 14d7953d3fa0c5cdf272933d53fe6f18ca5846be..0000000000000000000000000000000000000000
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
deleted file mode 100644
index 9512427f497547838a51014c0b039ea400d454a4..0000000000000000000000000000000000000000
--- a/.gradle/buildOutputCleanup/cache.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-#Thu May 07 12:19:30 ICT 2020
-gradle.version=6.1
diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock
deleted file mode 100644
index e1f12e4944159203f62b3ab768b3c8d9740f118b..0000000000000000000000000000000000000000
Binary files a/.gradle/checksums/checksums.lock and /dev/null differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/android/fastlane/metadata/android/id/changelogs/changelogs.txt b/android/fastlane/metadata/android/id/changelogs/changelogs.txt
index f2c4a99caeb079d2d27b8a04a8dcbd421633cd3e..119c240548579f3c2c5a078ff8d473549933303d 100644
--- a/android/fastlane/metadata/android/id/changelogs/changelogs.txt
+++ b/android/fastlane/metadata/android/id/changelogs/changelogs.txt
@@ -1 +1 @@
-Add donation
\ No newline at end of file
+Update layout
\ No newline at end of file
diff --git a/lib/Component/router.dart b/lib/Component/router.dart
index 2cf4160f0593c37550693d535393a71bcc397d4e..30b2e357d572a0281d0a28247706df39194f92ef 100644
--- a/lib/Component/router.dart
+++ b/lib/Component/router.dart
@@ -15,6 +15,7 @@ import 'package:home_industry/Pages/Product/subcategory_page.dart';
 import 'package:home_industry/Pages/ProductPayment/bloc/bloc.dart';
 import 'package:home_industry/Pages/ProductPayment/product_payment.dart';
 import 'package:home_industry/Pages/ProductPayment/repositories/payment_repository.dart';
+import 'package:home_industry/Pages/Profile/bloc/profile_bloc.dart';
 import 'package:home_industry/Pages/Profile/edit_profile.dart';
 import 'package:home_industry/Pages/Program/detail_program.dart';
 import 'package:home_industry/Pages/Program/program_page.dart';
@@ -93,7 +94,8 @@ class Router {
                     SummaryRepository(
                         RepositoryProvider.of<DependenciesRepositories>(context)
                             .dio),
-                    BlocProvider.of<CartBloc>(context))
+                    BlocProvider.of<CartBloc>(context),
+                    BlocProvider.of<ProfileBloc>(context))
                   ..add(const FetchSummary()),
                 child: const SummaryView()));
 
diff --git a/lib/Pages/Cart/bloc/cart_bloc.dart b/lib/Pages/Cart/bloc/cart_bloc.dart
index 7641f7e058da0f8922809c053de0d997b912075e..74416da82daedf180b531eb280165bb6057ac934 100644
--- a/lib/Pages/Cart/bloc/cart_bloc.dart
+++ b/lib/Pages/Cart/bloc/cart_bloc.dart
@@ -81,7 +81,7 @@ class CartBloc extends Bloc<CartEvent, CartState> {
 
   @override
   Future<void> close() {
-    authSubscription.cancel();
+    authSubscription?.cancel();
     return super.close();
   }
 }
diff --git a/lib/Pages/Cart/cart.dart b/lib/Pages/Cart/cart.dart
index d7a4c038c6220955e5f66b72ee1650dfb7873f89..92c2256428c1e0fc43a7a77bd447f45415867aba 100644
--- a/lib/Pages/Cart/cart.dart
+++ b/lib/Pages/Cart/cart.dart
@@ -340,7 +340,8 @@ class _ModalCartItem extends StatelessWidget {
                                         Text(
                                           cartItem.product.preOrder
                                               ? 'Preorder'
-                                              : 'Stok: ${cartItem.product.stock}',
+                                              : 'Stok: '
+                                                  '${cartItem.product.stock}',
                                           style: const TextStyle(fontSize: 17),
                                         )
                                       ],
diff --git a/lib/Pages/Login/login.dart b/lib/Pages/Login/login.dart
index 7ceaf19f389df94f71032e3bd49fc3a3b9190455..1a36aa46e1ee8f25b661401cfd4cfe1488ef6869 100644
--- a/lib/Pages/Login/login.dart
+++ b/lib/Pages/Login/login.dart
@@ -60,9 +60,7 @@ class Login extends StatelessWidget {
                     mainAxisAlignment: MainAxisAlignment.center,
                     children: const <Widget>[
                       HomeIndustryLogo(),
-                      Spacer(
-                        flex: 1,
-                      ),
+                      Spacer(),
                       Text(
                         'Selamat Datang',
                         style: TextStyle(
@@ -72,9 +70,7 @@ class Login extends StatelessWidget {
                         flex: 2,
                       ),
                       TabBarLogin(),
-                      Spacer(
-                        flex: 1,
-                      ),
+                      Spacer(),
                       RegistrasiButton()
                     ],
                   ),
diff --git a/lib/Pages/Product/component/product_item_list.dart b/lib/Pages/Product/component/product_item_list.dart
index f82b31f1f0483c7d1f0dd23b1ca677c50cfb2056..bf2d3a97ed24e0db3b0a49ec795297d04fdb08de 100644
--- a/lib/Pages/Product/component/product_item_list.dart
+++ b/lib/Pages/Product/component/product_item_list.dart
@@ -80,7 +80,6 @@ class _ProductDescription extends StatelessWidget {
           ),
         ),
         Expanded(
-          flex: 1,
           child: Padding(
             padding: const EdgeInsets.only(right: 10),
             child: Stack(
diff --git a/lib/Pages/ProductPayment/product_payment.dart b/lib/Pages/ProductPayment/product_payment.dart
index 3923e1aa7f3dca523a63dbe52cb7889aac4eb72d..da5831e89cc6716f16162831516775c4a1634163 100644
--- a/lib/Pages/ProductPayment/product_payment.dart
+++ b/lib/Pages/ProductPayment/product_payment.dart
@@ -211,14 +211,12 @@ class __PaymentBodyState extends State<_PaymentBody> {
       mainAxisAlignment: MainAxisAlignment.spaceAround,
       children: <Widget>[
         Flexible(
-          flex: 1,
           child: Text(
             'Nominal',
             style: Theme.of(context).textTheme.headline6,
           ),
         ),
         Flexible(
-          flex: 1,
           child: _SummaryBody(
             transaction: widget.transaction,
           ),
diff --git a/lib/Pages/Profile/bloc/profile_bloc.dart b/lib/Pages/Profile/bloc/profile_bloc.dart
index f27917bbbccb136eb46d1d0bd053c6b9f0c4847e..45cc3029239dca88f815cebe72650dfec5707d90 100644
--- a/lib/Pages/Profile/bloc/profile_bloc.dart
+++ b/lib/Pages/Profile/bloc/profile_bloc.dart
@@ -29,7 +29,7 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
 
   @override
   Future<void> close() {
-    authSubscription.cancel();
+    authSubscription?.cancel();
     return super.close();
   }
 
diff --git a/lib/Pages/Program/detail_program.dart b/lib/Pages/Program/detail_program.dart
index c28e22eb865b7146151c75b6bd77cbdb28214fbb..11b15d6d706d2881429ed9072c231ac83439e823 100644
--- a/lib/Pages/Program/detail_program.dart
+++ b/lib/Pages/Program/detail_program.dart
@@ -44,9 +44,7 @@ class DetailProgram extends StatelessWidget {
                             fontSize: 22, fontWeight: FontWeight.w800),
                       ),
                     ),
-                    const Spacer(
-                      flex: 1,
-                    ),
+                    const Spacer(),
                     Expanded(
                       flex: 15,
                       child: Column(
@@ -73,9 +71,7 @@ class DetailProgram extends StatelessWidget {
                         ],
                       ),
                     ),
-                    const Spacer(
-                      flex: 1,
-                    ),
+                    const Spacer(),
                     Expanded(
                       flex: 35,
                       child: Column(
@@ -95,9 +91,7 @@ class DetailProgram extends StatelessWidget {
                             maxLines: 8,
                             style: const TextStyle(fontSize: 17),
                           ),
-                          const Spacer(
-                            flex: 1,
-                          ),
+                          const Spacer(),
                           SizedBox(
                               width: double.infinity,
                               height: 45,
diff --git a/lib/Pages/Summary/bloc/summary_bloc.dart b/lib/Pages/Summary/bloc/summary_bloc.dart
index bcb7a38306261bb8e94b424759976751acc039ee..ffb67eafbe0b4fb0a250e72fa57cb22f007ba653 100644
--- a/lib/Pages/Summary/bloc/summary_bloc.dart
+++ b/lib/Pages/Summary/bloc/summary_bloc.dart
@@ -3,6 +3,7 @@ import 'dart:async';
 import 'package:bloc/bloc.dart';
 import 'package:home_industry/Exceptions/request_api_error.dart';
 import 'package:home_industry/Pages/Cart/bloc/bloc.dart';
+import 'package:home_industry/Pages/Profile/bloc/bloc.dart';
 import 'package:home_industry/Pages/Summary/repositories/summary_repository.dart';
 import 'package:home_industry/Pages/Transactions/model/payment_method.dart';
 
@@ -11,7 +12,15 @@ import './bloc.dart';
 class SummaryBloc extends Bloc<SummaryEvent, SummaryState> {
   final SummaryRepository _transactionRepository;
   final CartBloc _cartBloc;
-  SummaryBloc(this._transactionRepository, this._cartBloc);
+  final ProfileBloc _profileBloc;
+  StreamSubscription profileSubscription;
+  SummaryBloc(this._transactionRepository, this._cartBloc, this._profileBloc) {
+    profileSubscription = _profileBloc.listen((state) {
+      if (state is ProfileLoaded) {
+        add(const FetchSummary());
+      }
+    });
+  }
   @override
   SummaryState get initialState => const InitialSummaryState();
 
@@ -23,11 +32,19 @@ class SummaryBloc extends Bloc<SummaryEvent, SummaryState> {
     try {
       if (event is FetchSummary) {
         final response = await _transactionRepository.fetchSummary();
-        yield SummaryLoaded(
-            donation: 0,
-            feeTransport: double.parse(response.shippingCost),
-            subTotal: double.parse(response.itemSubtotal),
-            method: null);
+        if (currentState is SummaryLoaded) {
+          yield SummaryLoaded(
+              donation: currentState.donation,
+              feeTransport: double.parse(response.shippingCost),
+              subTotal: double.parse(response.itemSubtotal),
+              method: currentState.method);
+        } else {
+          yield SummaryLoaded(
+              donation: 0,
+              feeTransport: double.parse(response.shippingCost),
+              subTotal: double.parse(response.itemSubtotal),
+              method: null);
+        }
       } else if (currentState is SummaryLoaded) {
         if (event is AddDonation) {
           yield SummaryLoaded(
@@ -60,4 +77,10 @@ class SummaryBloc extends Bloc<SummaryEvent, SummaryState> {
       yield const SummaryError();
     }
   }
+
+  @override
+  Future<void> close() {
+    profileSubscription?.cancel();
+    return super.close();
+  }
 }
diff --git a/lib/Pages/Summary/summary_page.dart b/lib/Pages/Summary/summary_page.dart
index d8dcdf6a0a59cdbc5f9e7ccb1a0ad94384171c8a..8867370759a1a24fb7e1edd2fc809d61e0157547 100644
--- a/lib/Pages/Summary/summary_page.dart
+++ b/lib/Pages/Summary/summary_page.dart
@@ -45,8 +45,11 @@ class SummaryView extends StatelessWidget {
             return _Body(state: state);
           } else if (state is SummaryError) {
             return const Center(
-              child: Text('Mohon maaf sementara daerah anda belum'
-                  ' tersedia untuk pengiriman'),
+              child: Text(
+                'Mohon maaf sementara daerah anda belum'
+                ' tersedia untuk pengiriman',
+                textAlign: TextAlign.center,
+              ),
             );
           }
           return const Center(child: CustomCircularIndicator());
@@ -82,7 +85,7 @@ class _Body extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return ListView(
-      padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 2),
+      padding: const EdgeInsets.only(left: 10, right: 10, bottom: 60),
       children: <Widget>[
         const _Alamat(),
         const Divider(
@@ -119,7 +122,7 @@ class _BottomSheet extends StatelessWidget {
           borderRadius: const BorderRadius.only(
               topLeft: Radius.circular(10), topRight: Radius.circular(10))),
       width: double.infinity,
-      height: MediaQuery.of(context).size.height / 14,
+      height: 55,
       padding: const EdgeInsets.symmetric(horizontal: 10),
       child: Row(
         mainAxisAlignment: MainAxisAlignment.spaceAround,
diff --git a/lib/Pages/Transactions/my_detail_order.dart b/lib/Pages/Transactions/my_detail_order.dart
index f1af6be6ed657e66a858dd9eda4d566e8d828717..cfe2e8b36043dd7b6c48a3fc37f5541d879dc6a9 100644
--- a/lib/Pages/Transactions/my_detail_order.dart
+++ b/lib/Pages/Transactions/my_detail_order.dart
@@ -48,48 +48,9 @@ class MyDetailOrder extends StatelessWidget {
                   children: <Widget>[
                     if (state.transaction.transactionStatus ==
                         StatusTransaction.beingShipped)
-                      ButtonTheme(
-                        minWidth: MediaQuery.of(context).size.width / 1.7,
-                        child: BlueButton(
-                            onPressed: () {
-                              final detailOrderBloc =
-                                  BlocProvider.of<DetailOrderBloc>(context);
-                              showDialog(
-                                  context: context,
-                                  builder: (BuildContext context) {
-                                    return AlertDialog(
-                                      title:
-                                          const Text('Barang sudah diterima?'),
-                                      content: Text(
-                                        'Apakah anda yakin sudah menerima'
-                                        ' barang dari pesanan '
-                                        '${state.transaction.transactionNumber}?',
-                                      ),
-                                      actions: <Widget>[
-                                        FlatButton(
-                                            onPressed: () {
-                                              Navigator.pop(context);
-                                            },
-                                            child: const Text(
-                                              'Tidak',
-                                              style:
-                                                  TextStyle(color: Colors.red),
-                                            )),
-                                        FlatButton(
-                                          onPressed: () {
-                                            detailOrderBloc.add(CompleteOrder(
-                                                state.transaction.id));
-                                            Navigator.pop(context);
-                                          },
-                                          child: const Text('Ya'),
-                                          textColor: Colors.white,
-                                          color: Theme.of(context).primaryColor,
-                                        )
-                                      ],
-                                    );
-                                  });
-                            },
-                            label: 'Barang diterima'),
+                      _ButtonComplete(
+                        transactionId: state.transaction.id,
+                        transactionNumber: state.transaction.transactionNumber,
                       ),
                     if (state.transaction.transactionStatus ==
                             StatusTransaction.waitProof ||
@@ -172,6 +133,61 @@ class MyDetailOrder extends StatelessWidget {
   }
 }
 
+class _ButtonComplete extends StatelessWidget {
+  final String transactionNumber;
+  final String transactionId;
+  const _ButtonComplete({
+    Key key,
+    @required this.transactionNumber,
+    @required this.transactionId,
+  })  : assert(transactionNumber != null),
+        assert(transactionId != null),
+        super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
+    return ButtonTheme(
+      minWidth: MediaQuery.of(context).size.width / 1.7,
+      child: BlueButton(
+          onPressed: () {
+            final detailOrderBloc = BlocProvider.of<DetailOrderBloc>(context);
+            showDialog(
+                context: context,
+                builder: (BuildContext context) {
+                  return AlertDialog(
+                    title: const Text('Barang sudah diterima?'),
+                    content: Text(
+                      'Apakah anda yakin sudah menerima'
+                      ' barang dari pesanan '
+                      '${transactionNumber}?',
+                    ),
+                    actions: <Widget>[
+                      FlatButton(
+                          onPressed: () {
+                            Navigator.pop(context);
+                          },
+                          child: const Text(
+                            'Tidak',
+                            style: TextStyle(color: Colors.red),
+                          )),
+                      FlatButton(
+                        onPressed: () {
+                          detailOrderBloc.add(CompleteOrder(transactionId));
+                          Navigator.pop(context);
+                        },
+                        child: const Text('Ya'),
+                        textColor: Colors.white,
+                        color: Theme.of(context).primaryColor,
+                      )
+                    ],
+                  );
+                });
+          },
+          label: 'Barang diterima'),
+    );
+  }
+}
+
 class _Body extends StatefulWidget {
   const _Body({Key key}) : super(key: key);
   @override
diff --git a/pubspec.yaml b/pubspec.yaml
index 558c76b388d883fdf2e932511cf4ca16ac0d2594..4734093440a1ed4a0fb5983f6cc04bba49942570 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -11,7 +11,7 @@ description: Home Industry is a platform that sell various goods
 # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
 # Read more about iOS versioning at
 # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
-version: 1.0.0+1
+version: 1.0.2+1
 
 environment:
   sdk: ">=2.6.0 <3.0.0"
diff --git a/test/cart_page_test.dart b/test/cart_page_test.dart
index 48c067a30e06801573db4270da0aa1bdf1649e95..9f2d18df3a0086acccf745198054e8b7a474a5f4 100644
--- a/test/cart_page_test.dart
+++ b/test/cart_page_test.dart
@@ -11,6 +11,7 @@ import 'package:home_industry/Pages/Cart/cart.dart';
 import 'package:home_industry/Pages/Cart/model/cart_item.dart';
 import 'package:home_industry/Pages/Cart/repositories/cart_repository.dart';
 import 'package:home_industry/Pages/Product/model/product/product.dart';
+import 'package:home_industry/Pages/Profile/bloc/bloc.dart';
 import 'package:home_industry/State/Auth/bloc/authentication_bloc.dart';
 import 'package:home_industry/State/Auth/repositories/auth_repository.dart';
 import 'package:home_industry/State/Auth/repositories/depedencies_repositories.dart';
@@ -18,6 +19,7 @@ import 'package:mockito/mockito.dart';
 
 import 'category_page_test.dart';
 import 'otp_page_test.dart';
+import 'profile_test.dart';
 import 'register_test.dart';
 
 void main() {
@@ -650,9 +652,11 @@ void main() {
                     subcategoryName: 'subCatName'))
           ], 200000, 1));
       final depRep = DependenciesRepositories(dio: DioMock());
-      await tester.pumpWidget(
-          RepositoryProvider<DependenciesRepositories>.value(
-              value: depRep, child: testedWidget));
+      await tester.pumpWidget(BlocProvider<ProfileBloc>(
+        create: (_) => MockProfileBloc(),
+        child: RepositoryProvider<DependenciesRepositories>.value(
+            value: depRep, child: testedWidget),
+      ));
       expect(find.text('Keranjang'), findsOneWidget);
       expect(find.text('kue'), findsOneWidget);
       expect(find.byType(PriceTextFormatter), findsNWidgets(3));
diff --git a/test/summary_test.dart b/test/summary_test.dart
index 92b732466f4a70de6a4722e131ffd46f25c9a8bd..f555387185c6b8b0251eb5af51e68d44511a7baa 100644
--- a/test/summary_test.dart
+++ b/test/summary_test.dart
@@ -39,10 +39,12 @@ void main() {
     Dio dio;
     CartBloc cartBloc;
     SummaryBloc summaryBloc;
+    ProfileBloc profileBloc;
     setUp(() {
       cartBloc = CartBlocMock();
+      profileBloc = MockProfileBloc();
       dio = DioMock();
-      summaryBloc = SummaryBloc(SummaryRepository(dio), cartBloc);
+      summaryBloc = SummaryBloc(SummaryRepository(dio), cartBloc, profileBloc);
     });
 
     blocTest('Summary Loaded',
@@ -61,6 +63,35 @@ void main() {
           verify(dio.get(summary)).called(1);
         });
 
+    blocTest('ProfileLoaded',
+        build: () async {
+          when(dio.get(summary)).thenAnswer((_) async =>
+              Response<Map<String, dynamic>>(
+                  statusCode: 200, data: Summary('20000', '5000').toJson()));
+          whenListen(
+              profileBloc,
+              Stream<ProfileState>.value(ProfileLoaded(
+                  profile: Profile(
+                      'id',
+                      'username',
+                      'fullName',
+                      'phoneNumber',
+                      'address',
+                      'neighborhood',
+                      'hamlet',
+                      'urbanVillage',
+                      'subDistrict',
+                      null))));
+          return SummaryBloc(SummaryRepository(dio), cartBloc, profileBloc);
+        },
+        expect: [
+          SummaryLoaded(
+              donation: 0, feeTransport: 5000, subTotal: 20000, method: null)
+        ],
+        verify: (_) async {
+          verify(dio.get(summary)).called(1);
+        });
+
     blocTest('Summary error',
         build: () async {
           when(dio.get(summary)).thenAnswer((_) async =>