Skip to content

Instantly share code, notes, and snippets.

@ogak-github
ogak-github / marker_helper.dart
Created October 6, 2025 12:28
Create a custom marker from text, for polygon
class MarkerHelper {
/// Create a marker from given parameter text into a marker
// Helper function to convert text into a BitmapDescriptor
static Future<BitmapDescriptor> _createCustomMarkerBitmap(
String text, double fontSize, double outlinewidth) async {
final double outlineWidth = 3.0;
@ogak-github
ogak-github / in_app_update_provider.dart
Created December 10, 2024 03:14
In-app update flutter
class InAppUpdateProvider extends ChangeNotifier {
void checkUpdate() async {
try {
if (Platform.isAndroid) {
final checkUpdate = await InAppUpdate.checkForUpdate();
if (checkUpdate.updateAvailability ==
UpdateAvailability.updateAvailable) {
await InAppUpdate.performImmediateUpdate();
}
}
@ogak-github
ogak-github / cache_manager.dart
Created September 30, 2024 02:05
Cache manager in flutter to store data to file json
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import '../../../log/app_logger.dart';
import '../../../utils/mem_size_utils.dart';
final _log = AppLogger().logger;
import 'dart:developer';
import 'dart:io';
import 'dart:typed_data';
import 'package:camera/camera.dart';
import 'package:path/path.dart' as path;
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:path_provider/path_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:camera/camera.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
/// Add this, path of generated riverpod file
part 'camera_provider.g.dart';
@riverpod
Future<bool> cameraPermission(CameraPermissionRef ref) async {
List<Permission> permission;
@ogak-github
ogak-github / main.dart
Created March 7, 2024 07:44
List select gmail style
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@ogak-github
ogak-github / dialog_confirmation.dart
Created January 10, 2024 02:31
[M] Handle PopScope
void _showDialogExit() {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Exit App'),
content: Text('Do you want to exit this app?'),
actions: <Widget>[
TextButton(
child: Text('No'),
@ogak-github
ogak-github / simple_log.dart
Created June 25, 2023 05:35
Log Singleton in Dart
class SimpleLog {
static final SimpleLog _singleton = SimpleLog._internal();
late final Logger _logger;
factory SimpleLog() {
return _singleton;
}
SimpleLog._internal() {
_logger = Logger(