Jelajahi Sumber

修复沉浸栏模式下底部输入框 被系统盘隐藏的bug!!!

Arison 7 tahun lalu
induk
melakukan
3bcf37d198

+ 115 - 39
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java

@@ -7,17 +7,27 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.support.annotation.NonNull;
 import android.support.v4.content.LocalBroadcastManager;
 import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.AdapterView;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
@@ -25,9 +35,13 @@ import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
+import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.preferences.PreferenceUtils;
+import com.common.system.DisplayUtil;
 import com.common.system.PermissionUtil;
+import com.core.adapter.ItemPopListAdapter;
+import com.core.adapter.ItemsSelectType1;
 import com.core.api.wxapi.ApiPlatform;
 import com.core.api.wxapi.ApiUAS;
 import com.core.api.wxapi.ApiUtils;
@@ -46,6 +60,7 @@ import com.me.network.app.http.rx.Result2Listener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.modular.apputils.listener.OnPlayListener;
 import com.modular.apputils.utils.playsdk.AliPlay;
+import com.scwang.smartrefresh.layout.util.DensityUtil;
 import com.uas.appme.other.model.Master;
 import com.uas.appme.settings.activity.BaseInfoActivity;
 import com.uas.appme.settings.activity.CheckWagesActivity;
@@ -60,6 +75,7 @@ import com.xzjmyk.pm.activity.util.im.UserRoleUtils;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 import com.xzjmyk.pm.im.audio.FaceRecognition.FaceView.OnlineFaceDemo;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -121,27 +137,32 @@ public class MeFragment extends SupportToolBarFragment implements View.OnClickLi
                 case 2://切换账套
                     result = msg.getData().getString("result");
                     Map<Object, Object> resultsMap = FlexJsonUtil.fromJson(result);
