From c8dd1adeb04ccbf79d2187b0114f542bdafe5431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20K=C4=85dzio=C5=82ka?= Date: Sun, 12 Mar 2023 10:32:16 +0100 Subject: [PATCH] Added release config --- app/build.gradle | 17 ++++ .../tkadziolka/snipmeandroid/MainActivity.kt | 33 +++---- .../snipmeandroid/di/NetworkModule.kt | 2 +- .../infrastructure/local/AuthPreferences.kt | 1 - debug.keystore | Bin 0 -> 2473 bytes .../navigation/login/login_navigator.dart | 4 +- .../widgets/snippet_list_item.dart | 62 ++++++------- .../widgets/view_state_wrapper.dart | 83 +++++++++--------- 8 files changed, 102 insertions(+), 100 deletions(-) create mode 100644 debug.keystore diff --git a/app/build.gradle b/app/build.gradle index 7416bdd..f8520c9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,15 @@ def STRING = "String" android { compileSdk 33 + signingConfigs { + release { + storeFile file("../debug.keystore") + storePassword "android" + keyAlias "androiddebugkey" + keyPassword "android" + } + } + defaultConfig { applicationId "pl.tkadziolka.snipmeandroid" minSdk 21 @@ -32,6 +41,14 @@ android { buildConfigField STRING, BASE_URL, API_BASE_URL } + + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release + + buildConfigField STRING, BASE_URL, API_BASE_URL + } } compileOptions { diff --git a/app/src/main/java/pl/tkadziolka/snipmeandroid/MainActivity.kt b/app/src/main/java/pl/tkadziolka/snipmeandroid/MainActivity.kt index 06c4610..8b31fa7 100644 --- a/app/src/main/java/pl/tkadziolka/snipmeandroid/MainActivity.kt +++ b/app/src/main/java/pl/tkadziolka/snipmeandroid/MainActivity.kt @@ -19,27 +19,16 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - // Instantiate a FlutterEngine. - flutterEngine = FlutterEngine(this) - - // Start executing Dart code to pre-warm the FlutterEngine. - flutterEngine.dartExecutor.executeDartEntrypoint( - DartExecutor.DartEntrypoint.createDefault() - ) - - flutterEngine.plugins.add(LoginModelPlugin()) - flutterEngine.plugins.add(MainModelPlugin()) - flutterEngine.plugins.add(DetailModelPlugin()) - - // Cache the FlutterEngine to be used by FlutterActivity. - FlutterEngineCache - .getInstance() - .put(cachedEngineId, flutterEngine) - - startActivity( - FlutterActivity - .withCachedEngine(cachedEngineId) - .build(this) - ) + FlutterEngine(this).apply { + dartExecutor.executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault()) + + plugins.add(LoginModelPlugin()) + plugins.add(MainModelPlugin()) + plugins.add(DetailModelPlugin()) + + FlutterEngineCache.getInstance().put(cachedEngineId, this) + + startActivity(FlutterActivity.withCachedEngine(cachedEngineId).build(baseContext)) + } } } \ No newline at end of file diff --git a/app/src/main/java/pl/tkadziolka/snipmeandroid/di/NetworkModule.kt b/app/src/main/java/pl/tkadziolka/snipmeandroid/di/NetworkModule.kt index 858ab54..d8c71aa 100644 --- a/app/src/main/java/pl/tkadziolka/snipmeandroid/di/NetworkModule.kt +++ b/app/src/main/java/pl/tkadziolka/snipmeandroid/di/NetworkModule.kt @@ -63,7 +63,7 @@ internal val networkModule = module { single { Retrofit.Builder() - .client(get()) + .client(get()) .baseUrl(BuildConfig.BASE_URL) .addConverterFactory(MoshiConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) diff --git a/app/src/main/java/pl/tkadziolka/snipmeandroid/infrastructure/local/AuthPreferences.kt b/app/src/main/java/pl/tkadziolka/snipmeandroid/infrastructure/local/AuthPreferences.kt index 5621c85..594c3a6 100644 --- a/app/src/main/java/pl/tkadziolka/snipmeandroid/infrastructure/local/AuthPreferences.kt +++ b/app/src/main/java/pl/tkadziolka/snipmeandroid/infrastructure/local/AuthPreferences.kt @@ -5,7 +5,6 @@ import pl.tkadziolka.snipmeandroid.util.PreferencesUtil private const val TOKEN_KEY = "7e3a40ea-32d2-4248-bcfb-297f2f41246e" class AuthPreferences(private val prefs: PreferencesUtil) { - fun saveToken(token: String) { prefs.save(TOKEN_KEY, token) } diff --git a/debug.keystore b/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..a11cb7f47c98719533beb193fd8abb47a3743958 GIT binary patch literal 2473 zcmY+EX*kpi8^-@*#xP^e*21yQkg+r-SsP2zXk`$MeT=olAS4uHjYCvSh8R29lC2b4 zY*`W}dzL7K(I~`Nj`zLZ_nhl|c&_`o?)!e8k3Td8R=@!QqbV>4C=3;260^Yv;sVhr zFjEKxc7ET+p(&gp|B5)hAQVoIecNS!oS;1ayW)j|IOr4z8%=?1pcSF;|J(b|#UUcF zk2O02M&%)sAHpTmZ9j8S;FhKwVBnn@gaYXxU-(1Gug8w}IpOn*Pfte@cc!Rb1O5F) z=K%jW-wNqNyXgW8Ykj}w1{;;Y%tv-2oPmna!Khc?{R<7cYZgzCQ30O7All@bTtsWb*WpRYfMY0Trskprrds7O#F*qacQe$=#90~e zLX9+yXev5&%(*NnQ}u*C)TAIdMdtgn#z7IpdpgU6xE0{;^-Fbqo zY@U2NJ;5Jm&Rom7JS>w1-qt;^@7h{_=``O7~167|rLdW!a&ekR(yTg;2&;kye+ zr{>vLU&ZYQ5!USI7ghDtOJX5ny|>_H$fWSx6$ccV1Gjss4-b*Xm{g%s2-m_mLTwU7 z#!N)VQd;MW(?Z-gOmm9kDOW9CVOy-0Nnk?{_qV4nXde9H>dMh-G=;5YbnD7ITM$?!rEfAb+aK4HM9v28r8sM9zK}ZYA;=%O)5JLseVxWb;^--f31{+c>jK!X-q9fEJi+7Nliw47`K!or*b81vnx;MZbe#@ ze(ATPlHlbv)z{;SYi_+PCDjvY+fF~9RyvJwJ~QA~4b2(3{ZWok>QA;q$WfC_zS-jv z$GvtnI}pfdcLTiQ5=hxgKrvT>IP%36S-B9g=UekjhmB<(p4yT>T`u@QcXWnUg;83; zrXtOr8t7vqM3>g0nb9YXwv^)oZXcd?e!xMmvRH!;uQG(#Tf?bt{9d`LW-Bmk&fU(o ziZ;`e7|w+PAG#L7i81y47R`Hf$+c~`L$9@C^$+<&anoA$&lyeg=Pvq&vqp`<4aoSK zmJGxKZ|un^i7~^~_Ga7}yrX7zOL={$@K&`C4K0qoDAFMdNp1_vG_jtb7)q zsSi$8aSu0m*4QHXpp#%B>3Cq2FYc+Z58>yJmECB84icAg_v(s>Fz~Z(FnME7OQ0~W z#2AmuO87%Ha|S6DD!gtws~LxkXyj?c15wSZH6CvH60|nmT@%c(9*|z-74~Z`Kaa5) zGsLfxpP7nDu`*X~5DAf0(PX%r3&S@SEbg=4G@M z{b|OP^2z@)H=F_{i+S#NE1#0&>FZ!MED&o9(?^+1<$@DrotZ^!%pzW?DLHiA?gPeOKN+{$J_$aM{f?py6w5^%ExBi{ZAo0T z6GSW0&8W{a?1RO92?1wB6`Q(ku!<+xYh$vC>Lq$Oj~B4oZs_HC>n_@&Zl7bM26sm< z`_;_+lenY+f~6#E7gIagn-u(D0bishmjxz$PTv@*ziAp-O&!bP-MBGYE~!em1V1ah z)jPsq*@`MyC5aMen-3Speq~?(hUC_cPmA0`flfb+yHR4TARIe+^W+FUD6y@en#*aT z-}8t1xt5q||A@#dThmmGSrv-0mo-us7RXQ%({Y6-ZrbcE`&K_PTP}(xItFm2(6TNd zYCWdk9)U_4ia(l0JcJF+c6{4yX_kU=f>!SctzGV}|Lv$hHz81c_V{3bQiYdB#!92V z$I0?Dji_9*LfVe6jIIwEYw|k*4yfMgJbbyS9Y*eYqtA+nZC2CZ5YxK4y;bo9NSjCO z@UNyCDddZO??N!M&5kXgxj2LEL4Bzld`VNG!v)#)y2$yLUP8gbSV8DmMwF)FLEgY3-gA(Fw^wNm^)2Q2gqBessFN#3EH5Fb%BSR=5LodXOIlW^&Mrk-q(BR%G#)B zju|PNYt5CRxV)!l{fwt>>(DzV((5vaxql-2nT2K9XWEm_8wp(au=%vjwBY4QjE7f5 z;6d=!Q8N>=SI8%`0{US`l_ZA5rlbmno{y0N}R0H1>Bi}cdJ=gBs=%m(TF%tbVV0w^c=KvMG=4lny);7KOj(3mG zzEi6Do?6pyv>sXp4TEwj@q;;zZ~_pK2LYGXlxB7dUwEg35+caSI|Ina5E1p = Widget Function(BuildContext context, T? data); - class ViewStateWrapper extends StatelessWidget { - const ViewStateWrapper({ - Key? key, - required this.builder, - this.isLoading = false, - this.data, - this.error, - }) : super(key: key); +class ViewStateWrapper extends StatelessWidget { + const ViewStateWrapper({ + Key? key, + required this.builder, + this.isLoading = false, + this.data, + this.error, + }) : super(key: key); - final bool isLoading; - final T? data; - final String? error; - final DataWidgetBuilder builder; + final bool isLoading; + final T? data; + final String? error; + final DataWidgetBuilder builder; - @override - Widget build(BuildContext context) { - return Stack( - children: [ - // Data - Visibility( - visible: error == null && !isLoading, - child: builder.call(context, data), - ), - // Loading - Visibility( - visible: isLoading, - child: const Center(child: CircularProgressIndicator()), - ), - // Error - Visibility( - visible: error != null, - child: Center( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [const Text("Error"), Text(error ?? "")], - ), - ), - ) - ], - ); - } - } \ No newline at end of file + @override + Widget build(BuildContext context) { + return Stack( + children: [ + // Data + Visibility( + visible: error == null && !isLoading, + child: builder.call(context, data), + ), + // Loading + Visibility( + visible: isLoading, + child: const Center(child: CircularProgressIndicator()), + ), + // Error + Visibility( + visible: error != null, + child: Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text("Error"), + Text(error ?? ""), + ], + ), + ), + ) + ], + ); + } +}