Skip to content

Commit

Permalink
fix: replace carrier_info package
Browse files Browse the repository at this point in the history
  • Loading branch information
williamluke4 committed Mar 12, 2024
1 parent 4697da8 commit b87d626
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
9 changes: 4 additions & 5 deletions lib/data/transactions_repository.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'package:carrier_info/carrier_info.dart';
import 'package:flutter_sms_inbox/flutter_sms_inbox.dart';
import 'package:my_pesa/data/models/transaction.dart';
import 'package:my_pesa/utils/logger.dart';
import 'package:my_pesa/utils/parse/mpesa.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:sim_data_plus/sim_data.dart';

enum TransactionProvider {
mpesa('MPESA');
Expand All @@ -19,14 +19,13 @@ class TransactionsRepository {

Future<List<Transaction>> getTxsFromSMS() async {
await [
Permission.locationWhenInUse,
Permission.phone,
Permission.sms,
].request();

AndroidCarrierData? carrierInfo;
SimData? simData;
try {
carrierInfo = await CarrierInfo.getAndroidInfo();
simData = await SimDataPlugin.getSimData();
} catch (error) {
log.e('Failed to Get CarrierInfo', [error]);
}
Expand All @@ -39,7 +38,7 @@ class TransactionsRepository {
kinds: [SmsQueryKind.inbox],
);
for (final message in messages) {
final transaction = parseTransaction(message, carrierInfo);
final transaction = parseTransaction(message, simData);
if (transaction != null) {
transactions.add(transaction);
}
Expand Down
8 changes: 4 additions & 4 deletions lib/utils/parse/mpesa.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'package:basic_utils/basic_utils.dart';
import 'package:carrier_info/carrier_info.dart';
import 'package:collection/collection.dart';
import 'package:flutter_sms_inbox/flutter_sms_inbox.dart';
import 'package:intl/intl.dart';
import 'package:my_pesa/data/models/transaction.dart';
import 'package:sim_data_plus/sim_model.dart';

RegExp getBalanceRX = RegExp(r'balance\s+(is|was)\s+([a-zA-Z]+)([\d,]+.\d{2})');
RegExp getTXCostRX = RegExp(r'Transaction\s*cost,\s*([a-zA-Z]+)([\d.,]+)\.');
Expand Down Expand Up @@ -117,11 +117,11 @@ Transaction? parseMpesaTransaction(

Transaction? parseTransaction(
SmsMessage message,
AndroidCarrierData? carrierData,
SimData? simData,
) {
String? phoneNumber;
if (message.subId != null) {
final sim = carrierData?.subscriptionsInfo
if (message.subId != null && simData != null) {
final sim = simData.cards
.firstWhereOrNull((element) => element.subscriptionId == message.subId);
if (sim != null) {
phoneNumber = sim.phoneNumber;
Expand Down
5 changes: 4 additions & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ environment:
dependencies:
basic_utils: ^5.3.0
bloc: ^8.1.2
carrier_info: ^2.0.8
collection: ^1.17.1
emoji_picker_flutter: ^1.6.1
equatable: ^2.0.5
Expand Down Expand Up @@ -39,6 +38,10 @@ dependencies:
provider: ^6.0.5
sentry_flutter: ^7.8.0
settings_ui: ^2.0.2
sim_data_plus:
git:
url: https://github.com/williamluke4/sim_data_plus
ref: main
syncfusion_flutter_charts: ^22.1.36
tab_container: ^2.0.0
tuple: ^2.0.2
Expand Down

0 comments on commit b87d626

Please sign in to comment.