Skip to content

Commit

Permalink
Merge pull request #2 from Beldex-Coin/google-play-api-update
Browse files Browse the repository at this point in the history
  • Loading branch information
codeman-crypto authored Aug 30, 2023
2 parents fb2b05a + 3abfdf7 commit 6f71172
Show file tree
Hide file tree
Showing 23 changed files with 667 additions and 194 deletions.
6 changes: 3 additions & 3 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion flutter.compileSdkVersion
compileSdkVersion 33

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
Expand All @@ -49,8 +49,8 @@ android {

defaultConfig {
applicationId "io.beldex.master_node_monitor"
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
minSdkVersion 23
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
Expand Down
15 changes: 12 additions & 3 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,23 @@
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<!-- Specifies an Android theme to apply to this Activity as soon as
<!--&lt;!&ndash; Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
to determine the Window background behind the Flutter UI. &ndash;&gt;
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
/>-->
<!--&lt;!&ndash; Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame. &ndash;&gt;
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>-->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
package io.beldex.master_node_monitor

import io.flutter.embedding.android.FlutterActivity
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterFragmentActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterActivity() {
class MainActivity: FlutterFragmentActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}
}
11 changes: 11 additions & 0 deletions android/app/src/main/res/drawable-v24/launch_background.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?><!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/ic_launcher_background" />

<!-- You can insert your own image assets here -->
<item
android:width="250dp"
android:height="250dp"
android:gravity="center"
android:drawable="@drawable/ic_launcher_foreground" />
</layer-list>
13 changes: 6 additions & 7 deletions android/app/src/main/res/drawable/launch_background.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<?xml version="1.0" encoding="utf-8"?><!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/ic_launcher_background" />

<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
<item
android:width="250dp"
android:height="250dp"
android:gravity="center"
android:drawable="@drawable/ic_launcher_foreground" />
</layer-list>
2 changes: 1 addition & 1 deletion android/app/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">@android:color/white</item>
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
</resources>
4 changes: 4 additions & 0 deletions assets/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@
version: 1.0.0
changes:
- Initial release
-
version: 1.0.1
changes:
- Updated support for Android version 13
5 changes: 5 additions & 0 deletions lib/generated/intl/messages_de.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class MessageLookup extends MessageLookupByLibrary {
"amount" : MessageLookupByLibrary.simpleMessage("Betrag"),
"awaiting_contributions" : MessageLookupByLibrary.simpleMessage("Warten auf Beiträge"),
"blocks" : MessageLookupByLibrary.simpleMessage("Blöcke"),
"checkYourInternetConnection" : MessageLookupByLibrary.simpleMessage("Check your internet connection"),
"checkpoints" : MessageLookupByLibrary.simpleMessage("Checkpoint Blöcke"),
"contributors" : MessageLookupByLibrary.simpleMessage("Beiträger"),
"copied_to_clipboard" : m1,
Expand All @@ -52,6 +53,8 @@ class MessageLookup extends MessageLookupByLibrary {
"dashboard_order_by_next_reward" : MessageLookupByLibrary.simpleMessage("Nächste Belohnung"),
"delete_master_node" : MessageLookupByLibrary.simpleMessage("Master Node löschen"),
"earned_downtime_blocks" : MessageLookupByLibrary.simpleMessage("Verdiente Downtime Blöcke"),
"enterAPublicKey" : MessageLookupByLibrary.simpleMessage("Enter a public key"),
"enterAValidPublicKey" : MessageLookupByLibrary.simpleMessage("Enter a valid public key"),
"error_name_taken" : MessageLookupByLibrary.simpleMessage("Du hast bereits einen Node mit dem Namen"),
"error_public_key_too_long" : MessageLookupByLibrary.simpleMessage("Öffentlicher Schlüssel zu lang"),
"error_public_key_too_short" : MessageLookupByLibrary.simpleMessage("Öffentlicher Schlüssel zu kurz"),
Expand Down Expand Up @@ -88,6 +91,8 @@ class MessageLookup extends MessageLookupByLibrary {
"name" : MessageLookupByLibrary.simpleMessage("Name"),
"next_reward" : MessageLookupByLibrary.simpleMessage("Nächste Belohnung:"),
"ok" : MessageLookupByLibrary.simpleMessage("OK"),
"pleaseEnterAName" : MessageLookupByLibrary.simpleMessage("Please enter a name"),
"pleaseEnterAValidDaemon" : MessageLookupByLibrary.simpleMessage("Please enter a valid daemon"),
"please_select" : MessageLookupByLibrary.simpleMessage("Bitte auswählen:"),
"pos" : MessageLookupByLibrary.simpleMessage("POS Blöcke"),
"public_ip" : MessageLookupByLibrary.simpleMessage("IP Adresse"),
Expand Down
5 changes: 5 additions & 0 deletions lib/generated/intl/messages_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ class MessageLookup extends MessageLookupByLibrary {
"amount" : MessageLookupByLibrary.simpleMessage("Amount"),
"awaiting_contributions" : MessageLookupByLibrary.simpleMessage("Awaiting Contributions"),
"blocks" : MessageLookupByLibrary.simpleMessage("blocks"),
"checkYourInternetConnection" : MessageLookupByLibrary.simpleMessage("Check your internet connection"),
"checkpoints" : MessageLookupByLibrary.simpleMessage("Checkpoints"),
"contributors" : MessageLookupByLibrary.simpleMessage("Contributors"),
"copied_to_clipboard" : m1,
Expand All @@ -54,6 +55,8 @@ class MessageLookup extends MessageLookupByLibrary {
"dashboard_order_by_next_reward" : MessageLookupByLibrary.simpleMessage("Next Reward"),
"delete_master_node" : MessageLookupByLibrary.simpleMessage("Delete Master Node"),
"earned_downtime_blocks" : MessageLookupByLibrary.simpleMessage("Earned Downtime Blocks"),
"enterAPublicKey" : MessageLookupByLibrary.simpleMessage("Enter a public key"),
"enterAValidPublicKey" : MessageLookupByLibrary.simpleMessage("Enter a valid public key"),
"error_name_taken" : MessageLookupByLibrary.simpleMessage("You already have a node with that name"),
"error_public_key_too_long" : MessageLookupByLibrary.simpleMessage("Public Key too long"),
"error_public_key_too_short" : MessageLookupByLibrary.simpleMessage("Public Key too short"),
Expand Down Expand Up @@ -91,6 +94,8 @@ class MessageLookup extends MessageLookupByLibrary {
"name" : MessageLookupByLibrary.simpleMessage("Name"),
"next_reward" : MessageLookupByLibrary.simpleMessage("Next Reward:"),
"ok" : MessageLookupByLibrary.simpleMessage("OK"),
"pleaseEnterAName" : MessageLookupByLibrary.simpleMessage("Please enter a name"),
"pleaseEnterAValidDaemon" : MessageLookupByLibrary.simpleMessage("Please enter a valid daemon"),
"please_select" : MessageLookupByLibrary.simpleMessage("Please select:"),
"pos" : MessageLookupByLibrary.simpleMessage("POS"),
"public_ip" : MessageLookupByLibrary.simpleMessage("IP Address"),
Expand Down
50 changes: 50 additions & 0 deletions lib/generated/l10n.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion lib/l10n/intl_de.arb
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,10 @@
"title_faq": "FAQ",
"termsConditions": "Terms & amp; Bedingungen",
"help": "Help",
"termsAndConditions": "Terms and Conditions"
"termsAndConditions": "Terms and Conditions",
"pleaseEnterAName": "Please enter a name",
"enterAPublicKey": "Enter a public key",
"enterAValidPublicKey": "Enter a valid public key",
"pleaseEnterAValidDaemon": "Please enter a valid daemon",
"checkYourInternetConnection": "Check your internet connection"
}
7 changes: 6 additions & 1 deletion lib/l10n/intl_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -99,5 +99,10 @@
"title_faq": "FAQ",
"termsConditions": "Terms & Conditions",
"help": "Help",
"termsAndConditions": "Terms and Conditions"
"termsAndConditions": "Terms and Conditions",
"pleaseEnterAName": "Please enter a name",
"enterAPublicKey": "Enter a public key",
"enterAValidPublicKey": "Enter a valid public key",
"pleaseEnterAValidDaemon": "Please enter a valid daemon",
"checkYourInternetConnection": "Check your internet connection"
}
6 changes: 5 additions & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import 'package:master_node_monitor/src/stores/node_sync_store.dart';
import 'package:master_node_monitor/src/stores/settings_store.dart';
import 'package:master_node_monitor/src/utils/default_settings_migration.dart';
import 'package:master_node_monitor/src/utils/language.dart';
import 'package:master_node_monitor/src/utils/network_service.dart';
import 'package:master_node_monitor/src/utils/router/beldex_router.dart';
import 'package:master_node_monitor/src/utils/theme/palette.dart';
import 'package:master_node_monitor/src/utils/theme/theme_changer.dart';
Expand All @@ -21,7 +22,7 @@ import 'package:shared_preferences/shared_preferences.dart';

import 'generated/l10n.dart';

Future<void> main() async {
void main() async {
WidgetsFlutterBinding.ensureInitialized();

final appDir = await getApplicationDocumentsDirectory();
Expand All @@ -39,6 +40,8 @@ Future<void> main() async {
await SettingsStoreBase.load(sharedPreferences, daemons);
final nodeSyncStore = NodeSyncStore(masterNodes, settingsStore);

final networkService = NetworkService().controller.stream;

if (masterNodes.isNotEmpty) {
await nodeSyncStore.sync();
nodeSyncStore.startSync();
Expand All @@ -50,6 +53,7 @@ Future<void> main() async {
Provider(create: (_) => sharedPreferences),
Provider(create: (_) => settingsStore),
Provider(create: (_) => nodeSyncStore),
StreamProvider(create: (_) => networkService)
], child: BeldexMasterNodeApp()));
}

Expand Down
51 changes: 51 additions & 0 deletions lib/src/beldex/check_master_node.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import 'dart:convert';
import 'dart:ffi';
import 'package:hive/hive.dart';
import 'package:http/http.dart' as http;

@HiveType(typeId: 1)
class CheckMasterNode extends HiveObject {
CheckMasterNode(this.uri,this.publicKey);

CheckMasterNode.fromMap(Map map) : uri = (map['uri'] ?? '') as String,publicKey = (map['publicKey'] ?? '') as String;

static const boxName = 'CheckMasterNodes';

@HiveField(0)
String uri;

@HiveField(1)
String publicKey;

Future<bool> isOnline() async {
try {
final resBody = await sendRPCRequest('get_master_nodes',{'master_node_pubkeys':[publicKey]});
if(resBody['result']['master_node_states']!=null){
return true;
}else{
return false;
}
} catch (e) {
return false;
}
}

Future<Map<String, dynamic>> sendRPCRequest(String method, Map<String, dynamic> params) async {
Map<String, dynamic> resultBody;

final requestBody = params != null
? {'jsonrpc': '2.0', 'id': '0', 'method': method, 'params': params}
: {'jsonrpc': '2.0', 'id': '0', 'method': method};

final url = Uri.http(uri, '/json_rpc');
final headers = {'Content-type': 'application/json'};
final body = json.encode(requestBody);
final response = await http.post(url, headers: headers, body: body);
final newBody = response.body.replaceAllMapped(
RegExp(r'("swarm_id":)(\d+)'),
(match) => '${match.group(1)}"${match.group(2)}"');

resultBody = json.decode(newBody) as Map<String, dynamic>;
return resultBody;
}
}
Loading

0 comments on commit 6f71172

Please sign in to comment.