android BankActivity.kt
parent
9b2b0a805d
commit
8d6ec6bfe1
|
|
@ -74,6 +74,9 @@ flutter {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||||
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
||||||
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||||
|
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
|
||||||
testImplementation 'junit:junit:4.12'
|
testImplementation 'junit:junit:4.12'
|
||||||
androidTestImplementation 'androidx.test:runner:1.1.1'
|
androidTestImplementation 'androidx.test:runner:1.1.1'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
|
||||||
|
|
|
||||||
|
|
@ -1,46 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.aman_kassa_flutter">
|
package="com.example.aman_kassa_flutter">
|
||||||
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
|
<!--
|
||||||
|
io.flutter.app.FlutterApplication is an android.app.Application that
|
||||||
calls FlutterMain.startInitialization(this); in its onCreate method.
|
calls FlutterMain.startInitialization(this); in its onCreate method.
|
||||||
In most cases you can leave this as-is, but you if you want to provide
|
In most cases you can leave this as-is, but you if you want to provide
|
||||||
additional functionality it is fine to subclass or reimplement
|
additional functionality it is fine to subclass or reimplement
|
||||||
FlutterApplication and put your custom class here. -->
|
FlutterApplication and put your custom class here.
|
||||||
|
-->
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="io.flutter.app.FlutterApplication"
|
android:name="io.flutter.app.FlutterApplication"
|
||||||
android:label="Аман Касса"
|
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:label="Аман Касса"
|
||||||
android:roundIcon="@mipmap/ic_launcher_rounded"
|
android:roundIcon="@mipmap/ic_launcher_rounded"
|
||||||
android:usesCleartextTraffic="true">
|
android:usesCleartextTraffic="true">
|
||||||
|
<activity android:name=".bank.BankActivity" android:theme="@android:style/Theme.Black.NoTitleBar"></activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:launchMode="singleTop"
|
|
||||||
android:theme="@style/LaunchTheme"
|
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
|
android:launchMode="singleTop"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
|
android:theme="@style/LaunchTheme"
|
||||||
android:windowSoftInputMode="adjustResize">
|
android:windowSoftInputMode="adjustResize">
|
||||||
<!-- <meta-data
|
|
||||||
|
<!--
|
||||||
|
<meta-data
|
||||||
android:name="io.flutter.embedding.android.NormalTheme"
|
android:name="io.flutter.embedding.android.NormalTheme"
|
||||||
android:resource="@style/NormalTheme"
|
android:resource="@style/NormalTheme"
|
||||||
/> -->
|
/>
|
||||||
<!-- <meta-data
|
-->
|
||||||
|
<!--
|
||||||
|
<meta-data
|
||||||
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
||||||
android:resource="@drawable/splash"
|
android:resource="@drawable/splash"
|
||||||
/> -->
|
/>
|
||||||
|
-->
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<!-- Don't delete the meta-data below.
|
<!--
|
||||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
Don't delete the meta-data below.
|
||||||
|
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java
|
||||||
|
-->
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="flutterEmbedding"
|
android:name="flutterEmbedding"
|
||||||
android:value="2" />
|
android:value="2" />
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
|
||||||
|
</manifest>
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.example.aman_kassa_flutter.bank
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
|
import android.view.View
|
||||||
|
import com.example.aman_kassa_flutter.R
|
||||||
|
import io.flutter.app.FlutterActivity
|
||||||
|
|
||||||
|
|
||||||
|
class BankActivity : FlutterActivity() {
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
Log.i("BankActivity","onCreate")
|
||||||
|
setContentView(R.layout.activity_bank)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun myClickHandler(view: View) {
|
||||||
|
Log.i("BankActivity","closed")
|
||||||
|
val returnIntent = Intent()
|
||||||
|
returnIntent.putExtra("result", "abrakadabra")
|
||||||
|
setResult(Activity.RESULT_OK, returnIntent)
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
val returnIntent = Intent()
|
||||||
|
returnIntent.putExtra("result", "abrakadabra")
|
||||||
|
setResult(Activity.RESULT_CANCELED, returnIntent)
|
||||||
|
super.onDestroy()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,15 +1,10 @@
|
||||||
package com.example.aman_kassa_flutter
|
package com.example.aman_kassa_flutter
|
||||||
|
|
||||||
import android.content.Context
|
import android.app.Activity
|
||||||
import android.content.ContextWrapper
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.IntentFilter
|
|
||||||
import android.content.pm.PackageManager
|
|
||||||
import android.net.Uri
|
|
||||||
import android.os.BatteryManager
|
|
||||||
import android.os.Build.VERSION
|
|
||||||
import android.os.Build.VERSION_CODES
|
|
||||||
import androidx.annotation.NonNull
|
import androidx.annotation.NonNull
|
||||||
|
import com.example.aman_kassa_flutter.bank.BankActivity
|
||||||
|
import com.example.aman_kassa_flutter.bank.MusicPlugin
|
||||||
import io.flutter.embedding.android.FlutterActivity
|
import io.flutter.embedding.android.FlutterActivity
|
||||||
import io.flutter.embedding.engine.FlutterEngine
|
import io.flutter.embedding.engine.FlutterEngine
|
||||||
import io.flutter.plugin.common.MethodChannel
|
import io.flutter.plugin.common.MethodChannel
|
||||||
|
|
@ -17,67 +12,44 @@ import io.flutter.plugins.GeneratedPluginRegistrant
|
||||||
|
|
||||||
|
|
||||||
class MainActivity: FlutterActivity() {
|
class MainActivity: FlutterActivity() {
|
||||||
private val CHANNEL = "samples.flutter.dev/battery"
|
private val BANK_CHANNEL = "channel:com.amanKassa/bank"
|
||||||
|
private val ACTIVITY_CHANNEL = "channel:com.amanKassa/activity"
|
||||||
|
|
||||||
|
private lateinit var _result: MethodChannel.Result
|
||||||
|
|
||||||
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
|
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
|
||||||
GeneratedPluginRegistrant.registerWith(flutterEngine);
|
GeneratedPluginRegistrant.registerWith(flutterEngine);
|
||||||
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler {
|
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, BANK_CHANNEL).setMethodCallHandler(MusicPlugin());
|
||||||
|
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, ACTIVITY_CHANNEL).setMethodCallHandler {
|
||||||
// Note: this method is invoked on the main thread.
|
// Note: this method is invoked on the main thread.
|
||||||
call, result ->
|
call, result ->
|
||||||
if (call.method == "getBatteryLevel") {
|
if (call.method == "start") {
|
||||||
val batteryLevel = getBatteryLevel()
|
_result = result
|
||||||
|
val intent= Intent(this, BankActivity::class.java)
|
||||||
if (batteryLevel != -1) {
|
startActivityForResult(intent, 8989)
|
||||||
result.success(batteryLevel)
|
//result.success("ActivityStarted")
|
||||||
} else {
|
|
||||||
result.error("UNAVAILABLE", "Battery level not available.", null)
|
|
||||||
}
|
|
||||||
} else if (call.method == "sendMessage") {
|
|
||||||
val batteryLevel = sendMessage()
|
|
||||||
|
|
||||||
if (batteryLevel != -1) {
|
|
||||||
result.success(batteryLevel)
|
|
||||||
} else {
|
|
||||||
result.error("UNAVAILABLE", "Battery level not available.", null)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
result.notImplemented()
|
result.notImplemented()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getBatteryLevel(): Int {
|
|
||||||
val batteryLevel: Int
|
|
||||||
if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
val batteryManager = getSystemService(Context.BATTERY_SERVICE) as BatteryManager
|
super.onActivityResult(requestCode, resultCode, data)
|
||||||
batteryLevel = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
|
if(requestCode == 8989) {
|
||||||
} else {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
val intent = ContextWrapper(applicationContext).registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
|
_result.success(data?.getStringExtra("result"))
|
||||||
batteryLevel = intent!!.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100 / intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1)
|
} else if (resultCode == Activity.RESULT_CANCELED) {
|
||||||
|
_result.error("008", "123","aaa")
|
||||||
|
} else
|
||||||
|
_result.success(null)
|
||||||
}
|
}
|
||||||
println("batteryLevel");
|
|
||||||
println(batteryLevel);
|
|
||||||
return batteryLevel
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun sendMessage(): Int {
|
|
||||||
val packageManager: PackageManager = context.packageManager
|
|
||||||
val i = Intent(Intent.ACTION_VIEW)
|
|
||||||
try {
|
|
||||||
val mobileNo: String = "77774904900" //call.argument("mobileNo")
|
|
||||||
val message: String = "Hello world" //call.argument("message")
|
|
||||||
//https://wa.me/919167370647?text=Yes%20We'll%20do%20this%20in%20frag4%20inOCW
|
|
||||||
println("mobileNo: $mobileNo message: $message")
|
|
||||||
val url = "https://wa.me/" + mobileNo.trim { it <= ' ' } + "?text=" + message.trim { it <= ' ' }
|
|
||||||
i.setPackage("com.whatsapp")
|
|
||||||
i.data = Uri.parse(url)
|
|
||||||
if (i.resolveActivity(packageManager) != null) {
|
|
||||||
context.startActivity(i)
|
|
||||||
}
|
|
||||||
println("finish method - 2")
|
|
||||||
} catch (e: Exception) {
|
|
||||||
e.printStackTrace()
|
|
||||||
}
|
|
||||||
return 25
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/design_default_color_background"
|
||||||
|
tools:context=".bank.BankActivity"
|
||||||
|
>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="20dp"
|
||||||
|
android:layout_marginTop="32dp"
|
||||||
|
android:layout_marginRight="20dp">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/buttonClose"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:onClick="myClickHandler"
|
||||||
|
tools:text="@android:string/cancel" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="82dp"
|
||||||
|
android:layout_height="82dp"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:src="@mipmap/ic_launcher_foreground" />
|
||||||
|
</RelativeLayout>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</ScrollView>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
<resources></resources>
|
||||||
|
|
@ -5,4 +5,5 @@ const String PaymentViewRoute = "PaymentView";
|
||||||
const String HistoryViewRoute = "HistoryView";
|
const String HistoryViewRoute = "HistoryView";
|
||||||
const String InfoKkmViewRoute = "InfoKkmViewRoute";
|
const String InfoKkmViewRoute = "InfoKkmViewRoute";
|
||||||
const String QrViewRoute = "QrViewRoute";
|
const String QrViewRoute = "QrViewRoute";
|
||||||
|
const String BankViewRoute = "BankViewRoute";
|
||||||
// Generate the views here
|
// Generate the views here
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:aman_kassa_flutter/views/bank_view/bank_view.dart';
|
||||||
import 'package:aman_kassa_flutter/views/check/image_show_container.dart';
|
import 'package:aman_kassa_flutter/views/check/image_show_container.dart';
|
||||||
import 'package:aman_kassa_flutter/views/history/history_view.dart';
|
import 'package:aman_kassa_flutter/views/history/history_view.dart';
|
||||||
import 'package:aman_kassa_flutter/views/info_kkm/info_kkm_view.dart';
|
import 'package:aman_kassa_flutter/views/info_kkm/info_kkm_view.dart';
|
||||||
|
|
@ -15,7 +16,9 @@ Route<dynamic> generateRoute(RouteSettings settings) {
|
||||||
LoginModel model = settings.arguments as LoginModel;
|
LoginModel model = settings.arguments as LoginModel;
|
||||||
return _getPageRoute(
|
return _getPageRoute(
|
||||||
routeName: settings.name,
|
routeName: settings.name,
|
||||||
viewToShow: LoginView(loginModel: model,),
|
viewToShow: LoginView(
|
||||||
|
loginModel: model,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
case HomeViewRoute:
|
case HomeViewRoute:
|
||||||
return _getPageRoute(
|
return _getPageRoute(
|
||||||
|
|
@ -38,6 +41,11 @@ Route<dynamic> generateRoute(RouteSettings settings) {
|
||||||
routeName: settings.name,
|
routeName: settings.name,
|
||||||
viewToShow: InfoKkmView(),
|
viewToShow: InfoKkmView(),
|
||||||
);
|
);
|
||||||
|
case BankViewRoute:
|
||||||
|
return _getPageRoute(
|
||||||
|
routeName: settings.name,
|
||||||
|
viewToShow: BankView(),
|
||||||
|
);
|
||||||
case QrViewRoute:
|
case QrViewRoute:
|
||||||
ImageShowModel data = settings.arguments as ImageShowModel;
|
ImageShowModel data = settings.arguments as ImageShowModel;
|
||||||
return _getPageRoute(
|
return _getPageRoute(
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,13 @@ import 'package:flutter/material.dart';
|
||||||
const List<Choice> choices = const <Choice>[
|
const List<Choice> choices = const <Choice>[
|
||||||
//const Choice(title: 'Обновить номенклатуру', icon: Icons.update, command: 'update'),
|
//const Choice(title: 'Обновить номенклатуру', icon: Icons.update, command: 'update'),
|
||||||
//const Choice(title: 'Помощь', icon: Icons.help, command: 'help'),
|
//const Choice(title: 'Помощь', icon: Icons.help, command: 'help'),
|
||||||
const Choice(title: 'Информацио о ККМ', icon: Icons.info_outline, command: 'infokkm'),
|
const Choice(
|
||||||
//const Choice(title: 'Язык', icon: Icons.language, command: 'language'),
|
title: 'Информацио о ККМ', icon: Icons.info_outline, command: 'infokkm'),
|
||||||
|
const Choice(title: 'Bank', icon: Icons.text_fields, command: 'bank'),
|
||||||
const Choice(title: 'Выйти', icon: Icons.exit_to_app, command: 'exit')
|
const Choice(title: 'Выйти', icon: Icons.exit_to_app, command: 'exit')
|
||||||
];
|
];
|
||||||
|
|
||||||
class PopupMenu extends StatelessWidget {
|
class PopupMenu extends StatelessWidget {
|
||||||
|
|
||||||
final void Function(Choice value) onSelectChoice;
|
final void Function(Choice value) onSelectChoice;
|
||||||
|
|
||||||
PopupMenu({this.onSelectChoice});
|
PopupMenu({this.onSelectChoice});
|
||||||
|
|
@ -28,11 +28,18 @@ class PopupMenu extends StatelessWidget {
|
||||||
return choices.map((Choice choice) {
|
return choices.map((Choice choice) {
|
||||||
return PopupMenuItem<Choice>(
|
return PopupMenuItem<Choice>(
|
||||||
value: choice,
|
value: choice,
|
||||||
child: Row(children: <Widget>[
|
child: Row(
|
||||||
Icon(choice.icon, color: primaryColor,),
|
children: <Widget>[
|
||||||
SizedBox(width: 5,),
|
Icon(
|
||||||
Text(choice.title)
|
choice.icon,
|
||||||
], ),
|
color: primaryColor,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 5,
|
||||||
|
),
|
||||||
|
Text(choice.title)
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -57,13 +57,16 @@ class _HomeViewState extends State<HomeView> {
|
||||||
void _onSelectChoice(Choice choice) async {
|
void _onSelectChoice(Choice choice) async {
|
||||||
if (choice.command == 'exit') {
|
if (choice.command == 'exit') {
|
||||||
Dialogs.showLoadingDialog(context, _keyLoader);
|
Dialogs.showLoadingDialog(context, _keyLoader);
|
||||||
Response<dynamic> result = await _api.logout(Redux.store.state.userState.user.token);
|
Response<dynamic> result =
|
||||||
if(result.operation && result.status == 200) {
|
await _api.logout(Redux.store.state.userState.user.token);
|
||||||
|
if (result.operation && result.status == 200) {
|
||||||
Redux.store.dispatch(logoutAction);
|
Redux.store.dispatch(logoutAction);
|
||||||
}
|
}
|
||||||
Navigator.of(_keyLoader.currentContext, rootNavigator: true).pop();
|
Navigator.of(_keyLoader.currentContext, rootNavigator: true).pop();
|
||||||
} else if (choice.command == 'infokkm') {
|
} else if (choice.command == 'infokkm') {
|
||||||
_navigatorService.push(InfoKkmViewRoute);
|
_navigatorService.push(InfoKkmViewRoute);
|
||||||
|
} else if (choice.command == 'bank') {
|
||||||
|
_navigatorService.push(BankViewRoute);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -81,26 +84,25 @@ class _HomeViewState extends State<HomeView> {
|
||||||
],
|
],
|
||||||
backgroundColor: fillColor,
|
backgroundColor: fillColor,
|
||||||
),
|
),
|
||||||
body:StoreConnector<AppState, SettingState>(
|
body: StoreConnector<AppState, SettingState>(
|
||||||
converter: (store) => store.state.settingState,
|
converter: (store) => store.state.settingState,
|
||||||
builder: (context, vm) {
|
builder: (context, vm) {
|
||||||
return PageView(
|
return PageView(
|
||||||
onPageChanged: (index) {
|
onPageChanged: (index) {
|
||||||
setState(() {
|
setState(() {
|
||||||
selectedTabIndex = index;
|
selectedTabIndex = index;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
controller: pageController,
|
controller: pageController,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
vm.mode == SettingModeKassa ? KassaTab(0) : CalculatorTab(0),
|
vm.mode == SettingModeKassa ? KassaTab(0) : CalculatorTab(0),
|
||||||
AdditionalTab(1),
|
AdditionalTab(1),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}),
|
||||||
),
|
|
||||||
bottomNavigationBar: BottomBar(
|
bottomNavigationBar: BottomBar(
|
||||||
pageController: pageController,
|
pageController: pageController,
|
||||||
selectedTabIndex: selectedTabIndex,
|
selectedTabIndex: selectedTabIndex,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue