/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 * @flow
 */

import React, { Component } from "react";
import {
  Platform,
  StyleSheet,
  Text,
  View,
  Image,
  FlatList,
  TouchableOpacity,
  ImageBackground,
  TextInput,
  Button,
  ViewPagerAndroid,
  DeviceEventEmitter
} from "react-native";
import Swiper from "react-native-swiper";
import AndroidUtil from "../../util/AndroidUtil";
import BasePage from "../BasePage";
import Header from "./Header";
import Swipers from "./Swiper";
import Dimensions from '../utils/dimensions'


export default class MainPage extends BasePage {
  constructor(props) {
    super(props);
    this.state = {
      grade: '大学',
      text: '小伙子'
    }
  }

  render() {
    return (
      <View style={{ flex: 1 }}>

        <FlatList
          style={{ flex: 1 }}
          ref="_flatlist"
          horizontal={false}
          removeClippedSubviews={false}
          ListHeaderComponent={() => this.headerorfooterComponent()}
          // searchSection={() => this.renderSearchSection()}
          keyExtractor={(item, index) => item.key.toString()}
          renderItem={({ item }) => {
            return this.loadFlatItem(item);
          }}
          data={[
            {
              //轮播
              key: 111,
              typea: 1,
              text: "第一种类型"
            },
            {
              //标题类型
              key: 333,
              typea: 0,
              title: "全部课程全部课程全部课程全部课程全部课程全部课程"
            },
            {
              //只有一个标题下面两个图片
              key: 222,
              typea: 2,
              item: {
                item_type: 1,
                title: "课程表:第一周",
                icon_item: [
                  {
                    icon:
                      "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                    name: "第一张图片文字"
                  },
                  {
                    icon:
                      "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                    name: "第二张图片文字"
                  }
                ]
              }
            },
            {
              //一个标题,大长图
              key: 444,
              typea: 3,
              title: "五月主题:五一启程,去看看不同世界",
              text: "每天30分钟,玩学两不误",
              icon_item: [
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第一张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第二张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第三张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第四张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第五张图片文字"
                }
              ]
            },
            {
              key: 555,
              typea: 4,
              title: "热门课程",
              text: "text",
              mask: false,
              icon_item: [
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第一张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第二张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第三张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第四张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第五张图片文字"
                }
              ]
            },
            {
              //标题类型
              key: 0,
              typea: 0,
              title: "全部课程"
            },
            {
              //一个标题,icon下有文字
              key: 666,
              typea: 4,
              title: "测试text为空的时候",
              text: "",
              mask: false,
              icon_item: [
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第一张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第二张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第三张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第四张图片文字"
                },
                {
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第五张图片文字"
                }
              ]
            },
            {
              key: 777,
              typea: 4,
              title: "测试观看记录",
              text: "",
              mask: true,
              icon_item: [
                {
                  last_time: "2小时前",
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第一张图片文字",
                  curriculum_name: "课件名字"
                },
                {
                  last_time: "3小时前",
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第二张图片文字",
                  curriculum_name: "课件名字1"
                },
                {
                  last_time: "4小时前",
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第三张图片文字",
                  curriculum_name: "课件名字2"
                },
                {
                  last_time: "1天前",
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第四张图片文字",
                  curriculum_name: "课件名字3"
                },
                {
                  last_time: "2天前",
                  icon:
                    "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg",
                  name: "第五张图片文字",
                  curriculum_name: "课件名字4"
                }
              ]
            }
          ]}
        />
      </View>
    );
  }

  // flat 头部组件
  headerorfooterComponent() {
    return (
      <View>
        <Header
          uri="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1295208965,3056573814&amp;fm=26&amp;gp=0.jpg"
          width={400}
          height={150}
          username="卡通笨笨熊"
          flowerNumber="123234"
          onPress={() => this.toNextPage("MainActivity")}
        />
        {/* 搜索区域 */}
        <View style={styles.searchSection}>
          <TextInput
            style={styles.searchBox}
            onChangeText={(text) => this.setState({ text })}
            value={this.state.text}
          />
          <View
            style={styles.rightBtn}
          > 
            <Image 
              source={{uri: 'https://facebook.github.io/react-native/docs/assets/favicon.png'}}
              style={styles.rightBtnIcon}
            />
            <Text
              style={styles.rightBtnText}
            >
              {this.state.grade}
            </Text>
          </View>
        </View>
      </View>

    );
  }


  loadFlatItem(data) {
    switch (data.typea) {
      // case 0:
      //   return (
      //     <View
      //       style={{
      //         height: 50,
      //         width: "100%",
      //         justifyContent: "center",
      //         alignItems: "center",
      //         backgroundColor: "red"
      //       }}
      //     >
      //       <View
      //         style={{
      //           height: "60%",
      //           justifyContent: "center",
      //           alignItems: "center",
      //           width: "90%",
      //           backgroundColor: "green",
      //           borderRadius: 20,
      //           flexDirection: "row"
      //         }}
      //       >
      //         <View style={{ flex: 0.2 }} />
      //         <Text
      //           numberOfLines={1}
      //           style={{
      //             flex: 12,
      //             justifyContent: "center",
      //             alignItems: "center",
      //             fontSize: 18,
      //             fontWeight: "bold",
      //             color: "#3E455B"
      //           }}
      //         >
      //           {data.title}
      //         </Text>

      //         <View
      //           style={{
      //             flex: 1,
      //             height: "100%",
      //             justifyContent: "center",
      //             alignItems: "center"
      //           }}
      //         >
      //           <Image
      //             source={{
      //               uri:
      //                 "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1295208965,3056573814&fm=26&gp=0.jpg"
      //             }}
      //             style={{
      //               width: "50%",
      //               height: "50%",
      //               justifyContent: "center",
      //               alignItems: "center",
      //               borderRadius: 30
      //             }}
      //           />
      //         </View>
      //       </View>
      //     </View>
      //   );
      //   break;
      case 1:
        return (
          <View
            style={{
              height:193,
              flex: 1,
              justifyContent: "center",
              alignItems: "center",
              flexDirection: "row",
              backgroundColor: 'red'
            }}
          >
            <View
              style={{
                // width: "90%",
                width: Dimensions.width,
                // overflow: "hidden",
                height: 150
              }}
            >
            <Swipers 
              autoplay={true}
              loop={true}
              ifShowMiddle={true}
            />
            </View>
          </View>
        );
        break;
      case 2:
        let arr = [];
        let index = 0;
        for (let item of data.item.icon_item) {
          arr.push(
            <TouchableOpacity
              style={{ flex: 2 }}
              onPress={() => {
                alert(item.name);
              }}
              key={index}
              activeOpacity={1}
            >
              <Image
                source={{
                  uri: item.icon
                }}
                key={index}
                style={{
                  width: "100%",
                  height: "100%",
                  justifyContent: "center",
                  alignItems: "center",
                  borderRadius: 10
                }}
              />
            </TouchableOpacity>
          );
          if (index < data.item.icon_item.length - 1) {
            arr.push(
              <View
                key={item.name}
                style={{
                  flex: 0.1
                }}
              />
            );
          }
          index++;
        }
        return (
          <View
            style={{
              marginTop: 20,
              flex: 1,
              justifyContent: "center",
              alignItems: "center"
            }}
          >
            <View
              style={{
                flex: 1,
                flexDirection: "column",
                width: "90%",
                height: 150
              }}
            >
              <Text
                style={{
                  flex: 0.5,
                  fontSize: 18,
                  fontWeight: "bold",
                  color: "#3E455B"
                }}
              >
                {data.item.title}
              </Text>
              <View
                style={{
                  flex: 2,
                  flexDirection: "row",
                  justifyContent: "space-between"
                }}
              >
                {arr}
              </View>
            </View>
          </View>
        );
        break;
      case 3:
        return (
          <View
            style={{
              marginTop: 20,
              flex: 1,
              justifyContent: "center",
              alignItems: "center"
            }}
          >
            <View
              style={{
                width: "90%",
                height: 200,
                flexDirection: "column"
              }}
            >
              <View
                style={{
                  flex: 0.5,
                  justifyContent: "center",
                  alignItems: "center",
                  flexDirection: "row"
                }}
              >
                <View
                  style={{
                    flex: 0.1,
                    height: 14,
                    justifyContent: "flex-start",
                    alignItems: "center",
                    backgroundColor: "#01AFFE",
                    borderRadius: 20
                  }}
                />
                <View
                  style={{
                    flex: 0.1
                  }}
                />
                <Text
                  numberOfLines={1}
                  style={{
                    flex: 11,
                    fontSize: 18,
                    fontWeight: "bold",
                    color: "#3E455B"
                  }}
                >
                  {data.title}
                </Text>
              </View>
              {text_z}
              <View
                style={{
                  flex: 3
                }}
              >
                <FlatList
                  style={{
                    flex: 1
                  }}
                  ItemSeparatorComponent={() => (
                    <View
                      style={{
                        width: 10
                      }}
                    />
                  )}
                  showsHorizontalScrollIndicator={false}
                  keyExtractor={(item, index) => item.name.toString()}
                  data={data.icon_item}
                  horizontal={true}
                  renderItem={({ item }) => {
                    return (
                      <TouchableOpacity
                        style={{
                          flex: 1,
                          height: "100%",
                          width: this.getWindowWidth() * 0.9
                        }}
                        onPress={() => {
                          alert(item.name);
                        }}
                        activeOpacity={1}
                      >
                        <Image
                          source={{
                            uri: item.icon
                          }}
                          style={{
                            height: "100%",
                            width: "100%",
                            justifyContent: "center",
                            alignItems: "center",
                            borderRadius: 20
                          }}
                        />
                      </TouchableOpacity>
                    );
                  }}
                />
              </View>
            </View>
          </View>
        );
        break;
      case 4:
        let text_z = [];
        let zhezhao = [];
        let view_height = 190;
        //判断是否需要text
        if (data.text != "") {
          view_height = 217;
          text_z.push(
            <View
              key={data.text}
              style={{
                flex: 0.5,
                justifyContent: "center",
                alignItems: "center",
                flexDirection: "row"
              }}
            >
              <View
                style={{
                  flex: 1,
                  flexDirection: "row"
                }}
              >
                <View
                  style={{
                    flex: 0.2
                  }}
                />
                <Text
                  style={{
                    flex: 11,
                    color: "#8F94AA"
                  }}
                >
                  {data.text}
                </Text>
              </View>
            </View>
          );
        }

        return (
          <View
            style={{
              marginTop: 20,
              flex: 1,
              justifyContent: "center",
              alignItems: "center"
            }}
          >
            <View
              style={{
                width: "90%",
                height: view_height,
                flexDirection: "column"
              }}
            >
              <View
                style={{
                  flex: 0.5,
                  justifyContent: "center",
                  alignItems: "center",
                  flexDirection: "row"
                }}
              >
                <View
                  style={{
                    flex: 0.1,
                    height: 14,
                    justifyContent: "flex-start",
                    alignItems: "center",
                    backgroundColor: "#01AFFE",
                    borderRadius: 15
                  }}
                />
                <View
                  style={{
                    flex: 0.1
                  }}
                />
                <Text
                  style={{
                    flex: 11,
                    fontSize: 18,
                    fontWeight: "bold",
                    color: "#3E455B"
                  }}
                >
                  {data.title}
                </Text>
              </View>
              {text_z}
              <View
                style={{
                  flex: 3
                }}
              >
                <FlatList
                  style={{
                    flex: 1
                  }}
                  ItemSeparatorComponent={() => (
                    <View
                      style={{
                        width: 10
                      }}
                    />
                  )}
                  showsHorizontalScrollIndicator={false}
                  keyExtractor={(item, index) => item.name.toString()}
                  data={data.icon_item}
                  horizontal={true}
                  renderItem={({ item }) => {
                    //判断是否需要遮盖层(观看记录)
                    if (data.mask) {
                      zhezhao = [];
                      zhezhao.push(
                        <View
                          key={item.name}
                          style={{
                            flex: 1,
                            width: "100%",
                            flexDirection: "column"
                          }}
                        >
                          <View
                            style={{
                              flex: 2
                            }}
                          />
                          <View
                            style={{
                              flex: 1,
                              backgroundColor: "#344563",
                              width: "100%",
                              borderBottomLeftRadius: 15,
                              borderBottomRightRadius: 15,
                              flexDirection: "row"
                            }}
                          >
                            <View
                              style={{
                                flex: 0.1
                              }}
                            />
                            <View
                              style={{
                                flex: 1
                              }}
                            >
                              <Text
                                style={{
                                  flex: 1,
                                  color: "red",
                                  textAlign: "left"
                                }}
                              >
                                {item.last_time + ":"}
                              </Text>
                              <Text
                                style={{
                                  flex: 1,
                                  color: "red",
                                  textAlign: "left"
                                }}
                              >
                                {item.curriculum_name}
                              </Text>
                            </View>
                          </View>
                        </View>
                      );
                    }
                    return (
                      <TouchableOpacity
                        style={{
                          flex: 1,
                          height: "100%",
                          width: this.getWindowWidth() * 0.22
                        }}
                        onPress={() => {
                          alert(item.name);
                        }}
                        activeOpacity={1}
                      >
                        <View
                          style={{
                            flex: 1,
                            height: "100%",
                            width: "100%",
                            justifyContent: "center",
                            alignItems: "center"
                          }}
                        >
                          <View
                            style={{
                              flex: 5,
                              height: "100%",
                              width: "100%",
                              justifyContent: "center",
                              alignItems: "center"
                            }}
                          >
                            <ImageBackground
                              source={{
                                uri: item.icon
                              }}
                              style={{
                                height: "100%",
                                width: "100%",
                                justifyContent: "center",
                                alignItems: "center"
                              }}
                              imageStyle={{
                                borderRadius: 20
                              }}
                            >
                              {zhezhao}
                            </ImageBackground>
                          </View>

                          <Text
                            style={{
                              justifyContent: "center",
                              alignItems: "center",
                              flex: 1,
                              fontSize: 12
                            }}
                          >
                            {item.name}
                          </Text>
                        </View>
                      </TouchableOpacity>
                    );
                  }}
                />
              </View>
            </View>
          </View>
        );
        break;
      case 5:
        break;
      case 6:
        break;
      case 7:
        break;
      case 8:
        break;
    }
  }
}

const styles = StyleSheet.create({
  title_text: {
    justifyContent: "center",
    alignItems: "center",
    color: "red",
    fontSize: 30,
    textAlign: "center",
    marginTop: 30,
    marginBottom: 50
  },
  /* 搜索区域 */
  searchSection: {
    flex: 1,
    width: Dimensions.width,
    height: 60,
    flexDirection: 'row',
    alignItems: 'center',
    backgroundColor: '#f0f1f5',
    justifyContent: 'space-around'
  },
  searchBox: {
    width: 232,
    height: 40,
    backgroundColor: '#fff',
    borderRadius: 20
  },
  rightBtn: {
    width: 113,
    height: 40,
    backgroundColor: '#fff',
    borderRadius: 20,
    alignItems: 'center',
    justifyContent: 'center',
    justifyContent: 'space-around',
    flexDirection: 'row',
    paddingLeft: 20,
    paddingRight: 10,
  },
  rightBtnIcon:{
    width:14,
    height:14
  },
  rightBtnText: {
    color: '#151515',
    fontSize: 18,
  }
  /* 轮播图区域 */
});