-                    List<Master> mList = FlexJsonUtil.fromJsonArray(
-                            FlexJsonUtil.toJson(resultsMap.get("masters")),
-                            Master.class);
-                    //保存账套列表
-                    CommonUtil.setSharedPreferences(ct, "erp_masterlist", JSON.toJSONString(
-                            resultsMap.get("masters")
-                    ));
-                    if (CommonUtil.isDialogShowing(mDialog)) {
-                        return;
-                    }
-                    if (!((Activity) ct).isFinishing()) {
-                        mDialog = new MasterDialog(ct, "切换账套",
-                                new MasterDialog.PickDialogListener() {
-                                    @Override
-                                    public void onListItemClick(int position, final Master master) {
-                                        Login(master);
-                                    }
-                                });
-                        mDialog.show();
-                        mDialog.initViewData(mList);
+                    List<Master> mList = FlexJsonUtil.fromJsonArray(FlexJsonUtil.toJson(resultsMap.get("masters")), Master.class);
+                    CommonUtil.setSharedPreferences(ct, "erp_masterlist", JSON.toJSONString(resultsMap.get("masters")));
+                    List<ItemsSelectType1> selectType1s=new ArrayList<>();
+                    if (!ListUtils.isEmpty(mList)) {
+                        for (int i = 0; i < mList.size(); i++) {
+                            ItemsSelectType1 itemsSelectType1=new ItemsSelectType1();
+                            itemsSelectType1.setName(mList.get(i).getMa_function());
+                            itemsSelectType1.setEn_name(mList.get(i).getMa_user());
+                            selectType1s.add(itemsSelectType1);
+                        }
                     }
+                    showPopDialog(ct,selectType1s);
+//                    if (CommonUtil.isDialogShowing(mDialog)) {
+//                        return;
+//                    }
+//                    if (!((Activity) ct).isFinishing()) {
+//                        mDialog = new MasterDialog(ct, "切换账套",
+//                                new MasterDialog.PickDialogListener() {
+//                                    @Override
+//                                    public void onListItemClick(int position, final Master master) {
+//                                        Login(master);
+//                                    }
+//                                });
+//                        mDialog.show();
+//                        mDialog.initViewData(mList);
+//                    }
                     break;
                 case 3://切换账套登录
                     Map<String, Object> results = FlexJsonUtil.fromJson(msg
@@ -444,18 +465,18 @@ public class MeFragment extends SupportToolBarFragment implements View.OnClickLi
                     showToact(R.string.networks_out);
                     return;
                 }
-                com.core.net.http.ViewUtil.LoginTask(MyApplication.getInstance().mLoginUser.getTelephone()
+             ViewUtil.LoginTask(MyApplication.getInstance().mLoginUser.getTelephone()
                         , CommonUtil.getSharedPreferences(ct, "user_password"), ct);
                 break;
             case R.id.editInfoIv://个人资料
                 ct.startActivity(new Intent(getActivity(), BaseInfoActivity.class));
                 break;
-            case R.id.rl_master_change://切换账套
+            case R.id.rl_master_change:
                 if (!platform) {
                     changeMaster();
                 }
                 break;
-            case R.id.my_friend_rl://我的朋友圈
+            case R.id.my_friend_rl:
                 setChangerRemain(true);
                 MainActivity.isUnReadWork = false;
                 Intent intent = new Intent(getActivity(), BusinessCircleActivity.class);
@@ -533,20 +554,29 @@ public class MeFragment extends SupportToolBarFragment implements View.OnClickLi
             ViewUtil.httpSendRequest(ct, url, params, mhandler, headers, 2, null, null, "get");
         } else {
             String masterlist = CommonUtil.getSharedPreferences(ct, "erp_masterlist");
-            Log.i("bbb", masterlist);
             List<Master> mList = JSON.parseArray(masterlist, Master.class);
-            if (CommonUtil.isDialogShowing(mDialog)) {
-                return;
+            List<ItemsSelectType1> selectType1s=new ArrayList<>();
+            if (!ListUtils.isEmpty(mList)) {
+                for (int i = 0; i < mList.size(); i++) {
+               ItemsSelectType1 itemsSelectType1=new ItemsSelectType1();
+               itemsSelectType1.setName(mList.get(i).getMa_function());
+               itemsSelectType1.setEn_name(mList.get(i).getMa_user());
+               selectType1s.add(itemsSelectType1);
+                }
             }
-            mDialog = new MasterDialog(ct, getString(R.string.user_dialog_master),
-                    new MasterDialog.PickDialogListener() {
-                        @Override
-                        public void onListItemClick(int position, final Master master) {
-                            Login(master);
-                        }
-                    });
-            mDialog.show();
-            mDialog.initViewData(mList);
+            showPopDialog(ct,selectType1s);
+//            if (CommonUtil.isDialogShowing(mDialog)) {
+//                return;
+//            }
+//            mDialog = new MasterDialog(ct, getString(R.string.user_dialog_master),
+//                    new MasterDialog.PickDialogListener() {
+//                        @Override
+//                        public void onListItemClick(int position, final Master master) {
+//                            Login(master);
+//                        }
+//                    });
+//            mDialog.show();
+//            mDialog.initViewData(mList);
         }
 
     }
@@ -631,8 +661,54 @@ public class MeFragment extends SupportToolBarFragment implements View.OnClickLi
     public void onFailure(String resultStatus, String resultInfo) {
         showToact(  "支付失败");
     }
-    
-    
-    
-    
+
+
+    public PopupWindow popupWindow = null;
+    public int selectId;
+    public ItemPopListAdapter adapter;
+    public void  showPopDialog(final Activity ct, List<ItemsSelectType1> itemsSelectType1s){
+        View view = null;
+        WindowManager windowManager = (WindowManager)ct. getSystemService(Context.WINDOW_SERVICE);
+        if (popupWindow == null) {
+            LayoutInflater layoutInflater = (LayoutInflater) ct.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+            view = layoutInflater.inflate(com.core.app.R.layout.pop_dialog_list, null);
+            ListView plist = view.findViewById(com.core.app.R.id.mList);
+            List<ItemsSelectType1> datas =itemsSelectType1s;
+            if (adapter==null) {
+                adapter = new ItemPopListAdapter(ct, datas);
+            }
+            plist.setAdapter(adapter);
+            Drawable drawable = ct.getResources().getDrawable(com.core.app.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;
+                    Master master=new Master();
+                    master.setMa_user(model.getEn_name());
+                    master.setMa_function(model.getName());
+                    Login(master);
+                }});
+            popupWindow = new PopupWindow(view, windowManager.getDefaultDisplay().getWidth()- DensityUtil.dp2px(50), LinearLayout.LayoutParams.WRAP_CONTENT);
+        }
+        popupWindow.setFocusable(true);
+        popupWindow.setOutsideTouchable(true);
+        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                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);
+    }
+
+
 }

+ 0 - 2
WeiChat/src/main/res/drawable/selector_me_menu_item_bg.xml

@@ -1,8 +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_checked="true"/>
     <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>

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Mon May 21 10:45:33 CST 2018
-debugName=270
+#Mon May 21 15:33:43 CST 2018
+debugName=290
 versionName=630
-debugCode=270
+debugCode=290
 versionCode=170

+ 13 - 14
app_core/common/src/main/java/com/core/adapter/ItemPopListAdapter.java

@@ -20,7 +20,7 @@ import java.util.List;
 public class ItemPopListAdapter extends BaseAdapter {
 
     private List<ItemsSelectType1> objects = new ArrayList<ItemsSelectType1>();
-    private int selectId=7;
+    private int selectId=0;
     private Context context;
     private LayoutInflater layoutInflater;
 
@@ -59,31 +59,30 @@ public class ItemPopListAdapter extends BaseAdapter {
             convertView = layoutInflater.inflate(R.layout.item_pop_list_select, null);
             convertView.setTag(new ViewHolder(convertView));
         }
-        initializeViews((ItemsSelectType1)getItem(position), (ViewHolder) convertView.getTag(),position);
+        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.setSelected(object.isSelected());
         holder.tvItemName.setText(object.getName());
-       if (selectId==position) {
-           holder.checkBox.setChecked(true);
-       }else{
-           holder.checkBox.setChecked(false);
-       }
-       holder.checkBox.setFocusable(false);
-       holder.checkBox.setClickable(false);
+        holder.checkBox.setFocusable(false);
+        holder.checkBox.setClickable(false);
+        holder.model=object;
     }
 
     public class ViewHolder {
-//        private LinearLayout llPopTop;
         public TextView tvItemName;
         public CheckBox checkBox;
+        public ItemsSelectType1 model;
 
         public ViewHolder(View view) {
-//            llPopTop = (LinearLayout) view.findViewById(R.id.ll_pop_top);
-            tvItemName = (TextView) view.findViewById(R.id.tv_item_name);
-            checkBox= (CheckBox) view.findViewById(R.id.cb_select);
+            tvItemName = view.findViewById(R.id.tv_item_name);
+            checkBox= view.findViewById(R.id.cb_select);
         }
     }
 }

