Browse Source

添加集成web组件

Arison 6 years ago
parent
commit
2eef39c0ea
24 changed files with 1572 additions and 90 deletions
  1. 1 0
      lib_common/build.gradle
  2. 87 0
      lib_common/src/main/java/com/uas/module/common/utils/DisplayUtil.java
  3. 289 0
      lib_common/src/main/java/com/uas/module/common/utils/StatusBarUtil.java
  4. 1 1
      lib_common/src/main/res/values-v21/styles.xml
  5. 86 0
      lib_widget/src/main/java/com/uas/module/widget/adapter/ItemPopListAdapter.java
  6. 35 0
      lib_widget/src/main/java/com/uas/module/widget/model/ItemsSelectType1.java
  7. 6 0
      lib_widget/src/main/res/drawable/selector_check_items.xml
  8. 6 0
      lib_widget/src/main/res/drawable/selector_me_menu_item_bg.xml
  9. 13 0
      lib_widget/src/main/res/drawable/shape_border_bule.xml
  10. 9 0
      lib_widget/src/main/res/drawable/shape_border_withe.xml
  11. 29 0
      lib_widget/src/main/res/layout/item_pop_list_select.xml
  12. 32 0
      lib_widget/src/main/res/layout/pop_dialog_list.xml
  13. 369 0
      lib_widget/src/main/res/values/colors.xml
  14. 324 0
      lib_widget/src/main/res/values/dimens.xml
  15. 10 0
      lib_widget/src/main/res/values/styles.xml
  16. 1 2
      module_home/build.gradle
  17. 4 2
      module_home/src/main/AndroidManifest.xml
  18. 254 7
      module_home/src/main/java/com/uas/module/home/ui/LoginActivity.java
  19. 7 2
      module_home/src/main/java/com/uas/module/home/ui/RegisterActivity.java
  20. 1 1
      module_home/src/main/java/com/uas/module/home/ui/SettingActivity.java
  21. BIN
      module_home/src/main/res/drawable-hdpi/ic_login_background.png
  22. 3 73
      module_home/src/main/res/values/dimens.xml
  23. 1 1
      module_main/src/main/java/com/uas/module/main/MainActivity.java
  24. 4 1
      versions.gradle

+ 1 - 0
lib_common/build.gradle

