Commit 5348844d authored by valdi's avatar valdi

fix splash

parent 123b7f72
......@@ -3,6 +3,7 @@ import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:manager_queue/helper/config.dart';
import 'package:manager_queue/models/queue.dart';
import 'package:manager_queue/models/config.dart';
import 'package:flutter/material.dart';
class ApiQueue {
......@@ -12,10 +13,10 @@ class ApiQueue {
ApiQueue(this.id, this.queue_number, this.status);
factory ApiQueue.createQueue(Map<String, dynamic> json) {
return ApiQueue(json['id'].toString(), json['queue_number'].toString(),
json['status'].toString());
}
// factory ApiQueue.createQueue(Map<String, dynamic> json) {
// return ApiQueue(json['id'].toString(), json['queue_number'].toString(),
// json['status'].toString());
// }
static Future<List<OrderQueue>> getQueue() async {
String apiUrl = apiUrlQueue;
......@@ -34,4 +35,23 @@ class ApiQueue {
return queues;
}
static Future<List<ConfigApl>> getConfig() async {
String apiUrl = apiUrlConfig;
// print("apiUrl dalam getConfig: " + apiUrl);
List<ConfigApl> configs = [];
try {
var apiResult = await http.get(Uri.parse(apiUrl));
var jsonObject = jsonDecode(apiResult.body);
List<dynamic> listConfig = (jsonObject as Map<dynamic, dynamic>)['data'];
for (int i = 0; i < listConfig.length; i++) {
configs.add(ConfigApl.createConfig(listConfig[i]));
}
// ignore: empty_catches
} catch (e) {
print("Errornya pada api.dart config: $e");
}
return configs;
}
}
import 'package:manager_queue/main.dart';
import 'package:mqtt_client/mqtt_browser_client.dart';
import 'dart:convert';
final String? baseUrls = prefs.getString('base_url');
final String? mqqtIdentifiers = prefs.getString('uuid');
final String mqqtIdentifier = mqqtIdentifiers!;
final String baseUrl = baseUrls!;
final String apiUrlQueue = baseUrl + "api/getqueue";
final String apiUrlUpdate = baseUrl + "api/updatequeue";
final String apiUrlClear = baseUrl + "api/clearqueue";
const String mqttUrl = "ws://dev.ravku.com";
const String queueTopic = "queuetest/1";
const String queueMessage = "updateApi";
const int mqttPort = 1883;
final String baseUrlApi = baseUrls!;
final String apiUrlQueue = baseUrlApi + "api/getqueue";
final String apiUrlUpdate = baseUrlApi + "api/updatequeue";
final String apiUrlClear = baseUrlApi + "api/clearqueue";
final String apiUrlConfig = baseUrlApi + "api/getconfig";
// const String apiConfig = "api/getconfig";
final String? mqttUrls = prefs.getString('mqtt_url');
final String mqttUrl = mqttUrls!;
final String? queueTopics = prefs.getString('mqtt_queue_topic');
final String queueTopic = queueTopics!;
final String? queueMessages = prefs.getString('mqtt_queue_message');
final String queueMessage = queueMessages!;
final int? mqttPorts = prefs.getInt('mqtt_port');
final int mqttPort = mqttPorts!;
final mqClient = MqttBrowserClient(mqttUrl, "");
......@@ -42,7 +42,7 @@ class _MainPageState extends State<MainPage> {
}
context.read<QueueCubit>().getData();
context.read<ReadyCubit>().getData();
const pubTopic = queueTopic;
final pubTopic = queueTopic;
final builder = MqttClientPayloadBuilder();
builder.addString(queueMessage);
mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!);
......@@ -64,7 +64,7 @@ class _MainPageState extends State<MainPage> {
}
context.read<ReadyCubit>().getData();
context.read<QueueCubit>().getData();
const pubTopic = queueTopic;
final pubTopic = queueTopic;
final builder = MqttClientPayloadBuilder();
builder.addString(queueMessage);
mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!);
......@@ -93,7 +93,7 @@ class _MainPageState extends State<MainPage> {
// }
}
context.read<ReadyCubit>().getData();
const pubTopic = queueTopic;
final pubTopic = queueTopic;
final builder = MqttClientPayloadBuilder();
builder.addString(queueMessage);
mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!);
......
// ignore_for_file: non_constant_identifier_names
class ConfigApl {
final String mqtt_url;
final int mqtt_port;
final String mqtt_queue_topic;
final String mqtt_queue_message;
ConfigApl({
required this.mqtt_url,
required this.mqtt_port,
required this.mqtt_queue_topic,
required this.mqtt_queue_message,
});
factory ConfigApl.createConfig(Map<String, dynamic> json) {
return ConfigApl(
mqtt_url: json['mqtt_url'],
mqtt_port: json['mqtt_port'],
mqtt_queue_topic: json['mqtt_queue_topic'],
mqtt_queue_message: json['mqtt_queue_message'],
);
}
}
// ignore_for_file: unused_import
import 'dart:convert';
import 'dart:io';
......@@ -5,6 +7,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:loading_animations/loading_animations.dart';
import 'package:manager_queue/models/queue.dart';
import 'package:manager_queue/models/config.dart';
import 'package:mqtt_client/mqtt_client.dart';
import 'package:manager_queue/api.dart';
import 'package:manager_queue/bloc/queue_bloc.dart';
......@@ -24,6 +27,19 @@ class Splash extends StatefulWidget {
}
class _SplashState extends State<Splash> {
Future<List<ConfigApl>> config({url = ""}) async {
// String? base_urlapi = prefs.getString('base_url');
List<ConfigApl> apiConfigs = [];
try {
var apiConfig = await ApiQueue.getConfig();
apiConfigs = apiConfig;
} catch (e) {
print("Error pada splash $e");
}
return apiConfigs;
}
Future<String> loadBaseUrl() async {
String data = await bundel_root.rootBundle.loadString('baseurl.json');
return jsonDecode(data)['base_url'].toString();
......@@ -100,11 +116,31 @@ class _SplashState extends State<Splash> {
void initState() {
loadBaseUrl().then((value) async {
await prefs.setString('base_url', value);
await prefs.setString('uuid', uuidUnique.v4());
runMqTT();
Future.delayed(const Duration(seconds: 3), () {
Navigator.push(context, MaterialPageRoute(builder: (_) => MainPage()));
print(value);
// await prefs.setString('uuid', uuidUnique.v4());
// await prefs.setString('mqtt_url', value[0].mqtt_url);
// await prefs.setInt('mqtt_port', value[0].mqtt_port);
// await prefs.setString('mqtt_queue_topic', value[0].mqtt_queue_topic);
// await prefs.setString('mqtt_queue_message', value[0].mqtt_queue_message);
config(url: value).then((value) async {
await prefs.setString('mqtt_url', value[0].mqtt_url);
await prefs.setInt('mqtt_port', value[0].mqtt_port);
await prefs.setString('mqtt_queue_topic', value[0].mqtt_queue_topic);
await prefs.setString(
'mqtt_queue_message', value[0].mqtt_queue_message);
await prefs.setString('uuid', uuidUnique.v4());
runMqTT();
Future.delayed(const Duration(seconds: 3), () {
Navigator.push(
context, MaterialPageRoute(builder: (_) => MainPage()));
});
});
// runMqTT();
// Future.delayed(const Duration(seconds: 3), () {
// Navigator.push(context, MaterialPageRoute(builder: (_) => MainPage()));
// });
});
super.initState();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment