Skip to content

Added release config #23

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 {
Expand Down
33 changes: 11 additions & 22 deletions app/src/main/java/pl/tkadziolka/snipmeandroid/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ internal val networkModule = module {

single<Retrofit> {
Retrofit.Builder()
.client(get())
.client(get<OkHttpClient>())
.baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(MoshiConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
Binary file added debug.keystore
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter_module/presentation/navigation/screen_navigator.dart';
import 'package:go_router_plus/go_router_plus.dart';

class LoginNavigator extends ScreenNavigator
with ChangeNotifier
implements LoggedInState {
class LoginNavigator extends ScreenNavigator with ChangeNotifier implements LoggedInState {
bool _loggedIn = false;

@override
Expand Down
62 changes: 29 additions & 33 deletions flutter_module/lib/presentation/widgets/snippet_list_item.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,44 +24,40 @@ class SnippetListTile extends HookWidget {
Widget build(BuildContext context) {
return SurfaceStyles.snippetCard(
onTap: onTap,
child: Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Padding(
padding: const EdgeInsets.only(
top: Dimens.l,
left: Dimens.l,
right: Dimens.l,
bottom: Dimens.m,
),
child: TextStyles.title(snippet.title ?? ""),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Padding(
padding: const EdgeInsets.only(
top: Dimens.l,
left: Dimens.l,
right: Dimens.l,
bottom: Dimens.m,
),
Ink(
color: ColorStyles.codeBackground(),
child: Padding(
padding: const EdgeInsets.symmetric(
vertical: Dimens.m,
horizontal: Dimens.l,
),
child: Expanded(
child: CodeTextView.preview(
code: snippet.code?.raw ?? "",
tokens: snippet.code?.tokens,
),
),
child: TextStyles.title(snippet.title ?? ""),
),
Ink(
color: ColorStyles.codeBackground(),
child: Padding(
padding: const EdgeInsets.symmetric(
vertical: Dimens.m,
horizontal: Dimens.l,
),
child: CodeTextView.preview(
code: snippet.code?.raw ?? "",
tokens: snippet.code?.tokens,
),
),
),
const SizedBox(height: Dimens.m),
if (isExpanded) ...[
Padding(
padding: const EdgeInsets.symmetric(horizontal: Dimens.l),
child: SnippetDetailsBar(snippet: snippet),
),
const SizedBox(height: Dimens.m),
if (isExpanded) ...[
Padding(
padding: const EdgeInsets.symmetric(horizontal: Dimens.l),
child: SnippetDetailsBar(snippet: snippet),
),
const SizedBox(height: Dimens.m),
],
],
),
],
),
);
}
Expand Down
83 changes: 43 additions & 40 deletions flutter_module/lib/presentation/widgets/view_state_wrapper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,48 @@ import 'package:flutter/material.dart';

typedef DataWidgetBuilder<T> = Widget Function(BuildContext context, T? data);

class ViewStateWrapper<T> extends StatelessWidget {
const ViewStateWrapper({
Key? key,
required this.builder,
this.isLoading = false,
this.data,
this.error,
}) : super(key: key);
class ViewStateWrapper<T> 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<T> builder;
final bool isLoading;
final T? data;
final String? error;
final DataWidgetBuilder<T> 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 ?? "")],
),
),
)
],
);
}
}
@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 ?? ""),
],
),
),
)
],
);
}
}