@@ -73,6 +73,7 @@ dependencies {
     api deps.toasty
     api deps.agentweb
     api deps.circleimageview
+    api deps.MNProgressHUD
 
     //router
     api deps.arouter_api

+ 87 - 0
lib_common/src/main/java/com/uas/module/common/utils/DisplayUtil.java

@@ -0,0 +1,87 @@
+package com.uas.module.common.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.util.DisplayMetrics;
+import android.view.WindowManager;
+
+public class DisplayUtil {
+
+    public static final int voice_view_max_width = 165;// dp
+    public static final int voice_view_min_width = 30;// dp
+    public static final float voice_max_length = 30;// 声音最长可以表现为多少毫秒(实际本程序是60s,但是如果这里是60s的话,当时间很短,就没啥差别
+
+    public static int dip2px(Context context, float dpValue) {
+        final float scale = context.getResources().getDisplayMetrics().density;
+        return (int) (dpValue * scale + 0.5f);
+    }
+
+    public static int px2dip(Context context, float pxValue) {
+        final float scale = context.getResources().getDisplayMetrics().density;
+        return (int) (pxValue / scale + 0.5f);
+    }
+
+    public static int getVoiceViewWidth(Context context, int seconds) {
+        if (seconds >= voice_max_length) {
+            return dip2px(context, voice_view_max_width);
+        }
+        final int dpLen = (int) ((seconds / voice_max_length) * (voice_view_max_width - voice_view_min_width)) + voice_view_min_width;
+        return dip2px(context, dpLen);
+    }
+
+
+    public static int getSreechWidth(Activity ct) {
+        DisplayMetrics metric = new DisplayMetrics();
+        ct.getWindowManager().getDefaultDisplay().getMetrics(metric);
+        return metric.widthPixels;
+    }
+
+    /**
+     * 将px值转换为sp值,保证文字大小不变
+     *
+     * @param pxValue
+     * @param (DisplayMetrics类中属性scaledDensity)
+     * @return
+     */
+    public static int px2sp(Context context, float pxValue) {
+        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
+        return (int) (pxValue / fontScale + 0.5f);
+    }
+
+    /**
+     * 将sp值转换为px值,保证文字大小不变
+     *
+     * @param spValue
+     * @param (DisplayMetrics类中属性scaledDensity)
+     * @return
+     */
+    public static int sp2px(Context context, float spValue) {
+        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
+        return (int) (spValue * fontScale + 0.5f);
+    }
+
+    /**
+     * 设置页面的透明度
+     * 兼容华为手机(在个别华为手机上 设置透明度会不成功)
+     *
+     * @param bgAlpha 透明度   1表示不透明
+     */
+    public static void backgroundAlpha(Activity activity, float bgAlpha) {
+        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
+        lp.alpha = bgAlpha;
+        if (bgAlpha == 1) {
+            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
+        } else {
+            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
+        }
+        activity.getWindow().setAttributes(lp);
+    }
+
+    /*设置添加屏幕的背景透明度*/
+    public static void backgroundAlpha(Context context, float bgAlpha) {
+        if (context instanceof Activity) {
+            backgroundAlpha((Activity) context, bgAlpha);
+        }
+    }
+
+}

+ 289 - 0
lib_common/src/main/java/com/uas/module/common/utils/StatusBarUtil.java

@@ -0,0 +1,289 @@
+package com.uas.module.common.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.Build;
+import android.support.annotation.FloatRange;
+import android.support.annotation.RequiresApi;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.regex.Pattern;
+
+/**
+ * 状态栏工具类(状态栏沉浸,状态栏颜色改变)
+ */
+
+public class StatusBarUtil {
+
+    public static int DEFAULT_COLOR = 0;
+    public static float DEFAULT_ALPHA = 0;//Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? 0.2f : 0.3f;
+    public static final int MIN_API = 19;
+
+    //<editor-fold desc="沉侵">
+    public static void immersive(Activity activity) {
+        immersive(activity, DEFAULT_COLOR, DEFAULT_ALPHA);
+    }
+
+    public static void immersive(Activity activity, int color, @FloatRange(from = 0.0, to = 1.0) float alpha) {
+        immersive(activity.getWindow(), color, alpha);
+    }
+
+    public static void immersive(Activity activity, int color) {
+        immersive(activity.getWindow(), color, 1f);
+    }
+
+    public static void immersive(Window window) {
+        immersive(window, DEFAULT_COLOR, DEFAULT_ALPHA);
+    }
+
+    public static void immersive(Window window, int color) {
+        immersive(window, color, 1f);
+    }
+
+    public static void immersive(Window window, int color, @FloatRange(from = 0.0, to = 1.0) float alpha) {
+        if (Build.VERSION.SDK_INT >= 21) {
+            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            window.setStatusBarColor(mixtureColor(color, alpha));
+
+            int systemUiVisibility = window.getDecorView().getSystemUiVisibility();
+            systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+            systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
+            window.getDecorView().setSystemUiVisibility(systemUiVisibility);
+        } else if (Build.VERSION.SDK_INT >= 19) {
+            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+            setTranslucentView((ViewGroup) window.getDecorView(), color, alpha);
+        } else if (Build.VERSION.SDK_INT >= MIN_API && Build.VERSION.SDK_INT > 16) {
+            int systemUiVisibility = window.getDecorView().getSystemUiVisibility();
+            systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+            systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
+            window.getDecorView().setSystemUiVisibility(systemUiVisibility);
+        }
+    }
+    //</editor-fold>
+
+    //<editor-fold desc="DarkMode">
+    public static void darkMode(Activity activity, boolean dark) {
+        if (isFlyme4Later()) {
+            darkModeForFlyme4(activity.getWindow(), dark);
+        } else if (isMIUI6Later()) {
+            darkModeForMIUI6(activity.getWindow(), dark);
+        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            darkModeForM(activity.getWindow(), dark);
+        }
+    }
+
+    /** 设置状态栏darkMode,字体颜色及icon变黑(目前支持MIUI6以上,Flyme4以上,Android M以上) */
+    public static void darkMode(Activity activity) {
+        darkMode(activity.getWindow(), DEFAULT_COLOR, DEFAULT_ALPHA);
+    }
+
+    public static void darkMode(Activity activity, int color, @FloatRange(from = 0.0, to = 1.0) float alpha) {
+        darkMode(activity.getWindow(), color, alpha);
+    }
+
+    /** 设置状态栏darkMode,字体颜色及icon变黑(目前支持MIUI6以上,Flyme4以上,Android M以上) */
+    public static void darkMode(Window window, int color, @FloatRange(from = 0.0, to = 1.0) float alpha) {
+        if (isFlyme4Later()) {
+            darkModeForFlyme4(window, true);
+            immersive(window,color,alpha);
+        } else if (isMIUI6Later()) {
+            darkModeForMIUI6(window, true);
+            immersive(window,color,alpha);
+        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            darkModeForM(window, true);
+            immersive(window, color, alpha);
+        } else if (Build.VERSION.SDK_INT >= 19) {
+            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+            setTranslucentView((ViewGroup) window.getDecorView(), color, alpha);
+        } else {
+            immersive(window, color, alpha);
+        }
+//        if (Build.VERSION.SDK_INT >= 21) {
+//            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+//            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+//            window.setStatusBarColor(Color.TRANSPARENT);
+//        } else if (Build.VERSION.SDK_INT >= 19) {
+//            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+//        }
+
+//        setTranslucentView((ViewGroup) window.getDecorView(), color, alpha);
+    }
+
+    //------------------------->
+
+    /** android 6.0设置字体颜色 */
+    @RequiresApi(Build.VERSION_CODES.M)
+    private static void darkModeForM(Window window, boolean dark) {
+//        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+//        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+//        window.setStatusBarColor(Color.TRANSPARENT);
+
+        int systemUiVisibility = window.getDecorView().getSystemUiVisibility();
+        if (dark) {
+            systemUiVisibility |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
+        } else {
+            systemUiVisibility &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
+        }
+        window.getDecorView().setSystemUiVisibility(systemUiVisibility);
+    }
+
+    /**
+     * 设置Flyme4+的darkMode,darkMode时候字体颜色及icon变黑
+     * http://open-wiki.flyme.cn/index.php?title=Flyme%E7%B3%BB%E7%BB%9FAPI
+     */
+    public static boolean darkModeForFlyme4(Window window, boolean dark) {
+        boolean result = false;
+        if (window != null) {
+            try {
+                WindowManager.LayoutParams e = window.getAttributes();
+                Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");
+                Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags");
+                darkFlag.setAccessible(true);
+                meizuFlags.setAccessible(true);
+                int bit = darkFlag.getInt(null);
+                int value = meizuFlags.getInt(e);
+                if (dark) {
+                    value |= bit;
+                } else {
+                    value &= ~bit;
+                }
+
+                meizuFlags.setInt(e, value);
+                window.setAttributes(e);
+                result = true;
+            } catch (Exception var8) {
+                Log.e("StatusBar", "darkIcon: failed");
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     * 设置MIUI6+的状态栏是否为darkMode,darkMode时候字体颜色及icon变黑
+     * http://dev.xiaomi.com/doc/p=4769/
+     */
+    public static boolean darkModeForMIUI6(Window window, boolean darkmode) {
+        Class<? extends Window> clazz = window.getClass();
+        try {
+            int darkModeFlag = 0;
+            Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
+            Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
+            darkModeFlag = field.getInt(layoutParams);
+            Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
+            extraFlagField.invoke(window, darkmode ? darkModeFlag : 0, darkModeFlag);
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    /** 判断是否Flyme4以上 */
+    public static boolean isFlyme4Later() {
+        return Build.FINGERPRINT.contains("Flyme_OS_4")
+                || Build.VERSION.INCREMENTAL.contains("Flyme_OS_4")
+                || Pattern.compile("Flyme OS [4|5]", Pattern.CASE_INSENSITIVE).matcher(Build.DISPLAY).find();
+    }
+
+    /** 判断是否为MIUI6以上 */
+    public static boolean isMIUI6Later() {
+        try {
+            Class<?> clz = Class.forName("android.os.SystemProperties");
+            Method mtd = clz.getMethod("get", String.class);
+            String val = (String) mtd.invoke(null, "ro.miui.ui.version.name");
+            val = val.replaceAll("[vV]", "");
+            int version = Integer.parseInt(val);
+            return version >= 6;
+        } catch (Exception e) {
+            return false;
+        }
+    }
+    //</editor-fold>
+
+
+    /** 增加View的paddingTop,增加的值为状态栏高度 */
+    public static void setPadding(Context context, View view) {
+        if (Build.VERSION.SDK_INT >= MIN_API) {
+            view.setPadding(view.getPaddingLeft(), view.getPaddingTop() + getStatusBarHeight(context),
+                    view.getPaddingRight(), view.getPaddingBottom());
+        }
+    }
+    /** 增加View的paddingTop,增加的值为状态栏高度 (智能判断,并设置高度)*/
+    public static void setPaddingSmart(Context context, View view) {
+        if (Build.VERSION.SDK_INT >= MIN_API) {
+            ViewGroup.LayoutParams lp = view.getLayoutParams();
+            if (lp != null && lp.height > 0) {
+                lp.height += getStatusBarHeight(context);//增高
+            }
+            view.setPadding(view.getPaddingLeft(), view.getPaddingTop() + getStatusBarHeight(context),
+                    view.getPaddingRight(), view.getPaddingBottom());
+        }
+    }
+
+    /** 增加View的高度以及paddingTop,增加的值为状态栏高度.一般是在沉浸式全屏给ToolBar用的 */
+    public static void setHeightAndPadding(Context context, View view) {
+        if (Build.VERSION.SDK_INT >= MIN_API) {
+            ViewGroup.LayoutParams lp = view.getLayoutParams();
+            lp.height += getStatusBarHeight(context);//增高
+            view.setPadding(view.getPaddingLeft(), view.getPaddingTop() + getStatusBarHeight(context),
+                    view.getPaddingRight(), view.getPaddingBottom());
+        }
+    }
+    /** 增加View上边距(MarginTop)一般是给高度为 WARP_CONTENT 的小控件用的*/
+    public static void setMargin(Context context, View view) {
+        if (Build.VERSION.SDK_INT >= MIN_API) {
+            ViewGroup.LayoutParams lp = view.getLayoutParams();
+            if (lp instanceof ViewGroup.MarginLayoutParams) {
+                ((ViewGroup.MarginLayoutParams) lp).topMargin += getStatusBarHeight(context);//增高
+            }
+            view.setLayoutParams(lp);
+        }
+    }
+    /**
+     * 创建假的透明栏
+     */
+    public static void setTranslucentView(ViewGroup container, int color, @FloatRange(from = 0.0, to = 1.0) float alpha) {
+        if (Build.VERSION.SDK_INT >= 19) {
+            int mixtureColor = mixtureColor(color, alpha);
+            View translucentView = container.findViewById(android.R.id.custom);
+            if (translucentView == null && mixtureColor != 0) {
+                translucentView = new View(container.getContext());
+                translucentView.setId(android.R.id.custom);
+                ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(
+                        ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight(container.getContext()));
+                container.addView(translucentView, lp);
+            }
+            if (translucentView != null) {
+                translucentView.setBackgroundColor(mixtureColor);
+            }
+        }
+    }
+
+    public static int mixtureColor(int color, @FloatRange(from = 0.0, to = 1.0) float alpha) {
+        int a = (color & 0xff000000) == 0 ? 0xff : color >>> 24;
+        return (color & 0x00ffffff) | (((int) (a * alpha)) << 24);
+    }
+
+    /** 获取状态栏高度 */
+    public static int getStatusBarHeight(Context context) {
+        int result = 24;
+        int resId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
+        if (resId > 0) {
+            result = context.getResources().getDimensionPixelSize(resId);
+        } else {
+            result = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+                    result, Resources.getSystem().getDisplayMetrics());
+        }
+        return result;
+    }
+}

+ 1 - 1
lib_common/src/main/res/values-v21/styles.xml

@@ -7,7 +7,7 @@
     </style>
 
     <style name="TransparentStatusBarTheme" parent="AppTheme.NoActionBar">
-        <item name="android:statusBarColor">@color/gray_D5</item>
+        <item name="android:statusBarColor">@color/transparent</item>
     </style>
 
 

+ 86 - 0
lib_widget/src/main/java/com/uas/module/widget/adapter/ItemPopListAdapter.java

@@ -0,0 +1,86 @@
+package com.uas.module.widget.adapter;
+
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.CheckBox;
+import android.widget.TextView;
+
+import com.uas.module.widget.R;
+import com.uas.module.widget.model.ItemsSelectType1;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ItemPopListAdapter extends BaseAdapter {
+
+    private List<ItemsSelectType1> objects = new ArrayList<ItemsSelectType1>();
+    private int selectId=0;
+    private Context context;
+    private LayoutInflater layoutInflater;
+
+    public int getSelectId() {
+        return selectId;
+    }
+
+    public void setSelectId(int selectId) {
+        this.selectId = selectId;
+    }
+
+    public ItemPopListAdapter(Context context, List<ItemsSelectType1> data) {
+        this.context = context;
+        this.objects=data;
+        this.layoutInflater = LayoutInflater.from(context);
+    }
+
+    @Override
+    public int getCount() {
+        return objects.size();
+    }
+
+    @Override
+    public ItemsSelectType1 getItem(int position) {
+        return objects.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            convertView = layoutInflater.inflate(R.layout.item_pop_list_select, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        if (selectId==position) {
+            convertView.setBackgroundResource(R.color.me_menu_item_press);
+        }else{
+            convertView.setBackgroundResource(android.R.color.transparent);
+        }
+        initializeViews(getItem(position), (ViewHolder) convertView.getTag(),position);
+        return convertView;
+    }
+
+    private void initializeViews(ItemsSelectType1 object, ViewHolder holder,int position) {
+        holder.tvItemName.setText(object.getName());
+        holder.checkBox.setFocusable(false);
+        holder.checkBox.setClickable(false);
+        holder.model=object;
+    }
+
+    public class ViewHolder {
+        public TextView tvItemName;
+        public CheckBox checkBox;
+        public ItemsSelectType1 model;
+
+        public ViewHolder(View view) {
+            tvItemName = view.findViewById(R.id.tv_item_name);
+            checkBox= view.findViewById(R.id.cb_select);
+        }
+    }
+}

+ 35 - 0
lib_widget/src/main/java/com/uas/module/widget/model/ItemsSelectType1.java

@@ -0,0 +1,35 @@
+package com.uas.module.widget.model;
+
+/**
+ * Created by Arison on 2017/11/8.
+ */
+public class ItemsSelectType1 {
+    
+    private String name;//名称
+    private String en_name;//英文名称
+    private boolean selected=false;//是否被选中
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getEn_name() {
+        return en_name;
+    }
+
+    public void setEn_name(String en_name) {
+        this.en_name = en_name;
+    }
+
+    public boolean isSelected() {
+        return selected;
+    }
+    
+    public void setSelected(boolean selected) {
+        this.selected = selected;
+    }
+}

+ 6 - 0
lib_widget/src/main/res/drawable/selector_check_items.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@color/gray" android:state_checked="true"/>
+    <item android:drawable="@color/item_line" android:state_checked="false"/>
+    <item android:drawable="@color/item_line" />
+</selector>

+ 6 - 0
lib_widget/src/main/res/drawable/selector_me_menu_item_bg.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@color/me_menu_item_press" android:state_pressed="true"/>
+    <item android:drawable="@color/me_menu_item_press" android:state_selected="true"/>
+    <item android:drawable="@color/me_menu_item_normal"/>
+</selector>

+ 13 - 0
lib_widget/src/main/res/drawable/shape_border_bule.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+    <corners
+        android:topLeftRadius="10dp"
+        android:topRightRadius="10dp">
+    </corners>
+    <stroke
+        android:color="#ffffff">
+    </stroke>
+    <solid
+        android:color="@color/titleBlue">
+    </solid>
+</shape>

+ 9 - 0
lib_widget/src/main/res/drawable/shape_border_withe.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+    <stroke
+        android:color="@color/gray">
+    </stroke>
+    <solid
+        android:color="#fefefe">
+    </solid>/>
+</shape>

+ 29 - 0
lib_widget/src/main/res/layout/item_pop_list_select.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:id="@+id/tv_top"
+    android:background="@drawable/selector_me_menu_item_bg">
+    <TextView
+        android:id="@+id/tv_item_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:paddingLeft="2dp"
+        android:paddingRight="2dp"
+        android:paddingTop="10dp"
+        android:paddingBottom="10dp"
+        android:textSize="14sp"
+        android:gravity="center"
+        android:text="xxx" />
+    <CheckBox
+        android:id="@+id/cb_select"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:button="@null"
+        android:background="@drawable/selector_check_items"
+        android:checked="true"
+        android:layout_toLeftOf="@+id/tv_item_name"
+        />
+</RelativeLayout>

+ 32 - 0
lib_widget/src/main/res/layout/pop_dialog_list.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/shape_border_withe"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/shape_border_bule"
+        android:gravity="center"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/dp_10"
+            android:text="公司选择"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_16"
+            android:textStyle="bold" />
+    </LinearLayout>
+
+    <ListView
+        android:id="@+id/mList"
+        style="@style/ListViewBasic"
+        android:layout_height="300dp"
+        android:divider="@color/item_line"
+        android:dividerHeight="0.5dp"></ListView>
+</LinearLayout>

+ 369 - 0
lib_widget/src/main/res/values/colors.xml

@@ -0,0 +1,369 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="no_approval">#f10813</color>
+    <color name="approval">#268509</color>
+    <color name="done_approval">#999999</color>
+    <color name="calendar_bg_color">#EBE9E9</color>
+    <color name="week_text_color">#FF000000</color>
+    <color name="select_circle_color">#FF8594</color>
+    <color name="deep_blue">#206390</color>
+    <!--umeng-->
+    <color name="umeng_socialize_comments_bg">#F4F4F4</color>
+    <color name="umeng_socialize_color_group">#2c3035</color>
+    <color name="umeng_socialize_list_item_textcolor">#333333</color>
+    <color name="umeng_socialize_list_item_bgcolor">#FFFFFF</color>
+    <color name="umeng_socialize_divider">#E6E6E6</color>
+    <color name="umeng_socialize_text_time">#999999</color>
+    <color name="umeng_socialize_text_title">#464f61</color>
+    <color name="umeng_socialize_text_friends_list">#959696</color>
+    <color name="umeng_socialize_text_share_content">#666666</color>
+    <color name="umeng_socialize_ucenter_bg">#EEEEEE</color>
+    <color name="umeng_socialize_text_ucenter">#595959</color>
+    <color name="umeng_socialize_edit_bg">#C4C4C4</color>
+    <color name="umeng_socialize_grid_divider_line">#F8F8F8</color>
+    <color name="crm_title_task">#D0A233</color>
+    <!--by gongpengming-->
+    <color name="load_submit">#11CD6E</color><!--下拉成功、提交成功-->
+    <color name="load_error">#A6ff4444</color><!--下拉失败、提交成功-->
+    <color name="load_warning">#D0A233</color>
+    <color name="load_message">#A6454A4B</color>
+
+    <color name="oa_outoffice">#3ac29e</color>
+    <color name="meeting">#d79147</color>
+    <color name="signin">#7292f8</color>
+    <color name="subscrip_text">#60a0a0a0</color>
+    <color name="subscrip_text1">#809b9797</color>
+    <!--#30a0a0a0-->
+    <color name="item_color1">#30F5F5F5</color>
+    <color name="pop_bg">#aeaeae</color>
+    <color name="item_color2">@color/white</color>
+    <color name="item_text">#cca0a0a0</color>
+    <color name="item_line">#CCCCCC</color>
+    <color name="antionbarcolor">#646464</color>
+    <color name="base_bg">#EBE9E9</color>
+    <color name="antionbaritemcolor">#a3b2cf</color>
+    <color name="wirtehine">#a3b2cf</color>
+    <color name="text_main">#333333</color>
+    <color name="text_hine">#575757</color>
+    <color name="text_bule">#1084D1</color>
+
+    <color name="bar_pass">#0096e6</color>
+    <color name="bar_color">#e6e6e6</color>
+    <color name="bg_main">@color/white</color>
+    <color name="refresh">@color/black</color>
+
+    <color name="btn_login_nomarl">#7BB4DC</color>
+    <color name="btn_login_press">#B9D2E3</color>
+
+    <color name="btn_orange_normal">#DD9C57</color>
+    <color name="btn_orange_press">#908f8f</color>
+    <!--end gongpengming-->
+    <color name="shadow">#AA000000</color>
+    <color name="default_shadow_color">#88757575</color>
+    <color name="default_fill_color">#ffffff</color>
+    <color name="crm_basic_bg">#4B4B57</color>
+    <color name="indexnormal">#98FB98</color>
+    <color name="indexpress">#3ACF6C</color>
+    <color name="blend_item_theme_color">#ff005092</color>
+    <color name="yellow_home">#FF8200</color>
+    <color name="light_green">#11CD6E</color> <!-- 绿色 -->
+    <!-- 黄色 tabhost -->
+    <color name="normal_bg">#fff0eff4</color>
+    <color name="main_tab_text_normal_grey">#ff83888e</color>
+    <color name="sub_tab_text_normal_black">#ff2d2f32</color>
+    <color name="actionbar_selector_color">#4d000000</color>
+    <color name="action_bar_tittle_color">#ffcfcfcf</color>
+    <color name="hint_text_color">#ff999999</color>
+    <color name="dark_grey">#ff7a7a7a</color>
+    <color name="dark_dark_grey">#ff505050</color>
+    <color name="black_trans_33">#33000000</color>
+    <color name="black_trans_99">#99000000</color>
+    <color name="chat_black_alpa">#88000000</color>
+    <color name="light_grey">#ffcccccc</color>
+    <color name="dark_orange">#ffd24d0c</color>
+    <color name="text_black">#ff2d2f32</color>
+    <color name="text_select">#fffa6015</color>
+    <color name="light_gray">#ff84828f</color>
+    <color name="circle_add_item_bg">#ffe2e1e6</color>
+    <color name="fade_black">#44000000</color>
+    <color name="replay_text_color_select">#ff352828</color>
+    <color name="operation_more_text_bg_normal">#ff363b3d</color>
+    <color name="operation_more_text_bg_press">#ff282c2e</color>
+    <color name="link_nick_name_color">#ff576b95</color>
+    <color name="dialog_normal">#0079FF</color>
+
+    <!-- PickDialog -->
+    <color name="lightgray">#F7F7F7</color>
+    <color name="lightblack">#696969</color>
+    <color name="blend_item_divider_color">#ffededed</color>
+    <!-- 内容条目按下时的样式 -->
+    <drawable name="pressed_bg">#f2f2f2</drawable>
+    <drawable name="nopressed_bg">#fff</drawable>
+    <!-- 警示性按钮的背景颜色 -->
+    <drawable name="button_caution_pressed">#d1337b</drawable>
+    <drawable name="button_caution_normal">#f559b1</drawable>
+    <!-- 程序主色调 -->
+    <color name="background">#f2f2f2</color>
+    <color name="hine_bg">#ebe9e9</color>
+    <color name="table_background">#cbcbcb</color>
+    <color name="light_white">#fcfcfc</color>
+    <color name="tab_main_color">#1e1d1d</color>
+    <color name="transparent">#00000000</color>
+    <color name="gray_light">#CCCCCC</color>
+    <color name="black_gray">#F5F5F5</color>
+
+    <color name="white">#FFFFFF</color> <!-- 白色 -->
+    <color name="ivory">#FFFFF0</color> <!-- 象牙色 -->
+    <color name="lightyellow">#FFFFE0</color> <!-- 亮黄色 -->
+    <color name="yellow">#FFFF00</color> <!-- 黄色 -->
+    <color name="snow">#FFFAFA</color> <!-- 雪白色 -->
+    <color name="floralwhite">#FFFAF0</color> <!-- 花白色 -->
+    <color name="lemonchiffon">#FFFACD</color> <!-- 柠檬绸色 -->
+    <color name="cornsilk">#FFF8DC</color> <!-- 米绸色 -->
+    <color name="seashell">#FFF5EE</color> <!-- 海贝色 -->
+    <color name="lavenderblush">#FFF0F5</color> <!-- 淡紫红 -->
+    <color name="papayawhip">#FFEFD5</color> <!-- 番木色 -->
+    <color name="blanchedalmond">#FFEBCD</color> <!-- 白杏色 -->
+    <color name="mistyrose">#FFE4E1</color> <!-- 浅玫瑰色 -->
+    <color name="text_color">#717171</color> <!-- 浅玫瑰色 -->
+    <color name="bisque">#FFE4C4</color> <!-- 桔黄色 -->
+    <color name="moccasin">#FFE4B5</color> <!-- 鹿皮色 -->
+    <color name="navajowhite">#FFDEAD</color> <!-- 纳瓦白 -->
+    <color name="peachpuff">#FFDAB9</color> <!-- 桃色 -->
+    <color name="gold">#FFD700</color> <!-- 金色 -->
+    <color name="pink">#FFC0CB</color> <!-- 粉红色 -->
+    <color name="lightpink">#FFB6C1</color> <!-- 亮粉红色 -->
+    <color name="orange">#FFA500</color> <!-- 橙色 -->
+    <color name="lightsalmon">#FFA07A</color> <!-- 亮肉色 -->
+    <color name="darkorange">#FF8C00</color> <!-- 暗桔黄色 -->
+    <color name="coral">#FF7F50</color> <!-- 珊瑚色 -->
+    <color name="hotpink">#FF69B4</color> <!-- 热粉红色 -->
+    <color name="tomato">#FF6347</color> <!-- 西红柿色 -->
+    <color name="orangered">#FF4500</color> <!-- 红橙色 -->
+    <color name="deeppink">#FF1493</color> <!-- 深粉红色 -->
+    <color name="fuchsia">#FF00FF</color> <!-- 紫红色 -->
+    <color name="magenta">#FF00FF</color> <!-- 红紫色 -->
+    <color name="red">#FF0000</color> <!-- 红色 -->
+    <color name="oldlace">#FDF5E6</color> <!-- 老花色 -->
+    <color name="lightgoldenrodyellow">#FAFAD2</color> <!-- 亮金黄色 -->
+    <color name="linen">#FAF0E6</color> <!-- 亚麻色 -->
+    <color name="antiquewhite">#FAEBD7</color> <!-- 古董白 -->
+    <color name="salmon">#FA8072</color> <!-- 鲜肉色 -->
+    <color name="ghostwhite">#F8F8FF</color> <!-- 幽灵白 -->
+    <color name="mintcream">#F5FFFA</color> <!-- 薄荷色 -->
+    <color name="whitesmoke">#F5F5F5</color> <!-- 烟白色 -->
+    <color name="beige">#F5F5DC</color> <!-- 米色 -->
+    <color name="wheat">#F5DEB3</color> <!-- 浅黄色 -->
+    <color name="sandybrown">#F4A460</color> <!-- 沙褐色 -->
+    <color name="azure">#F0FFFF</color> <!-- 天蓝色 -->
+    <color name="honeydew">#F0FFF0</color> <!-- 蜜色 -->
+    <color name="aliceblue">#F0F8FF</color> <!-- 艾利斯兰 -->
+    <color name="khaki">#F0E68C</color> <!-- 黄褐色 -->
+    <color name="lightcoral">#F08080</color> <!-- 亮珊瑚色 -->
+    <color name="palegoldenrod">#EEE8AA</color> <!-- 苍麒麟色 -->
+    <color name="violet">#EE82EE</color> <!-- 紫罗兰色 -->
+    <color name="darksalmon">#E9967A</color> <!-- 暗肉色 -->
+    <color name="lavender">#E6E6FA</color> <!-- 淡紫色 -->
+    <color name="lightcyan">#E0FFFF</color> <!-- 亮青色 -->
+    <color name="burlywood">#DEB887</color> <!-- 实木色 -->
+    <color name="plum">#DDA0DD</color> <!-- 洋李色 -->
+    <color name="gainsboro">#DCDCDC</color> <!-- 淡灰色 -->
+    <color name="crimson">#DC143C</color> <!-- 暗深红色 -->
+    <color name="palevioletred">#DB7093</color>
+    <!-- 苍紫罗兰色 -->
+    <color name="goldenrod">#DAA520</color> <!-- 金麒麟色 -->
+    <color name="orchid">#DA70D6</color> <!-- 淡紫色 -->
+    <color name="thistle">#D8BFD8</color> <!-- 蓟色 -->
+    <color name="lightgrey">#D3D3D3</color> <!-- 亮灰色 -->
+    <color name="tan">#D2B48C</color> <!-- 茶色 -->
+    <color name="chocolate">#D2691E</color> <!-- 巧可力色 -->
+    <color name="peru">#CD853F</color> <!-- 秘鲁色 -->
+    <color name="indianred">#ef613b</color> <!-- 印第安红 -->
+    <color name="mediumvioletred">#C71585</color> <!-- 中紫罗兰色 -->
+    <color name="silver">#C0C0C0</color> <!-- 银色 -->
+    <color name="darkkhaki">#BDB76B</color> <!-- 暗黄褐色 -->
+    <color name="rosybrown">#BC8F8F</color> <!-- 褐玫瑰红 -->
+    <color name="mediumorchid">#BA55D3</color> <!-- 中粉紫色 -->
+    <color name="darkgoldenrod">#B8860B</color> <!-- 暗金黄色 -->
+    <color name="firebrick">#B22222</color> <!-- 火砖色 -->
+    <color name="powderblue">#B0E0E6</color> <!-- 粉蓝色 -->
+    <color name="lightsteelblue">#B0C4DE</color> <!-- 亮钢兰色 -->
+    <color name="paleturquoise">#AFEEEE</color> <!-- 苍宝石绿 -->
+    <color name="greenyellow">#ADFF2F</color> <!-- 黄绿色 -->
+    <color name="lightblue">#ADD8E6</color> <!-- 亮蓝色 -->
+    <color name="darkgray">#A9A9A9</color> <!-- 暗灰色 -->
+    <color name="darkgrey">#A9A9A9</color> <!-- 暗灰色 -->
+    <color name="brown">#A52A2A</color> <!-- 褐色 -->
+    <color name="sienna">#A0522D</color> <!-- 赭色 -->
+    <color name="darkorchid">#9932CC</color> <!-- 暗紫色 -->
+    <color name="palegreen">#98FB98</color> <!-- 苍绿色 -->
+    <color name="darkviolet">#9400D3</color> <!-- 暗紫罗兰色 -->
+    <color name="mediumpurple">#9370DB</color> <!-- 中紫色 -->
+    <color name="lightgreen">#90EE90</color> <!-- 亮绿色 -->
+    <color name="darkseagreen">#8FBC8F</color> <!-- 暗海兰色 -->
+    <color name="saddlebrown">#8B4513</color> <!-- 重褐色 -->
+    <color name="darkmagenta">#8B008B</color> <!-- 暗洋红 -->
+    <color name="darkred">#8B0000</color> <!-- 暗红色 -->
+    <color name="blueviolet">#8A2BE2</color> <!-- 紫罗兰蓝色 -->
+    <color name="lightskyblue">#87CEFA</color> <!-- 亮天蓝色 -->
+    <color name="skyblue">#87CEEB</color> <!-- 天蓝色 -->
+    <color name="gray">#808080</color> <!-- 灰色 -->
+    <color name="grey">#808080</color> <!-- 灰色 -->
+    <color name="olive">#808000</color> <!-- 橄榄色 -->
+    <color name="purple">#800080</color> <!-- 紫色 -->
+    <color name="maroon">#800000</color> <!-- 粟色 -->
+    <color name="aquamarine">#7FFFD4</color> <!-- 碧绿色 -->
+    <color name="chartreuse">#7FFF00</color> <!-- 黄绿色 -->
+    <color name="lawngreen">#7CFC00</color> <!-- 草绿色 -->
+    <color name="mediumslateblue">#7B68EE</color> <!-- 中暗蓝色 -->
+    <color name="lightslategray">#778899</color> <!-- 亮蓝灰 -->
+    <color name="lightslategrey">#778899</color> <!-- 亮蓝灰 -->
+    <color name="slategray">#708090</color> <!-- 灰石色 -->
+    <color name="slategrey">#708090</color> <!-- 灰石色 -->
+    <color name="olivedrab">#6B8E23</color> <!-- 深绿褐色 -->
+    <color name="slateblue">#6A5ACD</color> <!-- 石蓝色 -->
+    <color name="dimgray">#696969</color> <!-- 暗灰色 -->
+    <color name="dimgrey">#696969</color> <!-- 暗灰色 -->
+    <color name="mediumaquamarine">#66CDAA</color>
+    <!-- 中绿色 -->
+    <color name="cornflowerblue">#6495ED</color> <!-- 菊兰色 -->
+    <color name="cadetblue">#5F9EA0</color> <!-- 军兰色 -->
+    <color name="darkolivegreen">#556B2F</color>
+    <!-- 暗橄榄绿 -->
+    <color name="indigo">#4B0082</color> <!-- 靛青色 -->
+    <color name="mediumturquoise">#48D1CC</color> <!-- 中绿宝石 -->
+    <color name="darkslateblue">#483D8B</color> <!-- 暗灰蓝色 -->
+    <color name="steelblue">#4682B4</color> <!-- 钢兰色 -->
+    <color name="royalblue">#4169E1</color> <!-- 皇家蓝 -->
+    <color name="turquoise">#40E0D0</color> <!-- 青绿色 -->
+    <color name="mediumseagreen">#3CB371</color> <!-- 中海蓝 -->
+    <color name="limegreen">#32CD32</color> <!-- 橙绿色 -->
+    <color name="darkslategray">#2F4F4F</color> <!-- 暗瓦灰色 -->
+    <color name="darkslategrey">#2F4F4F</color> <!-- 暗瓦灰色 -->
+    <color name="seagreen">#2E8B57</color> <!-- 海绿色 -->
+    <color name="forestgreen">#228B22</color> <!-- 森林绿 -->
+    <color name="lightseagreen">#20B2AA</color> <!-- 亮海蓝色 -->
+    <color name="dodgerblue">#1E90FF</color> <!-- 闪兰色 -->
+    <color name="midnightblue">#191970</color> <!-- 中灰兰色 -->
+    <color name="aqua">#00FFFF</color> <!-- 浅绿色 -->
+    <color name="cyan">#00FFFF</color> <!-- 青色 -->
+    <color name="springgreen">#00FF7F</color> <!-- 春绿色 -->
+    <color name="lime">#00FF00</color> <!-- 酸橙色 -->
+    <color name="mediumspringgreen">#00FA9A</color> <!-- 中春绿色 -->
+    <color name="darkturquoise">#00CED1</color> <!-- 暗宝石绿 -->
+    <color name="deepskyblue">#00BFFF</color> <!-- 深天蓝色 -->
+    <color name="darkcyan">#008B8B</color> <!-- 暗青色 -->
+    <color name="teal">#008080</color> <!-- 水鸭色 -->
+    <color name="green">#008000</color> <!-- 绿色 -->
+    <color name="darkgreen">#006400</color> <!-- 暗绿色 -->
+    <color name="blue">#0000FF</color> <!-- 蓝色 -->
+    <!--标题栏颜色-->
+    <color name="titleBlue">#BF2F95DD</color> <!-- 青蓝色 -->
+    <color name="titleCustomer">#DF8339</color>
+    <color name="titleVisit">#6FB660</color>
+    <color name="titleTask">#D0A233</color>
+    <color name="titleRank">#D0A233</color>
+
+
+    <color name="mediumblue">#0000CD</color> <!-- 中兰色 -->
+    <color name="darkblue">#00008B</color> <!-- 暗蓝色 -->
+    <color name="navy">#000080</color> <!-- 海军色 -->
+    <!-- WHI defined colors -->
+    <color name="dark_red">#F2837B</color>
+    <color name="dark_red_select">#ffa02d38</color>
+    <color name="black">#000000</color> <!-- 黑色 -->
+    <color name="GhostWhite">#fff8f8ff</color>
+    <color name="Transpant">#00000000</color>
+    <color name="HalfBlack">#aa000000</color>
+    <color name="LightGreen">#ff002200</color>
+    <color name="LightBlue">#ff0000ff</color>
+    <color name="TextRed">#ffc68753</color>
+    <color name="calendar_topbg">#ff836244</color>
+    <color name="calendar_cellbg">#ff373737</color>
+    <color name="hintColor">#969595</color>
+    <color name="approvaling">#3BAE7E</color>
+    <color name="main_red">#ffbe2e15</color>
+    <color name="main_grey">#ff5f5f5f</color>
+    <color name="huangTuSe">#ff995e2d</color>
+    <color name="sc_transparent_background">#00111111</color>
+    <color name="dark">#ff494949</color>
+    <color name="ash">#ff78736d</color>
+    <color name="mainList1">#fff46e64</color>
+    <color name="mainList2">#fffeb355</color>
+    <color name="mainList3">#ff7daee8</color>
+    <color name="mainList4">#ff7fd373</color>
+    <color name="mainList5">#ffde7ab8</color>
+    <color name="bright_foreground_light">#ff000000</color>
+    <color name="bright_foreground_light_inverse">#ffffffff</color>
+    <color name="bright_foreground_light_disabled">#80000000</color>
+    <color name="dim_foreground_light">#808080</color>
+    <color name="dim_foreground_light_disabled">#80323232</color>
+    <color name="dim_foreground_light_inverse">#ff006eaa</color>
+    <color name="dim_foreground_light_inverse_disabled">#80bebebe</color>
+
+    <color name="replay_text_color_normal">#ffa19992</color>
+    <color name="oa_background_orange">#DC9A54</color>
+
+    <color name="toast_bg">#60808080</color><!--自定义toast背景色-->
+
+    <color name="button_normal">#7AB9EE</color>
+    <color name="button_invalid">#C0C0C0</color>
+    <color name="button_focus">#2475FB</color>
+    <color name="text_normal">#808A87</color>
+
+    <color name="me_menu_item_normal">#FAF9F9</color>
+    <color name="me_menu_item_press">#DFDEDE</color>
+    <color name="bg_underlying">#ebe9e9</color>
+    <color name="orange_text">#f17e21</color>
+    <color name="oa_bg">#EBE9E9</color>
+    <color name="oa_item_bg">#f9f9f9</color>
+    <color name="colorPrimary">#3F51B5</color>
+    <color name="colorPrimaryDark">#303F9F</color>
+    <color name="colorAccent">#FF4081</color>
+    <color name="light_blue">#44CDC5</color>
+    <color name="main_text_color">#333333</color>
+    <color name="gray_default_dark">#666666</color>
+
+    <color name="normal_day">#ff999999</color>
+    <color name="selected_day_background">#E75F49</color>
+    <color name="selected_day_text">#fff2f2f2</color>
+    <color name="new_waitting_approvel">#F4A460</color>
+
+    <color name="item_drag_color">#66a6a1a1</color>
+
+    <!--数据查询,报表统计菜单项颜色-->
+    <color name="data_inquiry_gird_menu_color1">#2f95dd</color>
+    <color name="data_inquiry_gird_menu_color2">#9b7dc9</color>
+    <color name="data_inquiry_gird_menu_color3">#de935b</color>
+    <color name="data_inquiry_gird_menu_color4">#f57474</color>
+    <color name="data_inquiry_gird_menu_color5">#8bd67f</color>
+    <color name="data_inquiry_gird_menu_color6">#68d2c9</color>
+    <color name="data_inquiry_caption_textcolor">#999999</color>
+    <color name="data_inquiry_value_textcolor">#333333</color>
+
+    <!--服务预约-->
+    <color name="blue_seats_num">#2E94DD</color>
+
+    <!--B2B商务-->
+    <color name="b2b_tab_bg">#f2f8fc</color>
+    <color name="b2b_tab_selected">#2F95DD</color>
+    <color name="b2b_btn_todo">#19CD25</color>
+    <color name="b2b_btn_done">#62B1CB</color>
+    <color name="b2b_btn_end">#AAAAAA</color>
+
+    <color name="common_pop_item_normal">#CCFFFFFF</color>
+    <color name="common_pop_item_pressed">#D8D8D8</color>
+    <color name="meeting_end_status">#9B9B9B</color>
+    <color name="meeting_start_status">#3BAE7E</color>
+    <color name="meeting_before_status">#FF0000</color>
+    <color name="empty_text_color">#999999</color>
+    <color name="dark_gray_97">#979797</color>
+
+    <color name="b2b_quote_tab_selected">#4084f1</color>
+    <color name="customer_tab_selected">#1084D1</color>
+
+    <color name="business_rank_no1">#FF830C</color>
+    <color name="business_rank_no2">#01E83A</color>
+    <color name="business_rank_no3">#0C46FF</color>
+    <color name="business_rank_no4">#333333</color>
+</resources>

+ 324 - 0
lib_widget/src/main/res/values/dimens.xml

@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <dimen name="def_height">50dp</dimen>
+    <dimen name="dp_10">10dp</dimen>
+    <dimen name="dp_4">4dp</dimen>
+    <dimen name="dp_40">40dp</dimen>
+    <dimen name="dp_72">72dp</dimen>
+    <dimen name="sp_12">12sp</dimen>
+    <dimen name="sp_14">14sp</dimen>
+    <dimen name="sp_16">16sp</dimen>
+
+    <!--字体大小-->
+    <dimen name="text_size_9sp">9.0sp</dimen>
+    <dimen name="text_size_10sp">10.0sp</dimen>
+    <dimen name="text_size_11sp">11.0sp</dimen>
+    <dimen name="text_size_12sp">12.0sp</dimen>
+    <dimen name="text_size_13sp">13.0sp</dimen>
+    <dimen name="text_size_14sp">14.0sp</dimen>
+    <dimen name="text_size_15sp">15.0sp</dimen>
+    <dimen name="text_size_16sp">16.0sp</dimen>
+    <dimen name="text_size_17sp">17.0sp</dimen>
+    <dimen name="text_size_18sp">18.0sp</dimen>
+    <dimen name="text_size_19sp">19.0sp</dimen>
+    <dimen name="text_size_20sp">20.0sp</dimen>
+    <dimen name="text_size_21sp">21.0sp</dimen>
+    <dimen name="text_size_22sp">22.0sp</dimen>
+    <dimen name="text_size_23sp">23.0sp</dimen>
+    <dimen name="text_size_24sp">24.0sp</dimen>
+    <dimen name="text_size_28sp">28.0sp</dimen>
+    <dimen name="text_size_31sp">31.0sp</dimen>
+    <dimen name="text_size_37sp">37.0sp</dimen>
+
+    <!--margin大小 0-100之间-->
+    <dimen name="size_0.5dp">0.5dip</dimen>
+    <dimen name="size_1dp">1.0dip</dimen>
+    <dimen name="size_1.5dp">1.5dip</dimen>
+    <dimen name="size_2dp">2.0dip</dimen>
+    <dimen name="size_2.5dp">2.5dip</dimen>
+    <dimen name="size_3dp">3.0dip</dimen>
+    <dimen name="size_3.5dp">3.5dip</dimen>
+    <dimen name="size_4dp">4.0dip</dimen>
+    <dimen name="size_5dp">5.0dip</dimen>
+    <dimen name="size_6dp">6.0dip</dimen>
+    <dimen name="size_7dp">7.0dip</dimen>
+    <dimen name="size_7.5dp">7.5dip</dimen>
+    <dimen name="size_8dp">8.0dip</dimen>
+    <dimen name="size_9dp">9.0dip</dimen>
+    <dimen name="size_10dp">10.0dip</dimen>
+    <dimen name="size_11dp">11.0dip</dimen>
+    <dimen name="size_12dp">12.0dip</dimen>
+    <dimen name="size_12.5dp">12.5dip</dimen>
+    <dimen name="size_13dp">13.0dip</dimen>
+    <dimen name="size_14dp">14.0dip</dimen>
+    <dimen name="size_14.5dp">14.5dip</dimen>
+    <dimen name="size_15dp">15.0dip</dimen>
+    <dimen name="size_16dp">16.0dip</dimen>
+    <dimen name="size_17dp">17.0dip</dimen>
+    <dimen name="size_18dp">18.0dip</dimen>
+    <dimen name="size_19dp">19.0dip</dimen>
+    <dimen name="size_20.5dp">20.5dip</dimen>
+    <dimen name="size_20dp">20.0dip</dimen>
+    <dimen name="size_21dp">21.0dip</dimen>
+    <dimen name="size_22dp">22.0dip</dimen>
+    <dimen name="size_23dp">23.0dip</dimen>
+    <dimen name="size_24dp">24.0dip</dimen>
+    <dimen name="size_25dp">25.0dip</dimen>
+    <dimen name="size_26dp">26.0dip</dimen>
+    <dimen name="size_27dp">27.0dip</dimen>
+    <dimen name="size_28dp">28.0dip</dimen>
+    <dimen name="size_29dp">29.0dip</dimen>
+    <dimen name="size_30dp">30.0dip</dimen>
+    <dimen name="size_31dp">31.0dip</dimen>
+    <dimen name="size_32dp">32.0dip</dimen>
+    <dimen name="size_33dp">33.0dip</dimen>
+    <dimen name="size_34dp">34.0dip</dimen>
+    <dimen name="size_35dp">35.0dip</dimen>
+    <dimen name="size_36dp">36.0dip</dimen>
+    <dimen name="size_37dp">37.0dip</dimen>
+    <dimen name="size_38dp">38.0dip</dimen>
+    <dimen name="size_39dp">39.0dip</dimen>
+    <dimen name="size_40dp">40.0dip</dimen>
+    <dimen name="size_41dp">41.0dip</dimen>
+    <dimen name="size_42dp">42.0dip</dimen>
+    <dimen name="size_43dp">43.0dip</dimen>
+    <dimen name="size_44dp">44.0dip</dimen>
+    <dimen name="size_45dp">45.0dip</dimen>
+    <dimen name="size_46dp">46.0dip</dimen>
+    <dimen name="size_47dp">47.0dip</dimen>
+    <dimen name="size_48dp">48.0dip</dimen>
+    <dimen name="size_49dp">49.0dip</dimen>
+    <dimen name="size_50dp">50.0dip</dimen>
+    <dimen name="size_51dp">51.0dip</dimen>
+    <dimen name="size_52dp">52.0dip</dimen>
+    <dimen name="size_53dp">53.0dip</dimen>
+    <dimen name="size_54dp">54.0dip</dimen>
+    <dimen name="size_55dp">55.0dip</dimen>
+    <dimen name="size_56dp">56.0dip</dimen>
+    <dimen name="size_57dp">57.0dip</dimen>
+    <dimen name="size_58dp">58.0dip</dimen>
+    <dimen name="size_59dp">59.0dip</dimen>
+    <dimen name="size_60dp">60.0dip</dimen>
+    <dimen name="size_61dp">61.0dip</dimen>
+    <dimen name="size_62dp">62.0dip</dimen>
+    <dimen name="size_63dp">63.0dip</dimen>
+    <dimen name="size_64dp">64.0dip</dimen>
+    <dimen name="size_65dp">65.0dip</dimen>
+    <dimen name="size_66dp">66.0dip</dimen>
+    <dimen name="size_67dp">67.0dip</dimen>
+    <dimen name="size_68dp">68.0dip</dimen>
+    <dimen name="size_69dp">69.0dip</dimen>
+    <dimen name="size_70dp">70.0dip</dimen>
+    <dimen name="size_71dp">71.0dip</dimen>
+    <dimen name="size_72dp">72.0dip</dimen>
+    <dimen name="size_73dp">73.0dip</dimen>
+    <dimen name="size_74dp">74.0dip</dimen>
+    <dimen name="size_75dp">75.0dip</dimen>
+    <dimen name="size_76dp">76.0dip</dimen>
+    <dimen name="size_77dp">77.0dip</dimen>
+    <dimen name="size_78dp">78.0dip</dimen>
+    <dimen name="size_79dp">79.0dip</dimen>
+    <dimen name="size_80dp">80.0dip</dimen>
+    <dimen name="size_81dp">81.0dip</dimen>
+    <dimen name="size_82dp">82.0dip</dimen>
+    <dimen name="size_83dp">83.0dip</dimen>
+    <dimen name="size_84dp">84.0dip</dimen>
+    <dimen name="size_85dp">85.0dip</dimen>
+    <dimen name="size_86dp">86.0dip</dimen>
+    <dimen name="size_87dp">87.0dip</dimen>
+    <dimen name="size_88dp">88.0dip</dimen>
+    <dimen name="size_89dp">89.0dip</dimen>
+    <dimen name="size_90dp">90.0dip</dimen>
+    <dimen name="size_91dp">91.0dip</dimen>
+    <dimen name="size_92dp">92.0dip</dimen>
+    <dimen name="size_93dp">93.0dip</dimen>
+    <dimen name="size_94dp">94.0dip</dimen>
+    <dimen name="size_95dp">95.0dip</dimen>
+    <dimen name="size_96dp">96.0dip</dimen>
+    <dimen name="size_97dp">97.0dip</dimen>
+    <dimen name="size_98dp">98.0dip</dimen>
+    <dimen name="size_99dp">99.0dip</dimen>
+
+    <!--margin大小 100以上-->
+    <dimen name="size_100dp">100.0dip</dimen>
+    <dimen name="size_101dp">101.0dip</dimen>
+    <dimen name="size_102dp">102.0dip</dimen>
+    <dimen name="size_103dp">103.0dip</dimen>
+    <dimen name="size_104dp">104.0dip</dimen>
+    <dimen name="size_105dp">105.0dip</dimen>
+    <dimen name="size_106dp">106.0dip</dimen>
+    <dimen name="size_107dp">107.0dip</dimen>
+    <dimen name="size_108dp">108.0dip</dimen>
+    <dimen name="size_109dp">109.0dip</dimen>
+    <dimen name="size_110dp">110.0dip</dimen>
+    <dimen name="size_111dp">111.0dip</dimen>
+    <dimen name="size_112dp">112.0dip</dimen>
+    <dimen name="size_113dp">113.0dip</dimen>
+    <dimen name="size_114dp">114.0dip</dimen>
+    <dimen name="size_115dp">115.0dip</dimen>
+    <dimen name="size_116dp">116.0dip</dimen>
+    <dimen name="size_117dp">117.0dip</dimen>
+    <dimen name="size_118dp">118.0dip</dimen>
+    <dimen name="size_119dp">119.0dip</dimen>
+    <dimen name="size_120dp">120.0dip</dimen>
+    <dimen name="size_121dp">121.0dip</dimen>
+    <dimen name="size_122dp">122.0dip</dimen>
+    <dimen name="size_123dp">123.0dip</dimen>
+    <dimen name="size_124dp">124.0dip</dimen>
+    <dimen name="size_125dp">125.0dip</dimen>
+    <dimen name="size_126dp">126.0dip</dimen>
+    <dimen name="size_127dp">127.0dip</dimen>
+    <dimen name="size_128dp">128.0dip</dimen>
+    <dimen name="size_129dp">129.0dip</dimen>
+    <dimen name="size_130dp">130.0dip</dimen>
+    <dimen name="size_131dp">131.0dip</dimen>
+    <dimen name="size_132dp">132.0dip</dimen>
+    <dimen name="size_133dp">133.0dip</dimen>
+    <dimen name="size_134dp">134.0dip</dimen>
+    <dimen name="size_135dp">135.0dip</dimen>
+    <dimen name="size_136dp">136.0dip</dimen>
+    <dimen name="size_137dp">137.0dip</dimen>
+    <dimen name="size_138dp">138.0dip</dimen>
+    <dimen name="size_139dp">139.0dip</dimen>
+    <dimen name="size_140dp">140.0dip</dimen>
+    <dimen name="size_141dp">141.0dip</dimen>
+    <dimen name="size_142dp">142.0dip</dimen>
+    <dimen name="size_143dp">143.0dip</dimen>
+    <dimen name="size_144dp">144.0dip</dimen>
+    <dimen name="size_145dp">145.0dip</dimen>
+    <dimen name="size_146dp">146.0dip</dimen>
+    <dimen name="size_147dp">147.0dip</dimen>
+    <dimen name="size_148dp">148.0dip</dimen>
+    <dimen name="size_149dp">149.0dip</dimen>
+    <dimen name="size_150dp">150.0dip</dimen>
+    <dimen name="size_151dp">151.0dip</dimen>
+    <dimen name="size_152dp">152.0dip</dimen>
+    <dimen name="size_153dp">153.0dip</dimen>
+    <dimen name="size_154dp">154.0dip</dimen>
+    <dimen name="size_155dp">155.0dip</dimen>
+    <dimen name="size_156dp">156.0dip</dimen>
+    <dimen name="size_157dp">157.0dip</dimen>
+    <dimen name="size_158dp">158.0dip</dimen>
+    <dimen name="size_159dp">159.0dip</dimen>
+    <dimen name="size_160dp">160.0dip</dimen>
+    <dimen name="size_161dp">161.0dip</dimen>
+    <dimen name="size_162dp">162.0dip</dimen>
+    <dimen name="size_163dp">163.0dip</dimen>
+    <dimen name="size_164dp">164.0dip</dimen>
+    <dimen name="size_165dp">165.0dip</dimen>
+    <dimen name="size_166dp">166.0dip</dimen>
+    <dimen name="size_167dp">167.0dip</dimen>
+    <dimen name="size_168dp">168.0dip</dimen>
+    <dimen name="size_169dp">169.0dip</dimen>
+    <dimen name="size_170dp">170.0dip</dimen>
+    <dimen name="size_171dp">171.0dip</dimen>
+    <dimen name="size_172dp">172.0dip</dimen>
+    <dimen name="size_173dp">173.0dip</dimen>
+    <dimen name="size_174dp">174.0dip</dimen>
+    <dimen name="size_175dp">175.0dip</dimen>
+    <dimen name="size_176dp">176.0dip</dimen>
+    <dimen name="size_177dp">177.0dip</dimen>
+    <dimen name="size_178dp">178.0dip</dimen>
+    <dimen name="size_179dp">179.0dip</dimen>
+    <dimen name="size_180dp">180.0dip</dimen>
+    <dimen name="size_181dp">181.0dip</dimen>
+    <dimen name="size_182dp">182.0dip</dimen>
+    <dimen name="size_183dp">183.0dip</dimen>
+    <dimen name="size_184dp">184.0dip</dimen>
+    <dimen name="size_185dp">185.0dip</dimen>
+    <dimen name="size_186dp">186.0dip</dimen>
+    <dimen name="size_187dp">187.0dip</dimen>
+    <dimen name="size_188dp">188.0dip</dimen>
+    <dimen name="size_189dp">189.0dip</dimen>
+    <dimen name="size_190dp">190.0dip</dimen>
+    <dimen name="size_191dp">191.0dip</dimen>
+    <dimen name="size_192dp">192.0dip</dimen>
+    <dimen name="size_193dp">193.0dip</dimen>
+    <dimen name="size_194dp">194.0dip</dimen>
+    <dimen name="size_195dp">195.0dip</dimen>
+    <dimen name="size_196dp">196.0dip</dimen>
+    <dimen name="size_197dp">197.0dip</dimen>
+    <dimen name="size_198dp">198.0dip</dimen>
+    <dimen name="size_199dp">199.0dip</dimen>
+    <dimen name="size_200dp">200.0dip</dimen>
+    <dimen name="size_240dp">240.0dip</dimen>
+    <dimen name="size_260dp">260.0dip</dimen>
+
+
+    <!--OA\-->
+    <dimen name="item_margin_top">12dp</dimen>
+    <dimen name="misson_item_height">40dp</dimen>
+    <dimen name="item_aims_height">250dp</dimen>
+    <dimen name="misson_item_pl">15dp</dimen>
+    <dimen name="misson_item_pr">10dp</dimen>
+    <dimen name="sub_padding">15dp</dimen>
+    <dimen name="week_bar_height">36dp</dimen>
+    <dimen name="week_calendar_height">48dp</dimen>
+    <dimen name="month_calendar_height">288dp</dimen>
+    <dimen name="calendar_min_distance">5dp</dimen>
+    <dimen name="auto_scroll_distance">15dp</dimen>
+    <integer name="calendar_text_size">13</integer>
+    <!--end OA-->
+    <!--view show-->
+    <dimen name="default_corner_radius">4dp</dimen>
+    <dimen name="default_shadow_radius">4dp</dimen>
+    <!-- oa 考勤统计页面-->
+    <dimen name="oa_statistics_line">15dp</dimen>
+    <dimen name="oa_statistics_date_minWidth">100dp</dimen>
+    <dimen name="oa_statistics_date_minheight">30dp</dimen>
+    <!-- end oa 考勤统计页面-->
+    <dimen name="next_width">10.0dip</dimen>
+    <dimen name="line">3px</dimen>
+    <dimen name="line_big">7.0dip</dimen>
+    <dimen name="line_min">2.0dip</dimen>
+    <dimen name="next_height">15.0dip</dimen>
+    <dimen name="text_main">16.0sp</dimen>
+    <dimen name="text_hine">14.0sp</dimen>
+    <dimen name="text_min">12.0sp</dimen>
+    <dimen name="item_height_edit">100.0dip</dimen>
+    <dimen name="item_height">60.0dip</dimen>
+    <dimen name="item_height_min">45.0dip</dimen>
+    <dimen name="item_me_height">80.0dip</dimen>
+    <dimen name="item_img_height">48dp</dimen>
+    <dimen name="item_img_width">48dp</dimen>
+    <dimen name="BigTextSize">17.0dp</dimen>
+    <dimen name="NormalTextSize">16.0dp</dimen>
+    <dimen name="HintTextSize">14.0dp</dimen>
+    <dimen name="SmallerTextSize">13.0sp</dimen>
+    <dimen name="emotion_height">180dp</dimen>
+    <dimen name="paddingMax">12dp</dimen>
+    <dimen name="padding">8dp</dimen>
+    <dimen name="paddingMin">4dp</dimen>
+    <dimen name="paddingApp">8dp</dimen>
+    <dimen name="pmsg_media_view_height">255dp</dimen>
+    <dimen name="list_item_padding">16dp</dimen>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+    <dimen name="fab_margin">16dp</dimen>
+
+    <dimen name="text_size_day">16sp</dimen>
+    <dimen name="text_size_month">16sp</dimen>
+    <dimen name="text_size_day_name">10sp</dimen>
+    <dimen name="header_month_height">50dip</dimen>
+    <dimen name="selected_day_radius">18dip</dimen>
+    <dimen name="calendar_height">270dip</dimen>
+
+    <!-- Default screen margins, per the Android Design guidelines. -->
+
+    <dimen name="text_margin">16dp</dimen>
+
+    <dimen name="top_actionbar_height">42dp</dimen>
+    <dimen name="buttom_actionbar_height">38dp</dimen>
+
+    <dimen name="folder_cover_size">72dp</dimen>
+    <dimen name="recyclerview_fast_scroller_width">16dp</dimen>
+
+    <dimen name="commonSettingItemHeight">42dp</dimen>
+    <dimen name="commonSettingItemPaddingL">10dp</dimen>
+    <dimen name="commonSettingItemPaddingR">10dp</dimen>
+    <dimen name="commonSettingItemTextSize">14sp</dimen>
+
+
+</resources>

+ 10 - 0
lib_widget/src/main/res/values/styles.xml

@@ -48,4 +48,14 @@
         <item name="android:backgroundDimEnabled">false</item><!--模糊-->
     </style>
 
+
+    <style name="ListViewBasic">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:divider">@color/item_line</item>
+        <item name="android:dividerHeight">@dimen/line</item>
+        <item name="android:scrollbars">none</item>
+        <item name="android:scrollingCache">false</item>
+        <item name="android:listSelector">@android:color/transparent</item>
+    </style>
 </resources>

+ 1 - 2
module_home/build.gradle

@@ -49,6 +49,5 @@ dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     annotationProcessor deps.arouter_compiler
     implementation project(':lib_common')
-  
-compile 'com.android.support.constraint:constraint-layout:1.0.2'
+    implementation  project(path: ':lib_widget')
 }

+ 4 - 2
module_home/src/main/AndroidManifest.xml

@@ -7,9 +7,11 @@
             android:name=".main.TestMainActivity"
             android:label="@string/title_activity_test_main"
             android:theme="@style/AppTheme" />
-        <activity android:name=".ui.LoginActivity" />
+        <activity android:name=".ui.LoginActivity" 
+            android:theme="@style/AppTheme.NoActionBar"/>
         <activity android:name=".ui.RegisterActivity" />
-        <activity android:name=".ui.SettingActivity" />
+        <activity android:name=".ui.SettingActivity"
+            android:theme="@style/TransparentStatusBarTheme"/>
         <activity android:name=".main.IndexActivity"></activity>
     </application>
 

+ 254 - 7
module_home/src/main/java/com/uas/module/home/ui/LoginActivity.java

@@ -1,21 +1,268 @@
 package com.uas.module.home.ui;
 
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.AdapterView;
+import android.widget.EditText;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.PopupWindow;
+import android.widget.TextView;
+
 import com.alibaba.android.arouter.facade.annotation.Route;
-import com.kymjs.themvp.presenter.ActivityPresenter;
+import com.alibaba.fastjson.JSON;
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.ToastUtils;
+import com.maning.mndialoglibrary.MProgressDialog;
+import com.uas.module.common.base.BaseActivity;
+import com.uas.module.common.utils.DisplayUtil;
+import com.uas.module.common.utils.StatusBarUtil;
+import com.uas.module.home.R;
+import com.uas.module.home.network.grpc.Authentication;
+import com.uas.module.home.network.grpc.MobileClientAuthenticationInterceptor;
+import com.uas.module.widget.adapter.ItemPopListAdapter;
+import com.uas.module.widget.model.ItemsSelectType1;
+import com.usoftchina.uu.mobile.grpc.api.AccountServiceGrpc;
+import com.usoftchina.uu.mobile.grpc.api.AccountSigninRequest;
+import com.usoftchina.uu.mobile.grpc.api.AccountSigninResponse;
+import com.usoftchina.uu.mobile.grpc.api.AuthedToken;
+import com.usoftchina.uu.mobile.grpc.api.DeviceInfo;
+import com.usoftchina.uu.mobile.grpc.api.ResponseHeader;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.hdodenhof.circleimageview.CircleImageView;
+import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
+import io.grpc.StatusRuntimeException;
 
 
 @Route(path = "/home/login")
-public class LoginActivity extends ActivityPresenter<LoginDelegate> {
+public class LoginActivity extends BaseActivity implements View.OnClickListener {
+
+    public static final String PASS_WORDS = "PASS_WORDS";
+    private CircleImageView mHeader;
+    private EditText mPhoneNumberEdit;
+    private EditText mPasswordEdit;
+    private TextView tv_register, tv_findPwd, mLoginButton;
+    private View mToastHead;
+    private FrameLayout mToastLayout;
 
-    
     @Override
-    protected Class<LoginDelegate> getDelegateClass() {
-        return LoginDelegate.class;
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_login);
+        StatusBarUtil.immersive(this, 0x00000000, 0.0f);
+        initView();
     }
 
+    
+    private void initView() {
+        mToastHead = findViewById(R.id.login_toast_head);
+        mToastLayout = findViewById(R.id.login_toast_fl);
+        StatusBarUtil.setPaddingSmart(this, mToastHead);
+        mPhoneNumberEdit = findViewById(R.id.phone_numer_edit);
+        mPasswordEdit =  findViewById(R.id.password_edit);
+        mHeader = findViewById(R.id.iv_head);
+        tv_findPwd =  findViewById(R.id.tv_findPwd);
+        tv_register = findViewById(R.id.tv_register);
+        mLoginButton = findViewById(R.id.login_btn);
+        mLoginButton.setOnClickListener(this);
+        tv_findPwd.setOnClickListener(this);
+        tv_register.setOnClickListener(this);
+        mPhoneNumberEdit.addTextChangedListener(new MyTextWatcher());
+        mPasswordEdit.addTextChangedListener(new MyTextWatcher());
+    }
+    
+
+    class MyTextWatcher implements TextWatcher {
+
+        @Override
+        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+        }
+
+        @Override
+        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+        }
+
+        @Override
+        public void afterTextChanged(Editable editable) {
+            String phone = mPhoneNumberEdit.getText().toString().trim();
+            String password = mPasswordEdit.getText().toString();
+            if (TextUtils.isEmpty(phone) || TextUtils.isEmpty(password)) {
+                mLoginButton.setEnabled(false);
+            } else {
+                mLoginButton.setEnabled(true);
+            }
+        }
+    }
+
+
+
     @Override
-    protected void bindEvenListener() {
-        super.bindEvenListener();
+    public void onClick(View v) {
+        if (v.getId() == R.id.login_btn) {
+            login();
+        } else if (v.getId() == R.id.tv_register) {
+            startActivity(new Intent(this, RegisterActivity.class));
+        } else if (v.getId() == R.id.tv_findPwd) {
+
+        }
+    }
+
+    private void login() {
+        final String phoneNumber = mPhoneNumberEdit.getText().toString().trim();
+        final String password = mPasswordEdit.getText().toString();
+        MProgressDialog.showProgress(this,"");
+        if (TextUtils.isEmpty(phoneNumber)) {
+            ToastUtils.showLong("手机号不能为空!");
+            return;
+        }
+        if (TextUtils.isEmpty(password)) {
+            ToastUtils.showLong("密码不能为空!");
+            return;
+        }
+       
+        
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    ManagedChannel channel = ManagedChannelBuilder.forAddress("uu-api-test.usoftchina.com", 9620)
+                            .intercept(new MobileClientAuthenticationInterceptor())
+                            .usePlaintext(true)
+                            .build();
+                    AccountSigninResponse response = AccountServiceGrpc.newBlockingStub(channel).signin(AccountSigninRequest.newBuilder()
+                            .setMobile(phoneNumber)
+                            .setPassword(password)
+                            .setDeviceInfo(DeviceInfo.newBuilder()
+                                    .setOs(DeviceInfo.OS.ANDROID))
+                            .build());
+                    ResponseHeader header = response.getResponseHeader();
+                    if (header.getSuccess()) {
+                        MProgressDialog.dismissProgress();
+                        System.out.println(response.getAccount());
+
+
+                        AuthedToken token = response.getAuthedToken();
+
+                        LogUtils.d("login token:"+token.getToken());
+                        LogUtils.d("account:"+JSON.toJSONString(response.getAccount()));
+                        // 登录成功后记录auth信息
+                        Authentication.set(token.getToken());
+
+                        if (response.getActiveCompanyId() > 0) {
+                            System.out.println("current selected company " + response.getActiveCompanyId());
+                        } else if (response.getCompanyCount() > 0) {
+                            LogUtils.d("公司账套:"+JSON.toJSONString(response.getCompanyList()));
+                            List<ItemsSelectType1> datas=new ArrayList<>();
+                            for (int i=0;i<response.getCompanyList().size();i++){
+                                ItemsSelectType1 model=new ItemsSelectType1();
+                                model.setName(response.getCompanyList().get(i).getName());
+                                model.setEn_name(response.getCompanyList().get(i).getName());
+                                datas.add(model);
+                            }
+                            runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    showPopDialog(LoginActivity.this,datas);
+                                }
+                            });
+                           
+                        }
+                        if (response.getMessageConfigCount() > 0) {
+                            LogUtils.d("消息配置:"+ JSON.toJSONString(response.getMessageConfigList()));
+                        }
+                        if (response.getAppGroupConfigCount() > 0) {
+                            LogUtils.d("应用组配置:"+JSON.toJSONString(response.getAppGroupConfigList()));
+                        }
+                        if (response.getHomeConfigCount() > 0) {
+                            LogUtils.d("我的配置:"+JSON.toJSONString(response.getHomeConfigList()));
+                        }
+                        if (response.getUnreadMessageCountCount() > 0) {
+                            LogUtils.d("未读消息:"+JSON.toJSONString(response.getUnreadMessageCountList()));
+                        }
+                    } else {
+                        MProgressDialog.dismissProgress();
+                        // error return by ResponseHeader
+                        System.err.println(header.getCode() + "," + header.getMessage());
+                    }
+                } catch (StatusRuntimeException e) {
+                    // error return by Exception
+                    ToastUtils.showLong("接口异常"+ e.getStatus().getDescription());
+                    MProgressDialog.dismissProgress();
+                    System.err.println(e.getStatus().getCode() + "," + e.getStatus().getDescription());
+                }
+            }
+        }).start();
         
     }
