| @@ -53,7 +53,8 @@ class HomePage extends StatefulWidget { | |||
| _HomePageState createState() => _HomePageState(); | |||
| } | |||
| class _HomePageState extends State<HomePage> with WidgetsBindingObserver, TickerProviderStateMixin, AutomaticKeepAliveClientMixin { | |||
| class _HomePageState extends State<HomePage> | |||
| with WidgetsBindingObserver, TickerProviderStateMixin, AutomaticKeepAliveClientMixin { | |||
| int _currentIndex = 0; | |||
| List<Map<String, dynamic>> _data = List(); | |||
| static const EventChannel _eventChannel = const EventChannel('JAVA_TO_FLUTTER'); | |||
| @@ -72,7 +73,8 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| //如果登出则重新打开首页 | |||
| streamSubscription = EventUtil.instance.on<LogOut>().listen((event) async { | |||
| UserInfoModel user = await Provider.of<UserInfoNotifier>(context, listen: false).getUserInfoModel(); | |||
| UserInfoModel user = | |||
| await Provider.of<UserInfoNotifier>(context, listen: false).getUserInfoModel(); | |||
| user.token = ''; | |||
| Navigator.maybePop(context); | |||
| print("重启1"); | |||
| @@ -123,7 +125,8 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| //app后台杀死时候的还原 | |||
| Moblink.restoreScene(_restore); | |||
| // 监听开始(传递监听到原生端,用户监听场景还原的数据回传回来) | |||
| eventChannelSubscription = _eventChannel.receiveBroadcastStream().listen(_onEvent, onError: _onError); | |||
| eventChannelSubscription = | |||
| _eventChannel.receiveBroadcastStream().listen(_onEvent, onError: _onError); | |||
| logOutSubscription = EventUtil.instance.on<LogOut>().listen((event) { | |||
| MobPushUtil.deleteAlias(); | |||
| @@ -131,7 +134,8 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| }); | |||
| MobPushUtil.addPushReceiver(); | |||
| loginSubscription = EventUtil.instance.on<LoginSuccessEvent>().listen((event) async { | |||
| loginSubscription = | |||
| EventUtil.instance.on<LoginSuccessEvent>().listen((event) async { | |||
| setAlias(); | |||
| }); | |||
| } catch (e, s) { | |||
| @@ -190,6 +194,8 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| } | |||
| List<Widget> contentWidgets = tabs.map((item) { | |||
| BaseTabModel model = BaseTabModel.fromJson(item); | |||
| //首页底部创建的item,把抖券判断置true | |||
| item['is_bottom_video']=true; | |||
| return PageFactory.create(model.skipIdentifier, item); | |||
| }).toList(); | |||
| if (_currentIndex >= contentWidgets.length) { | |||
| @@ -229,7 +235,9 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| ), | |||
| title: Text( | |||
| model.name, | |||
| style: TextStyle(fontSize: 11, color: HexColor.fromHex(_currentIndex == i ? chooseColor : textColor)), | |||
| style: TextStyle( | |||
| fontSize: 11, | |||
| color: HexColor.fromHex(_currentIndex == i ? chooseColor : textColor)), | |||
| ))); | |||
| } | |||
| } | |||
| @@ -251,6 +259,7 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| elevation: 0, | |||
| onTap: ((index) async { | |||
| BaseTabModel model = BaseTabModel.fromJson(tabs[index]); | |||
| if (await _checkLimit(model)) { | |||
| ///避免同一个页面多次点击多次重绘 | |||
| if (_currentIndex == index) { | |||
| @@ -264,6 +273,7 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| setState(() { | |||
| _currentIndex = index; | |||
| }); | |||
| EventUtil.instance.fire(model?.skipIdentifier); | |||
| } | |||
| } | |||
| }), | |||
| @@ -330,7 +340,8 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| Future<bool> _checkLimit(BaseTabModel model) async { | |||
| if (model.requiredLogin == '1') { | |||
| UserInfoModel user = await Provider.of<UserInfoNotifier>(context, listen: false).getUserInfoModel(); | |||
| UserInfoModel user = | |||
| await Provider.of<UserInfoNotifier>(context, listen: false).getUserInfoModel(); | |||
| print(user.toString()); | |||
| if (user?.token == null || user.token == '') { | |||
| print('need login...'); | |||
| @@ -351,15 +362,20 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| await Future.delayed(Duration(milliseconds: 1000), () async { | |||
| // 通知弹窗 | |||
| ///每打开5次检查一次权限 | |||
| String showNotiPermissionTime = await SharedPreferencesUtil.getStringValue(Constants.showNotiPermissionTime, defaultVal: "5"); | |||
| String showNotiPermissionTime = await SharedPreferencesUtil.getStringValue( | |||
| Constants.showNotiPermissionTime, | |||
| defaultVal: "5"); | |||
| int timer = int.tryParse(showNotiPermissionTime) ?? 0; | |||
| if (timer % 5 == 0) { | |||
| timer++; | |||
| SharedPreferencesUtil.setStringValue(Constants.showNotiPermissionTime, timer.toString()); | |||
| SharedPreferencesUtil.setStringValue( | |||
| Constants.showNotiPermissionTime, timer.toString()); | |||
| if (!await Permission.storage.isGranted) { | |||
| await NotificationSettingDialogNew.show(context); | |||
| } | |||
| String notificationAgree = await SharedPreferencesUtil.getStringValue(Constants.notificationAgree, defaultVal: "0"); | |||
| String notificationAgree = await SharedPreferencesUtil.getStringValue( | |||
| Constants.notificationAgree, | |||
| defaultVal: "0"); | |||
| if (notificationAgree == "1" && await Permission.notification.isGranted) { | |||
| ///啥也不干 | |||
| @@ -449,14 +465,17 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| void showAlert(String text, BuildContext context) { | |||
| showDialog( | |||
| context: context, | |||
| builder: (BuildContext context) => CupertinoAlertDialog(title: new Text("提示"), content: new Text(text), actions: <Widget>[ | |||
| new FlatButton( | |||
| child: new Text("OK"), | |||
| onPressed: () { | |||
| Navigator.of(context).pop(); | |||
| }, | |||
| ) | |||
| ])); | |||
| builder: (BuildContext context) => CupertinoAlertDialog( | |||
| title: new Text("提示"), | |||
| content: new Text(text), | |||
| actions: <Widget>[ | |||
| new FlatButton( | |||
| child: new Text("OK"), | |||
| onPressed: () { | |||
| Navigator.of(context).pop(); | |||
| }, | |||
| ) | |||
| ])); | |||
| } | |||
| @override | |||
| @@ -478,7 +497,9 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver, Ticker | |||
| ///设置定向推送 | |||
| void setAlias() async { | |||
| ///如果没有开启通知则设置别名 | |||
| if (await SharedPreferencesUtil.getStringValue(Constants.notificationAgree, defaultVal: "0") == "1") { | |||
| if (await SharedPreferencesUtil.getStringValue(Constants.notificationAgree, | |||
| defaultVal: "0") == | |||
| "1") { | |||
| UserInfoModel userInfo = UserInfoNotifier?.staitcUserInfo; | |||
| var setting = await NativeUtil.getSetting(); | |||
| String masterId = setting['master_id']; | |||
| @@ -534,4 +555,4 @@ abstract class LifeState<T extends StatefulWidget> extends State<T> with RouteAw | |||
| void onResume(); | |||
| void onPaused(); | |||
| } | |||
| } | |||