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

import React, { Component } from "react";
import {
  Platform,
  StyleSheet,
  Text,
  View,
  Image,
  TouchableOpacity,
  ImageBackground,
  Button,
  StatusBar,
  Modal,
  TouchableHighlight,
  DeviceEventEmitter
} from "react-native";
import AndroidUtil from "../../util/AndroidUtil";
import BasePage from "../BasePage";
import CourseTitle from "./CourseTitle";
import ChosePhoto from "./ChosePhoto";
import RegionModal from "./RegionModal";
import BirthdayModal from "./BirthdayModal";
import GradeSelectionModal from "./GradeSelectionModal";
import Header from "./Header";
import PersonalInfoDialog from "./PersonalInfoDialog";

type Props = {};
export default class PersonalInfo extends BasePage {
  state = {
    nickName: "初始昵称",
    schoolName: "未设置",
    cisys: "北京市",
    grade_text: "七年级",
    grade_index: 6,
    birthday_time: 0
  };
  updateState(data) {
    this.setState(data);
  }
  render() {
    return (
      <View style={{ flex: 1 }}>
        <PersonalInfoDialog
          ref={view => (this.dialog = view)}
          updateParentState={this.updateState.bind(this)}
        />
        <ChosePhoto ref={view => (this.chosephoto = view)} />
        <RegionModal
          ref={view => (this.regionmodal = view)}
          cityscommit={this.cityscommit.bind(this)}
        />
        <GradeSelectionModal
          ref={view => (this.gradeselectionModal = view)}
          commitGrade={this.commitGrade.bind(this)}
          grade_index={this.state.grade_index}
        />
        <BirthdayModal
          ref={view => (this.birthdaymodal = view)}
          birthdaycommit={this.birthdaycommit.bind(this)}
        />
        <StatusBar backgroundColor={"transparent"} translucent={true} />

        <View
          style={{
            flex: 1,
            flexDirection: "column"
          }}
        >
          <ImageBackground
            source={require("../images/userInfo/top.png")}
            style={{
              flex: 2.8,
              width: "100%",
              backgroundColor: "#F0F1F5",
              height: "75%"
            }}
            imageStyle={{ resizeMode: "cover" }}
          >
            <View
              style={{
                flex: 1,
                alignItems: "center",
                justifyContent: "center",
                flexDirection: "column"
              }}
            >
              <CourseTitle
                style={{ flex: 4 }}
                width={this.getWindowWidth()}
                title="个人信息"
                backPress={() => this.goBack()}
                lefttype={2}
                righttype={0}
                textcolor={"white"}
                backPress={() => this.goBack()}
              />

              <TouchableOpacity
                style={{
                  flex: 1,
                  backgroundColor: "white",
                  width: "90%",
                  bottom: 0,
                  alignItems: "center",
                  justifyContent: "center",
                  borderRadius: 20,
                  overflow: "hidden"
                }}
                activeOpacity={1}
                onPress={() => this.arrowpress(0)}
              >
                <View
                  style={{
                    flex: 1,
                    borderRadius: 20,
                    overflow: "hidden",
                    alignItems: "center",
                    justifyContent: "center",
                    flexDirection: "row"
                  }}
                >
                  <View style={{ flex: 0.5 }} />

                  <View
                    style={{
                      flex: 3,
                      height: "100%",
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    <Image
                      style={{
                        borderRadius: 50,
                        width: "80%",
                        height: "70%"
                        // borderWidth: 3
                        // borderColor: "red"
                      }}
                      source={{
                        uri:
                          "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"
                      }}
                    />
                  </View>
                  <View
                    style={{
                      flex: 9,
                      backgroundColor: "white",
                      height: "100%",
                      justifyContent: "center"
                    }}
                  >
                    <Text style={{ left: 10, color: "black", fontSize: 20 }}>
                      修改头像
                    </Text>
                  </View>
                  <View
                    style={{
                      flex: 1.5,
                      height: "65%",
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.getArraowImg(0)}
                  </View>
                </View>
              </TouchableOpacity>
            </View>
          </ImageBackground>
          <View style={{ flex: 0.5, backgroundColor: "#F0F1F5" }} />
          <View
            style={{
              width: "100%",
              flex: 4.3,
              alignItems: "center",
              backgroundColor: "#F0F1F5"
            }}
          >
            <View
              style={{
                backgroundColor: "rgb(242, 242, 242)",
                width: "90%",
                alignItems: "center",
                justifyContent: "center",
                height: "100%",
                overflow: "hidden",
                borderRadius: 10
              }}
            >
              <View
                style={{
                  width: "100%",
                  alignItems: "center",
                  justifyContent: "center",
                  height: "100%"
                }}
              >
                <TouchableOpacity
                  style={{
                    flex: 1,
                    marginVertical: 1,
                    width: "100%",
                    flexDirection: "row",
                    backgroundColor: "white"
                  }}
                  activeOpacity={1}
                  onPress={() => this.arrowpress(1)}
                >
                  <View
                    style={{
                      flex: 2,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.choseheadericon(1)}
                  </View>
                  <Text style={styles.item_text}>昵称</Text>
                  <View
                    style={{
                      flex: 5,
                      alignItems: "flex-end"
                    }}
                  >
                    <Text
                      style={{
                        flex: 1,
                        fontSize: 15,
                        textAlignVertical: "center"
                      }}
                      numberOfLines={1}
                      ellipsizeMode={"tail"}
                    >
                      {this.state.nickName}
                    </Text>
                  </View>
                  <View
                    style={{
                      flex: 1.1,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.getArraowImg(1)}
                  </View>
                </TouchableOpacity>
                <TouchableOpacity
                  style={{
                    flex: 1,
                    width: "100%",
                    flexDirection: "row",
                    backgroundColor: "white",
                    marginVertical: 1
                  }}
                  activeOpacity={1}
                  onPress={() => this.arrowpress(2)}
                >
                  <View
                    style={{
                      flex: 2,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.choseheadericon(2)}
                  </View>
                  <Text style={styles.item_text}>生日</Text>
                  <View
                    style={{
                      flex: 5,
                      alignItems: "flex-end"
                    }}
                  >
                    <Text
                      style={{
                        flex: 1,
                        fontSize: 15,
                        textAlignVertical: "center"
                      }}
                      numberOfLines={1}
                      ellipsizeMode={"tail"}
                    >
                      {this.state.birthday_time}
                    </Text>
                  </View>
                  <View
                    style={{
                      flex: 1.1,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.getArraowImg(2)}
                  </View>
                </TouchableOpacity>
                <TouchableOpacity
                  style={{
                    flex: 1,
                    width: "100%",
                    flexDirection: "row",
                    backgroundColor: "white",
                    marginVertical: 1
                  }}
                  activeOpacity={1}
                  onPress={() => this.arrowpress(3)}
                >
                  <View
                    style={{
                      flex: 2,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.choseheadericon(3)}
                  </View>

                  <Text style={styles.item_text}>所在地区</Text>
                  <View
                    style={{
                      flex: 5,
                      alignItems: "flex-end"
                    }}
                  >
                    <Text
                      style={{
                        flex: 1,
                        fontSize: 15,
                        textAlignVertical: "center"
                      }}
                      numberOfLines={1}
                      ellipsizeMode={"tail"}
                    >
                      {this.state.cisys}
                    </Text>
                  </View>
                  <View
                    style={{
                      flex: 1.1,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.getArraowImg(3)}
                  </View>
                </TouchableOpacity>
                <TouchableOpacity
                  style={{
                    flex: 1,
                    width: "100%",
                    flexDirection: "row",
                    backgroundColor: "white",
                    marginVertical: 1
                  }}
                  activeOpacity={1}
                  onPress={() => this.arrowpress(4)}
                >
                  <View
                    style={{
                      flex: 2,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.choseheadericon(4)}
                  </View>

                  <Text style={styles.item_text}>我的学校</Text>
                  <View
                    style={{
                      flex: 5,
                      alignItems: "flex-end"
                    }}
                  >
                    <Text
                      style={{
                        flex: 1,
                        fontSize: 15,
                        textAlignVertical: "center"
                      }}
                      numberOfLines={1}
                      ellipsizeMode={"tail"}
                    >
                      {this.state.schoolName}
                    </Text>
                  </View>
                  <View
                    style={{
                      flex: 1.1,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.getArraowImg(4)}
                  </View>
                </TouchableOpacity>
                <TouchableOpacity
                  style={{
                    flex: 1,
                    marginTop: 1,
                    width: "100%",
                    flexDirection: "row",
                    backgroundColor: "white",
                    marginVertical: 1
                  }}
                  activeOpacity={1}
                  onPress={() => this.arrowpress(5)}
                >
                  <View
                    style={{
                      flex: 2,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.choseheadericon(5)}
                  </View>

                  <Text style={styles.item_text}>我的年级</Text>
                  <View
                    style={{
                      flex: 5,
                      alignItems: "flex-end"
                    }}
                  >
                    <Text
                      style={{
                        flex: 1.1,
                        fontSize: 15,
                        textAlignVertical: "center"
                      }}
                      numberOfLines={1}
                      ellipsizeMode={"tail"}
                    >
                      {this.state.grade_text}
                    </Text>
                  </View>
                  <View
                    style={{
                      flex: 1.1,
                      alignItems: "center",
                      justifyContent: "center"
                    }}
                  >
                    {this.getArraowImg(5)}
                  </View>
                </TouchableOpacity>
              </View>
            </View>
          </View>

          <View
            style={{
              width: "100%",
              flex: 4,
              backgroundColor: "#F0F1F5",
              flexDirection: "column"
            }}
          >
            <View style={{ flex: 2.5 }} />
            <View style={{ flex: 2, flexDirection: "row" }}>
              <View style={{ flex: 1 }} />
              <View
                style={{
                  flex: 7,
                  width: "100%",
                  height: "100%"
                }}
              >
                <TouchableOpacity
                  activeOpacity={1}
                  style={{
                    flex: 2,
                    width: "100%",
                    alignItems: "center",
                    justifyContent: "center",
                    height: "100%"
                  }}
                  onPress={() => this.logout()}
                >
                  <ImageBackground
                    source={require("../images/userInfo/logoutbg1.png")}
                    style={{
                      flex: 1,
                      width: "100%",
                      alignItems: "center",
                      justifyContent: "center",
                      height: "100%"
                    }}
                    imageStyle={{ resizeMode: "contain" }}
                  >
                    <Text
                      style={{
                        fontSize: 30,
                        color: "white",
                        width: "100%",
                        textAlign: "center"
                      }}
                    >
                      退出登录
                    </Text>
                  </ImageBackground>
                </TouchableOpacity>
                <View style={{ flex: 1 }} />
              </View>
              <View style={{ flex: 1 }} />
            </View>
            <View style={{ flex: 0.8 }} />
          </View>
        </View>
      </View>
    );
  }

  // userInfo123() {
  //   return (

  //   );
  // }

  getArraowImg(type) {
    return (
      <TouchableOpacity
        style={{
          width: "100%",
          height: "100%",
          alignItems: "center",

          resizeMode: "contain",
          justifyContent: "center"
        }}
        onPress={() => this.arrowpress(type)}
      >
        <Image
          source={require("../images/userInfo/arrow.png")}
          style={{
            width: "20%",
            height: "30%"
          }}
        />
      </TouchableOpacity>
    );
  }

  choseheadericon(type) {
    let headerpath;
    switch (type) {
      case 0:
        headerpath = require("../images/userInfo/headportrait.png");

        break;
      case 1:
        headerpath = require("../images/userInfo/nickname.png");
        break;
      case 2:
        headerpath = require("../images/userInfo/birthday.png");
        break;
      case 3:
        headerpath = require("../images/userInfo/location.png");
        break;
      case 4:
        headerpath = require("../images/userInfo/school.png");
        break;
      case 5:
        headerpath = require("../images/userInfo/grade.png");
        break;
    }
    // alert(headerpath);
    return (
      <Image
        source={headerpath}
        style={{
          width: "60%",
          height: "60%",
          resizeMode: "contain"
        }}
      />
    );
  }

  arrowpress(type) {
    switch (type) {
      case 0:
        this.chosephoto.setModalVisible(true);
        break;
      case 1:
        this.dialog.setInfo("修改昵称", "昵称");
        this.dialog.setModalVisible(true, 1);
        break;
      case 2:
        // alert("生日");
        this.birthdaymodal.setModalVisible(true);
        break;
      case 3:
        this.regionmodal.setModalVisible(true);
        break;
      case 4:
        this.dialog.setInfo("我的学校", "学校名称");
        this.dialog.setModalVisible(true, 2);
        break;
      case 5:
        this.gradeselectionModal.setModalVisible(true);
        break;
    }
  }

  logout() {
    alert("点击退出了");
  }

  cityscommit(provinces_name, citys_name) {
    this.setState({
      cisys: provinces_name + citys_name
    });
  }
  commitGrade(text, index) {
    this.setState({
      grade_text: text,
      grade_index: index
    });
  }
  birthdaycommit(time) {
    this.setState({
      birthday_time: time
    });
  }
}

const styles = StyleSheet.create({
  item: {
    flex: 1,
    width: "100%",
    flexDirection: "row",
    backgroundColor: "white",
    marginTop: 1
  },
  item_text: {
    flex: 3,
    textAlignVertical: "center",
    color: "black",
    fontSize: 16
  }
});