+
+
+
+    public PopupWindow popupWindow = null;
+    public int selectId = 0;
+    public ItemPopListAdapter adapter;
+
+    public void showPopDialog(final Activity ct, List<ItemsSelectType1> itemsSelectType1s) {
+        if (ct == null) return;
+        View view = null;
+        popupWindow = null;
+        WindowManager windowManager = (WindowManager) ct.getSystemService(Context.WINDOW_SERVICE);
+        if (popupWindow == null) {
+            LayoutInflater layoutInflater = (LayoutInflater) ct.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            view = layoutInflater.inflate(R.layout.pop_dialog_list, null);
+            ListView plist = view.findViewById(R.id.mList);
+            TextView tv_title = view.findViewById(R.id.tv_title);
+            tv_title.setText("账套选择");
+            List<ItemsSelectType1> datas = itemsSelectType1s;
+            adapter = new ItemPopListAdapter(ct, datas);
+            adapter.setSelectId(selectId);
+            plist.setAdapter(adapter);
+            plist.setSelection(selectId);
+            Drawable drawable = ct.getResources().getDrawable(R.drawable.selector_check_items);
+            plist.setSelector(drawable);
+            plist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+                @Override
+                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                    popupWindow.dismiss();
+                    selectId = position;
+                    adapter.setSelectId(selectId);
+                    adapter.notifyDataSetChanged();
+                    ItemPopListAdapter.ViewHolder viewHolder = (ItemPopListAdapter.ViewHolder) view.getTag();
+                    ItemsSelectType1 model = viewHolder.model;
+                   
+                }
+            });
+            popupWindow = new PopupWindow(view, 
+                    windowManager.getDefaultDisplay().getWidth() - 
+                    DisplayUtil.dip2px(getApplicationContext(),50),
+                    LinearLayout.LayoutParams.WRAP_CONTENT);
+        }
+        popupWindow.setFocusable(true);
+        popupWindow.setOutsideTouchable(true);
+        popupWindow.setOnDismissListener(() -> DisplayUtil.backgroundAlpha(ct, 1f));
+        DisplayUtil.backgroundAlpha(ct, 0.5f);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
+        popupWindow.showAtLocation(ct.getWindow().getDecorView(), Gravity.CENTER, 0, 0);
+    }
+    
+    
 }