+ 10 - 1
app_core/common/src/main/java/com/core/adapter/ItemsSelectType1.java

@@ -6,6 +6,7 @@ package com.core.adapter;
 public class ItemsSelectType1 {
     
     private String name;//名称
+    private String en_name;//英文名称
     private boolean selected=false;//是否被选中
 
     public String getName() {
@@ -16,10 +17,18 @@ public class ItemsSelectType1 {
         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;
     }

+ 4 - 2
app_core/common/src/main/java/com/core/net/http/ViewUtil.java

@@ -772,6 +772,7 @@ public class ViewUtil {
 
     public static PopupWindow popupWindow = null;
     public static int selectId;
+    public static ItemPopListAdapter adapter;
     public static void  showPopDialog(final Activity ct, List<ItemsSelectType1> itemsSelectType1s
     , final String phone, final String password){
         erp_phone=phone;
@@ -786,7 +787,9 @@ public class ViewUtil {
             view = layoutInflater.inflate(R.layout.pop_dialog_list, null);
             ListView plist = view.findViewById(R.id.mList);
             List<ItemsSelectType1> datas =itemsSelectType1s;
-            final ItemPopListAdapter adapter = new ItemPopListAdapter(ct, datas);
+            if (adapter==null) {
+                adapter = new ItemPopListAdapter(ct, datas);
+            }
             plist.setAdapter(adapter);
             Drawable drawable = ct.getResources().getDrawable(R.drawable.selector_check_items);
             plist.setSelector(drawable);
@@ -803,7 +806,6 @@ public class ViewUtil {
                 }});
             popupWindow = new PopupWindow(view, windowManager.getDefaultDisplay().getWidth()- DensityUtil.dp2px(50), LinearLayout.LayoutParams.WRAP_CONTENT);
         }
-
         popupWindow.setFocusable(true);
         popupWindow.setOutsideTouchable(true);
         popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {

+ 1 - 1
app_core/common/src/main/res/drawable/selector_check_items.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@drawable/icon_select_sure" android:state_checked="true"/>
+    <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>

+ 0 - 2
app_core/common/src/main/res/drawable/selector_me_menu_item_bg.xml

@@ -1,8 +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_checked="true"/>
     <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>

+ 1 - 0
app_core/common/src/main/res/layout/item_pop_list_select.xml

@@ -2,6 +2,7 @@
 <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"

+ 10 - 5
app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemPopListAdapter.java

@@ -60,6 +60,11 @@ public class ItemPopListAdapter extends BaseAdapter {
             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((ItemsSelectType1)getItem(position), (ViewHolder) convertView.getTag(),position);
         return convertView;
     }
@@ -67,11 +72,11 @@ public class ItemPopListAdapter extends BaseAdapter {
     private void initializeViews(ItemsSelectType1 object, ViewHolder holder,int position) {
        // holder.tvItemName.setSelected(object.isSelected());
         holder.tvItemName.setText(object.getName());
-       if (selectId==position) {
-           holder.checkBox.setChecked(true);
-       }else{
-           holder.checkBox.setChecked(false);
-       }
+//       if (selectId==position) {
+//           holder.checkBox.setChecked(true);
+//       }else{
+//           holder.checkBox.setChecked(false);
+//       }
        holder.checkBox.setFocusable(false);
        holder.checkBox.setClickable(false);
     }

+ 3 - 3
app_modular/appbooking/src/main/res/drawable/selector_check_items.xml

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

+ 5 - 7
app_modular/appbooking/src/main/res/layout/item_pop_list_select.xml

@@ -2,20 +2,19 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@drawable/selector_me_menu_item_bg">
+    android:id="@+id/tv_top"
+    android:background="@drawable/select_weixin_list_item">
     <TextView
         android:id="@+id/tv_item_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_centerInParent="true"
+        android:layout_marginLeft="20dp"
         android:paddingLeft="2dp"
         android:paddingRight="2dp"
         android:paddingTop="10dp"
         android:paddingBottom="10dp"
         android:textSize="14sp"
-        
-        android:gravity="center"
-
+        android:gravity="left"
         android:text="xxx" />
     <CheckBox
         android:id="@+id/cb_select"
@@ -25,6 +24,5 @@
         android:button="@null"
         android:background="@drawable/selector_check_items"
         android:checked="true"
-        android:layout_toLeftOf="@+id/tv_item_name"
-        />
+        android:layout_toLeftOf="@+id/tv_item_name"/>
 </RelativeLayout>