+ 7 - 2
module_home/src/main/java/com/uas/module/home/ui/RegisterActivity.java

@@ -1,14 +1,19 @@
 package com.uas.module.home.ui;
 
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
+import com.uas.module.common.base.BaseActionBarActivity;
 import com.uas.module.home.R;
 
 
 @Route(path = "/home/register")
-public class RegisterActivity extends AppCompatActivity {
+public class RegisterActivity extends BaseActionBarActivity {
+
+    @Override
+    protected int setTitleId() {
+        return R.string.person_register;
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {

+ 1 - 1
module_home/src/main/java/com/uas/module/home/ui/SettingActivity.java

@@ -13,6 +13,6 @@ public class SettingActivity extends AppCompatActivity {
     protected void onCreate(Bundle savedInstanceState) {
         
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_login);
+        setContentView(R.layout.activity_setting);
     }
 }

BIN
module_home/src/main/res/drawable-hdpi/ic_login_background.png


+ 3 - 73
module_home/src/main/res/values/dimens.xml

@@ -1,75 +1,5 @@
 <resources>
-    <!--OA\-->
-    <dimen name="item_margin_top">12dp</dimen>
-    <dimen name="misson_item_height">40dp</dimen>
-    <dimen name="item_aims_height">250dp</dimen>
-    <dimen name="misson_item_pl">15dp</dimen>
-    <dimen name="misson_item_pr">10dp</dimen>
-    <dimen name="sub_padding">15dp</dimen>
-    <dimen name="week_bar_height">36dp</dimen>
-    <dimen name="week_calendar_height">48dp</dimen>
-    <dimen name="month_calendar_height">288dp</dimen>
-    <dimen name="calendar_min_distance">5dp</dimen>
-    <dimen name="auto_scroll_distance">15dp</dimen>
-    <integer name="calendar_text_size">13</integer>
-    <!--end OA-->
-    <!--view show-->
-    <dimen name="default_corner_radius">4dp</dimen>
-    <dimen name="default_shadow_radius">4dp</dimen>
-    <!-- oa 考勤统计页面-->
-    <dimen name="oa_statistics_line">15dp</dimen>
-    <dimen name="oa_statistics_date_minWidth">100dp</dimen>
-    <dimen name="oa_statistics_date_minheight">30dp</dimen>
-    <!-- end oa 考勤统计页面-->
-    <dimen name="next_width">10.0dip</dimen>
-    <dimen name="line">3px</dimen>
-    <dimen name="line_big">7.0dip</dimen>
-    <dimen name="line_min">2.0dip</dimen>
-    <dimen name="next_height">15.0dip</dimen>
-    <dimen name="text_main">16.0sp</dimen>
-    <dimen name="text_hine">14.0sp</dimen>
-    <dimen name="text_min">12.0sp</dimen>
-    <dimen name="item_height_edit">100.0dip</dimen>
-    <dimen name="item_height">60.0dip</dimen>
-    <dimen name="item_height_min">45.0dip</dimen>
-    <dimen name="item_me_height">80.0dip</dimen>
-    <dimen name="item_img_height">48dp</dimen>
-    <dimen name="item_img_width">48dp</dimen>
-    <dimen name="BigTextSize">17.0dp</dimen>
-    <dimen name="NormalTextSize">16.0dp</dimen>
-    <dimen name="HintTextSize">14.0dp</dimen>
-    <dimen name="SmallerTextSize">13.0sp</dimen>
-    <dimen name="emotion_height">180dp</dimen>
-    <dimen name="paddingMax">12dp</dimen>
-    <dimen name="padding">8dp</dimen>
-    <dimen name="paddingMin">4dp</dimen>
-    <dimen name="paddingApp">8dp</dimen>
-    <dimen name="pmsg_media_view_height">255dp</dimen>
-    <dimen name="list_item_padding">16dp</dimen>
-    <!-- Default screen margins, per the Android Design guidelines. -->
-    <dimen name="activity_horizontal_margin">16dp</dimen>
-    <dimen name="activity_vertical_margin">16dp</dimen>
-    <dimen name="fab_margin">16dp</dimen>
-
-    <dimen name="text_size_day">16sp</dimen>
-    <dimen name="text_size_month">16sp</dimen>
-    <dimen name="text_size_day_name">10sp</dimen>
-    <dimen name="header_month_height">50dip</dimen>
-    <dimen name="selected_day_radius">18dip</dimen>
-    <dimen name="calendar_height">270dip</dimen>
-
-    <!-- Default screen margins, per the Android Design guidelines. -->
-
-    <dimen name="text_margin">16dp</dimen>
-
-    <dimen name="top_actionbar_height">42dp</dimen>
-    <dimen name="buttom_actionbar_height">38dp</dimen>
-
-    <dimen name="folder_cover_size">72dp</dimen>
-    <dimen name="recyclerview_fast_scroller_width">16dp</dimen>
-
-    <dimen name="commonSettingItemHeight">42dp</dimen>
-    <dimen name="commonSettingItemPaddingL">10dp</dimen>
-    <dimen name="commonSettingItemPaddingR">10dp</dimen>
-    <dimen name="commonSettingItemTextSize">14sp</dimen>
+ 
+    
+    
 </resources>

+ 1 - 1
module_main/src/main/java/com/uas/module/main/MainActivity.java

@@ -41,7 +41,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
             startActivity(new Intent(this, BottomNavigationActivity.class));
         }  else if(view.getId()==R.id.test_button){
             
-            ARouter.getInstance().build("/home/setting")
+            ARouter.getInstance().build("/home/login")
                     .navigation();
     
 //            ARouter.getInstance().build("/app/uas_web")

+ 4 - 1
versions.gradle

@@ -31,7 +31,7 @@ versions.toasty = "1.1.3"
 versions.logger = "1.15"
 versions.material_dialog = "0.9.6.0"
 versions.circleimageview="3.0.0"
-
+versions.MNProgressHUD="V1.1.7"
 versions.arouter_compiler = "1.1.4"
 versions.arouter_api = "1.3.1"
 
@@ -91,6 +91,9 @@ deps.photo_view = "com.github.chrisbanes:PhotoView:$versions.photo_view"
 deps.material_dialog = "com.afollestad.material-dialogs:core:$versions.material_dialog"
 deps.agentweb="com.just.agentweb:agentweb:$versions.agentweb"
 deps.circleimageview="de.hdodenhof:circleimageview:$versions.circleimageview"
+deps.MNProgressHUD="com.github.maning0303:MNProgressHUD:$versions.MNProgressHUD"
+
+
 
 
 deps.android_gradle_plugin = "com.android.tools.build:gradle:$versions.android_gradle_plugin"