Browse Source

代码冲突

Merge branch 'feature' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer

# Conflicts:
#	WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
#	app_core/common/src/main/java/com/common/data/StringUtil.java
Arison 8 years ago
parent
commit
c8d22ec357
20 changed files with 590 additions and 37 deletions
  1. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/tool/SingleImagePreviewActivity.java
  2. 1 0
      app_modular/appbooking/src/main/AndroidManifest.xml
  3. 15 6
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java
  4. 37 5
      app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectActivity.java
  5. 200 0
      app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectDateActivity.java
  6. 29 0
      app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/ServiceUtils.java
  7. 13 4
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemRoomsSelectAdapter.java
  8. 11 0
      app_modular/appbooking/src/main/java/com/modular/booking/model/SBMenuModel.java
  9. BIN
      app_modular/appbooking/src/main/res/drawable-hdpi/icon_day_after.png
  10. BIN
      app_modular/appbooking/src/main/res/drawable-hdpi/icon_day_qian.png
  11. BIN
      app_modular/appbooking/src/main/res/drawable-xhdpi/icon_day_after.png
  12. BIN
      app_modular/appbooking/src/main/res/drawable-xhdpi/icon_day_qian.png
  13. BIN
      app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_day_after.png
  14. BIN
      app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_day_qian.png
  15. 29 0
      app_modular/appbooking/src/main/res/layout/action_service_room.xml
  16. 2 2
      app_modular/appbooking/src/main/res/layout/activity_grid_select.xml
  17. 26 7
      app_modular/appbooking/src/main/res/layout/item_rooms_select.xml
  18. 8 10
      app_modular/apputils/src/main/AndroidManifest.xml
  19. 216 0
      app_modular/apputils/src/main/java/com/modular/apputils/activity/SingleImagePreviewActivity.java
  20. 1 1
      app_modular/apputils/src/main/java/com/modular/apputils/utils/Scheme.java

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/tool/SingleImagePreviewActivity.java

@@ -18,12 +18,12 @@ import android.widget.TextView;
 import com.common.system.DisplayUtil;
 import com.common.system.DisplayUtil;
 import com.core.app.ActionBackActivity;
 import com.core.app.ActionBackActivity;
 import com.core.app.AppConstant;
 import com.core.app.AppConstant;
+import com.core.utils.CommonUtil;
+import com.modular.apputils.utils.Scheme;
 import com.nostra13.universalimageloader.core.ImageLoader;
 import com.nostra13.universalimageloader.core.ImageLoader;
 import com.nostra13.universalimageloader.core.assist.FailReason;
 import com.nostra13.universalimageloader.core.assist.FailReason;
 import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
 import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.util.im.Scheme;
-import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 
 
 import java.io.File;
 import java.io.File;
 
 

+ 1 - 0
app_modular/appbooking/src/main/AndroidManifest.xml

@@ -17,6 +17,7 @@
             android:windowSoftInputMode="adjustPan|stateHidden" />
             android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity android:name=".activity.services.BServiceDetailActivity" />
         <activity android:name=".activity.services.BServiceDetailActivity" />
         <activity android:name=".activity.utils.GridSelectActivity"></activity>
         <activity android:name=".activity.utils.GridSelectActivity"></activity>
+        <activity android:name=".activity.utils.GridSelectDateActivity"></activity>
     </application>
     </application>
 
 
 </manifest>
 </manifest>

+ 15 - 6
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java

@@ -13,7 +13,6 @@ import android.widget.Button;
 import android.widget.EditText;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.TextView;
-import android.widget.Toast;
 
 
 import com.afollestad.materialdialogs.MaterialDialog;
 import com.afollestad.materialdialogs.MaterialDialog;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
@@ -50,6 +49,7 @@ import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.modular.booking.R;
 import com.modular.booking.R;
 import com.modular.booking.activity.utils.GridSelectActivity;
 import com.modular.booking.activity.utils.GridSelectActivity;
+import com.modular.booking.activity.utils.GridSelectDateActivity;
 import com.modular.booking.model.SBListModel;
 import com.modular.booking.model.SBListModel;
 import com.modular.booking.model.SBMenuModel;
 import com.modular.booking.model.SBMenuModel;
 import com.modular.booking.widget.AddSubUtils;
 import com.modular.booking.widget.AddSubUtils;
@@ -661,11 +661,20 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
                         }
                         }
                     }
                     }
                     if (!ListUtils.isEmpty(selectBeens)) {
                     if (!ListUtils.isEmpty(selectBeens)) {
-                        Intent intent = new Intent(ct, GridSelectActivity.class)
-                                .putExtra("type", 2)
-                                .putExtra("title", title)
-                                .putParcelableArrayListExtra("data", selectBeens);
-                        startActivityForResult(intent, SERVICE_SELECT);
+                        if (model.getIndustrycode().equals("10003")){
+                            Intent intent = new Intent(ct, GridSelectDateActivity.class)
+                                    .putExtra("type", 2)
+                                    .putExtra("title", title)
+                                    .putParcelableArrayListExtra("data", selectBeens);
+                            startActivityForResult(intent, SERVICE_SELECT);
+                        }else{
+                            Intent intent = new Intent(ct, GridSelectActivity.class)
+                                    .putExtra("type", 2)
+                                    .putExtra("title", title)
+                                    .putParcelableArrayListExtra("data", selectBeens);
+                            startActivityForResult(intent, SERVICE_SELECT);
+                        }
+                      
                     } else {
                     } else {
                         showToast("该商家当前无可选服务", R.color.load_error);
                         showToast("该商家当前无可选服务", R.color.load_error);
                     }
                     }

+ 37 - 5
app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectActivity.java

@@ -1,5 +1,6 @@
 package com.modular.booking.activity.utils;
 package com.modular.booking.activity.utils;
 
 
+import android.content.Context;
 import android.content.Intent;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View;
@@ -10,8 +11,10 @@ import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.common.LogUtil;
 import com.common.data.ListUtils;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.data.StringUtil;
+import com.core.app.AppConstant;
 import com.core.base.OABaseActivity;
 import com.core.base.OABaseActivity;
 import com.core.model.SelectBean;
 import com.core.model.SelectBean;
+import com.modular.apputils.activity.SingleImagePreviewActivity;
 import com.modular.booking.R;
 import com.modular.booking.R;
 import com.modular.booking.adapter.ItemRoomsSelectAdapter;
 import com.modular.booking.adapter.ItemRoomsSelectAdapter;
 import com.modular.booking.model.SBMenuModel;
 import com.modular.booking.model.SBMenuModel;
@@ -23,9 +26,10 @@ import java.util.List;
   * @desc:功能界面  表格选择界面
   * @desc:功能界面  表格选择界面
   * @author:Arison on 2017/11/1
   * @author:Arison on 2017/11/1
   */
   */
-public class GridSelectActivity extends OABaseActivity {
+public class GridSelectActivity extends OABaseActivity{
     ItemRoomsSelectAdapter itemAdapter;
     ItemRoomsSelectAdapter itemAdapter;
     private GridView gvTopic;
     private GridView gvTopic;
+    private Context mContext;
     private List<SBMenuModel> menuModels=new ArrayList<>();
     private List<SBMenuModel> menuModels=new ArrayList<>();
     ArrayList<SelectBean> selectBeens = new ArrayList<SelectBean>();
     ArrayList<SelectBean> selectBeens = new ArrayList<SelectBean>();
 
 
@@ -34,6 +38,7 @@ public class GridSelectActivity extends OABaseActivity {
         super.onCreate(savedInstanceState);
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_grid_select);
         setContentView(R.layout.activity_grid_select);
         gvTopic = (GridView) findViewById(R.id.gv_topic);
         gvTopic = (GridView) findViewById(R.id.gv_topic);
+        mContext=this;
         initView();
         initView();
         initEvent();
         initEvent();
     }
     }
@@ -65,14 +70,41 @@ public class GridSelectActivity extends OABaseActivity {
     }
     }
     private static final String TAG = "GridSelectActivity";
     private static final String TAG = "GridSelectActivity";
     public void initEvent(){
     public void initEvent(){
+        
         gvTopic.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         gvTopic.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                ItemRoomsSelectAdapter.ViewHolder menuModel = (ItemRoomsSelectAdapter.ViewHolder) view.getTag();
-                LogUtil.d(TAG ,JSON.toJSONString(menuModel.model));
-                setResult(0x21,new Intent().putExtra("data",menuModel.model));
-                finish();
+                 final ItemRoomsSelectAdapter.ViewHolder menuModel = (ItemRoomsSelectAdapter.ViewHolder) view.getTag();
+                menuModel.tvBookAction.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+//                        ToastMessage("点击事件!");
+                        LogUtil.d(TAG,"按钮点击事件!");
+                        ToastMessage(""+menuModel.model.getDesc()+menuModel.model.getTitle());
+
+                        if (menuModel.model.isBooking()){
+                            ToastMessage("包间已满,不可预订!");
+                        }else{
+                            setResult(0x21,new Intent().putExtra("data",menuModel.model));
+                            finish();
+                        }
+                    }
+                });
+//                
+                menuModel.ivItem.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        LogUtil.d(TAG,"图片点击事件!");
+                        String loginUserId =menuModel.model.getUrl();
+                        Intent intent = new Intent(activity, SingleImagePreviewActivity.class);
+                        intent.putExtra(AppConstant.EXTRA_IMAGE_URI, loginUserId);
+                        startActivity(intent);
+                    }
+                });
+               
+               
             }
             }
         });
         });
+       
     }
     }
 }
 }

+ 200 - 0
app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/GridSelectDateActivity.java

@@ -0,0 +1,200 @@
+package com.modular.booking.activity.utils;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.app.ActionBar;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.GridView;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.common.LogUtil;
+import com.common.data.DateFormatUtil;
+import com.common.data.ListUtils;
+import com.common.data.StringUtil;
+import com.core.app.AppConstant;
+import com.core.app.Constants;
+import com.core.app.MyApplication;
+import com.core.base.OABaseActivity;
+import com.core.model.SelectBean;
+import com.core.widget.view.selectcalendar.SelectCalendarActivity;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.Method;
+import com.me.network.app.http.rx.ResultListener;
+import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.apputils.activity.SingleImagePreviewActivity;
+import com.modular.booking.R;
+import com.modular.booking.adapter.ItemRoomsSelectAdapter;
+import com.modular.booking.model.SBMenuModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+  * @desc:功能界面  表格选择界面
+ *   自定义头部
+  * @author:Arison on 2017/11/1
+  */
+public class GridSelectDateActivity extends OABaseActivity {
+    ItemRoomsSelectAdapter itemAdapter;
+    private GridView gvTopic;
+    private List<SBMenuModel> menuModels=new ArrayList<>();
+    ArrayList<SelectBean> selectBeens = new ArrayList<SelectBean>();
+    private TextView tvTopDate;
+    private ImageView back;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_grid_select);
+        gvTopic = (GridView) findViewById(R.id.gv_topic);
+        initView();
+        initEvent();
+    }
+    
+    private void initView(){
+        View view = LayoutInflater.from(ct).inflate(R.layout.action_service_room, null);
+        tvTopDate =(TextView)view.findViewById(R.id.tvTopDate);
+        back=(ImageView)view.findViewById(R.id.book_service_search_back);
+        ActionBar bar = this.getSupportActionBar();
+        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        bar.setBackgroundDrawable( getResources().getDrawable(R.color.antionbarcolor));
+        bar.setCustomView(view);
+
+        back.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onBackPressed();
+            }
+        });
+        if (getIntent()!=null){
+           selectBeens=getIntent().getParcelableArrayListExtra("data");
+           getSupportActionBar().setTitle(getIntent().getStringExtra("title"));
+           if (!ListUtils.isEmpty(selectBeens)){
+               for (int i = 0; i < selectBeens.size(); i++) {
+                   SelectBean selectBean=selectBeens.get(i);
+                   com.alibaba.fastjson.JSONObject object= JSON.parseObject(selectBean.getJson()) ;
+                   SBMenuModel menuModel=new SBMenuModel();
+                   menuModel.setUrl(object.getString("st_imageurl"));
+                   if (StringUtil.isEmpty(object.getString("st_name"))){
+                       menuModel.setTitle(object.getString("sm_username"));//医生
+                   }else{
+                       menuModel.setTitle(object.getString("st_name"));
+                   }
+                   menuModel.setCode(object.getString("sm_userid"));
+                   menuModel.setData(object.toJSONString());
+                   menuModels.add(menuModel);
+               }
+           }
+        }
+        LogUtil.d("GridSelectActivity","models:"+JSON.toJSONString(menuModels));
+        itemAdapter = new ItemRoomsSelectAdapter(mContext, menuModels);
+        gvTopic.setAdapter(itemAdapter);
+    }
+    private static final String TAG = "GridSelectActivity";
+    public void initEvent(){
+        tvTopDate.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //弹出日期
+                startActivityForResult(new Intent(mContext, SelectCalendarActivity.class)
+                        .putExtra("hasMenu", false)
+                        .putExtra("bookType","0")
+                        .putExtra("type", 3), 0x01);
+            }
+        });
+        gvTopic.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                final ItemRoomsSelectAdapter.ViewHolder menuModel = (ItemRoomsSelectAdapter.ViewHolder) view.getTag();
+                menuModel.tvBookAction.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+//                        ToastMessage("点击事件!");
+                        LogUtil.d(TAG,"按钮点击事件!");
+                        ToastMessage(""+menuModel.model.getDesc()+menuModel.model.getTitle());
+
+                        if (menuModel.model.isBooking()){
+                            ToastMessage("包间已满,不可预订!");
+                        }else{
+                            setResult(0x21,new Intent().putExtra("data",menuModel.model));
+                            finish();
+                        }
+                    }
+                });
+//                
+                menuModel.ivItem.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        LogUtil.d(TAG,"图片点击事件!");
+                        String loginUserId =menuModel.model.getUrl();
+                        Intent intent = new Intent(activity, SingleImagePreviewActivity.class);
+                        intent.putExtra(AppConstant.EXTRA_IMAGE_URI, loginUserId);
+                        startActivity(intent);
+                    }
+                });
+
+
+            }
+        });
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (data == null) {
+            return;
+        }
+        switch (requestCode){
+            case 0x01:
+                try {
+                    String startTime = data.getStringExtra("startDate");
+                    String displayDate = startTime;
+                    tvTopDate.setText(displayDate);
+                    getBookingDataState(DateFormatUtil.getStrDate4Date(DateFormatUtil.getDate4StrDate(displayDate,"yyyyMMdd"),"yyyyMMdd"));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                break;
+        }
+    }
+    
+    
+    public void getBookingDataState(String date){
+        LogUtil.d(TAG,"date:"+date);
+        //http://113.105.74.135:8092/user/appServiceBusytime?yearmonth=20171109&token=8a07b517fdd94248b7f00d120ab29502&commonid=0&type=餐饮&companyid=10002&client=Android%20Client
+          HttpClient httpClient=new HttpClient.Builder(Constants.IM_BASE_URL()).build();
+                 httpClient.Api().send(new HttpClient.Builder()
+                 .url("user/appServiceBusytime")
+                 .add("yearmonth",date)
+                 .add("commonid","0")
+                 .add("token", MyApplication.getInstance().mAccessToken)
+                 .method(Method.GET)
+                 .build(),new ResultSubscriber<Object>(new ResultListener<Object>() {
+          
+                     @Override
+                     public void onResponse(Object o) {
+                         try {
+                             LogUtil.d(TAG,o.toString());
+                             JSONArray reslut=JSON.parseObject(o.toString()).getJSONArray("reslut");
+                             if (reslut!=null){
+                                 for (int i = 0; i <reslut.size() ; i++) {
+                                     JSONObject object=reslut.getJSONObject(i);
+                                  
+                                 }
+                             }
+                             
+                         } catch (Exception e) {
+                             e.printStackTrace();
+                         }
+
+
+                     }
+                 }));
+    }
+}

+ 29 - 0
app_modular/appbooking/src/main/java/com/modular/booking/activity/utils/ServiceUtils.java

@@ -0,0 +1,29 @@
+package com.modular.booking.activity.utils;
+
+import com.common.data.DateFormatUtil;
+
+import java.util.Calendar;
+
+/**
+ * Created by Arison on 2017/11/9.
+ */
+
+public class ServiceUtils {
+
+    public static int  getCodeDateByService(String date){
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(DateFormatUtil.getDate4StrDate(date, "yyyy-MM-dd HH:mm"));
+        int hour = cal.get(Calendar.HOUR_OF_DAY);
+        if (hour >= 0 && hour < 12) {
+            System.out.print("早上好");
+            return 1;
+        } else if (hour >= 12 && hour < 18) {
+            System.out.print("下午好");
+            return 2;
+        } else if (hour >= 18 && hour < 24) {
+            System.out.print("晚上");
+            return 3;
+        }
+        return 0;
+    }
+}

+ 13 - 4
app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemRoomsSelectAdapter.java

@@ -63,18 +63,27 @@ public class ItemRoomsSelectAdapter extends BaseAdapter {
         }
         }
         holder.tvName.setText(object.getTitle());
         holder.tvName.setText(object.getTitle());
         holder.model=object;
         holder.model=object;
+        if (object.isBooking()){
+            holder.tvBookAction.setText("已预定");
+            holder.tvBookAction.setBackgroundResource(R.color.item_line);
+        }else{
+            holder.tvBookAction.setBackgroundResource(R.drawable.bg_bule_btn);
+            holder.tvBookAction.setText("预定");
+        }
     }
     }
 
 
     public class ViewHolder {
     public class ViewHolder {
-        private RelativeLayout rlItem;
-        private ImageView ivItem;
+        public  RelativeLayout rlImage;
+        public ImageView ivItem;
         private TextView tvName;
         private TextView tvName;
-       public SBMenuModel model;
+        public TextView tvBookAction;
+        public SBMenuModel model;
 
 
         public ViewHolder(View view) {
         public ViewHolder(View view) {
-            rlItem = (RelativeLayout) view.findViewById(R.id.rlItem);
+            rlImage = (RelativeLayout) view.findViewById(R.id.rlImage);
             tvName = (TextView) view.findViewById(R.id.tvName);
             tvName = (TextView) view.findViewById(R.id.tvName);
             ivItem=(ImageView) view.findViewById(R.id.ivItem);
             ivItem=(ImageView) view.findViewById(R.id.ivItem);
+            tvBookAction=(TextView) view.findViewById(R.id.tvBookAction);
             
             
         }
         }
     }
     }

+ 11 - 0
app_modular/appbooking/src/main/java/com/modular/booking/model/SBMenuModel.java

@@ -17,6 +17,7 @@ public class SBMenuModel implements Parcelable {
     private String desc;
     private String desc;
     private String url;
     private String url;
     private String data;
     private String data;
+    private boolean isBooking=false;//是否可以预约
 
 
     public int getIcon() {
     public int getIcon() {
         return icon;
         return icon;
@@ -74,6 +75,14 @@ public class SBMenuModel implements Parcelable {
         this.data = data;
         this.data = data;
     }
     }
 
 
+    public boolean isBooking() {
+        return isBooking;
+    }
+
+    public void setBooking(boolean booking) {
+        isBooking = booking;
+    }
+
     public SBMenuModel() {
     public SBMenuModel() {
     }
     }
 
 
@@ -91,6 +100,7 @@ public class SBMenuModel implements Parcelable {
         dest.writeString(this.desc);
         dest.writeString(this.desc);
         dest.writeString(this.url);
         dest.writeString(this.url);
         dest.writeString(this.data);
         dest.writeString(this.data);
+        dest.writeByte(this.isBooking ? (byte) 1 : (byte) 0);
     }
     }
 
 
     protected SBMenuModel(Parcel in) {
     protected SBMenuModel(Parcel in) {
@@ -101,6 +111,7 @@ public class SBMenuModel implements Parcelable {
         this.desc = in.readString();
         this.desc = in.readString();
         this.url = in.readString();
         this.url = in.readString();
         this.data = in.readString();
         this.data = in.readString();
+        this.isBooking = in.readByte() != 0;
     }
     }
 
 
     public static final Creator<SBMenuModel> CREATOR = new Creator<SBMenuModel>() {
     public static final Creator<SBMenuModel> CREATOR = new Creator<SBMenuModel>() {

BIN
app_modular/appbooking/src/main/res/drawable-hdpi/icon_day_after.png


BIN
app_modular/appbooking/src/main/res/drawable-hdpi/icon_day_qian.png


BIN
app_modular/appbooking/src/main/res/drawable-xhdpi/icon_day_after.png


BIN
app_modular/appbooking/src/main/res/drawable-xhdpi/icon_day_qian.png


BIN
app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_day_after.png


BIN
app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_day_qian.png


+ 29 - 0
app_modular/appbooking/src/main/res/layout/action_service_room.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    android:id="@+id/book_service_action"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="48dp">
+    <ImageView
+        android:id="@+id/book_service_search_back"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_marginRight="60dp"
+        android:layout_centerVertical="true"
+        android:src="@drawable/ic_action_back" />
+<TextView
+    android:id="@+id/tvTopDate"
+    android:layout_toRightOf="@+id/book_service_search_back"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content" 
+    android:layout_centerInParent="true"
+    android:textStyle="bold"
+    android:gravity="center"
+    android:drawablePadding="10dp"
+    android:drawableLeft="@drawable/icon_day_qian"
+    android:drawableRight="@drawable/icon_day_after"
+    android:textColor="@color/white"
+    android:textSize="17sp"
+    android:text="2017-11-09 12:13"/>
+
+</RelativeLayout>

+ 2 - 2
app_modular/appbooking/src/main/res/layout/activity_grid_select.xml

@@ -5,8 +5,8 @@
     <GridView
     <GridView
         android:id="@+id/gv_topic"
         android:id="@+id/gv_topic"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/white"
+        android:layout_height="match_parent"
+        android:background="@color/transparent"
         android:horizontalSpacing="15dp"
         android:horizontalSpacing="15dp"
         android:numColumns="2"
         android:numColumns="2"
         android:paddingLeft="15dp"
         android:paddingLeft="15dp"

+ 26 - 7
app_modular/appbooking/src/main/res/layout/item_rooms_select.xml

@@ -1,17 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/rlItem"
     android:orientation="vertical"
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/white">
+    android:layout_height="match_parent">
     <RelativeLayout
     <RelativeLayout
+        android:id="@+id/rlImage"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="150dp">
         android:layout_height="150dp">
     <ImageView
     <ImageView
         android:id="@+id/ivItem"
         android:id="@+id/ivItem"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="149dp"
         android:scaleType="fitXY" />
         android:scaleType="fitXY" />
     <TextView
     <TextView
         android:id="@+id/tvName"
         android:id="@+id/tvName"
@@ -23,7 +22,27 @@
         android:textColor="@color/white"
         android:textColor="@color/white"
         android:textStyle="bold"
         android:textStyle="bold"
         android:background="#80000000"
         android:background="#80000000"
-        android:text="服务项目"
-        />
-    </RelativeLayout>
+        android:text="服务项目" />
+</RelativeLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@+id/rlImage"
+        android:gravity="center"
+        android:orientation="horizontal">
+        <TextView
+            android:id="@+id/tvBookAction"
+            android:layout_width="60dp"
+            android:layout_height="30dp"
+            android:gravity="center"
+            
+            android:layout_margin="10dp"
+            android:layout_centerHorizontal="true"
+          
+            android:textColor="@color/white"
+            android:textStyle="bold"
+            android:text="已预定"
+            android:background="@color/gray"/>
+    </LinearLayout>
+  
 </RelativeLayout>
 </RelativeLayout>

+ 8 - 10
app_modular/apputils/src/main/AndroidManifest.xml

@@ -1,13 +1,11 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-
-          package="com.modular.apputils"
->
-
-    <application android:allowBackup="true"
-                 android:label="@string/app_name"
-                 android:supportsRtl="true"
-    >
-
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
+    package="com.modular.apputils">
+
+    <application
+        android:allowBackup="true"
+        android:label="@string/app_name"
+        android:supportsRtl="true">
+        <activity android:name=".activity.SingleImagePreviewActivity"></activity>
     </application>
     </application>
 
 
 </manifest>
 </manifest>

+ 216 - 0
app_modular/apputils/src/main/java/com/modular/apputils/activity/SingleImagePreviewActivity.java

@@ -0,0 +1,216 @@
+package com.modular.apputils.activity;
+
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import com.common.system.DisplayUtil;
+import com.core.app.ActionBackActivity;
+import com.core.app.AppConstant;
+import com.core.utils.CommonUtil;
+import com.modular.apputils.R;
+import com.modular.apputils.utils.Scheme;
+import com.nostra13.universalimageloader.core.ImageLoader;
+import com.nostra13.universalimageloader.core.assist.FailReason;
+import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
+
+import java.io.File;
+
+import uk.co.senab.photoview.PhotoViewAttacher;
+
+
+/**
+ * 单张图片预览
+ * 
+ * @author Dean Tao
+ * @version 1.0
+ */
+public class SingleImagePreviewActivity extends ActionBackActivity {
+
+	private String mImageUri;
+	private FrameLayout imageFl;
+	private ImageView mImageView;
+	private ProgressBar mProgressBar;
+	@SuppressWarnings("unused")
+	private TextView mProgressTextTv;
+	PhotoViewAttacher mAttacher;
+	private View mMoreMenuView;
+	private PopupWindow mMoreWindow;
+	private TextView sava_picture_tv;
+	private TextView cancel_picture_tv;
+	@Override
+	protected void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		if (getIntent() != null) {
+			mImageUri = getIntent().getStringExtra(AppConstant.EXTRA_IMAGE_URI);
+		}
+		getSupportActionBar().hide();
+		setContentView(R.layout.activity_single_image_preview);
+		initView();
+	}
+
+	private void initView() {
+		mImageView = (ImageView) findViewById(R.id.image_view);
+		imageFl= (FrameLayout) findViewById(R.id.image_fl);
+		mProgressBar = (ProgressBar) findViewById(R.id.progress_bar);
+		mProgressTextTv = (TextView) findViewById(R.id.progress_text_tv);
+
+		boolean showProgress = false;
+		// init status
+		Log.i("wang","mImageUri:"+mImageUri);
+		Scheme scheme = Scheme.ofUri(mImageUri);
+		Log.i("wang","scheme:"+scheme);
+		switch (scheme) {
+		case HTTP:
+		case  HTTPS:// 需要网络加载的
+			Bitmap bitmap = ImageLoader.getInstance().getMemoryCache().get(mImageUri);
+			if (bitmap == null || bitmap.isRecycled()) {
+				File file = ImageLoader.getInstance().getDiscCache().get(mImageUri);
+				if (file == null || !file.exists()) {// 文件不存在,那么就表示需要重新下载
+					showProgress = true;
+				}
+			}
+			break;
+		case  UNKNOWN:// 如果不知道什么类型,且不为空,就当做是一个本地文件的路径来加载
+			if (TextUtils.isEmpty(mImageUri)) {
+				mImageUri = "";
+			} else {
+				mImageUri = Uri.fromFile(new File(mImageUri)).toString();
+			}
+			break;
+		default:
+			// 其他 drawable asset类型不处理
+			break;
+		}
+		if (showProgress) {
+			ImageLoader.getInstance().displayImage(mImageUri, mImageView, mImageLoadingListener);
+		} else {
+			ImageLoader.getInstance().displayImage(mImageUri, mImageView, mImageLoadingListener);
+		}
+	}
+
+
+	/**
+	 * @param :长按点击弹出PopupWindow事件,
+	 * @author: FANGlh 2016-12-6
+	 */
+	public void longclickshowppw(final String mImageUri){
+
+		mMoreMenuView = View.inflate(mContext, R.layout.layout_menu_common_save_picture, null);
+		sava_picture_tv = (TextView) mMoreMenuView.findViewById(R.id.save_tv);
+		cancel_picture_tv = (TextView) mMoreMenuView.findViewById(R.id.cancel_tv);
+
+		mMoreWindow = new PopupWindow(mMoreMenuView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
+		mMoreWindow.setAnimationStyle(R.style.MenuAnimationFade);
+		mMoreWindow.setBackgroundDrawable(new BitmapDrawable());
+		mMoreWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+			@Override
+			public void onDismiss() {
+				closeMorePopupWindow();
+			}
+		});
+
+		mMoreWindow.showAtLocation(getWindow().getDecorView(), Gravity.CENTER, 0, 0);
+		DisplayUtil.backgroundAlpha(mContext, 0.5f);
+
+		sava_picture_tv.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+                CommonUtil.saveImageToLocal(getApplicationContext(), ImageLoader.getInstance().loadImageSync(mImageUri));
+				closeMorePopupWindow();
+			}
+		});
+
+		cancel_picture_tv.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				closeMorePopupWindow();
+			}
+		});
+
+
+	}
+
+	private void closeMorePopupWindow() {
+		if (mMoreWindow != null) {
+			mMoreWindow.dismiss();
+			DisplayUtil.backgroundAlpha(mContext, 1f);
+		}
+
+	}
+
+
+	@Override
+	public void onBackPressed() {
+		finish();
+		overridePendingTransition(0, R.anim.alpha_scale_out);
+	}
+
+	@Override
+	protected boolean onHomeAsUp() {
+		finish();
+		overridePendingTransition(0, R.anim.alpha_scale_out);
+		return true;
+	}
+
+	private ImageLoadingListener mImageLoadingListener = new ImageLoadingListener() {
+		@Override
+		public void onLoadingStarted(String arg0, View arg1) {
+			mProgressBar.setVisibility(View.VISIBLE);
+		}
+
+		@Override
+		public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
+			mProgressBar.setVisibility(View.GONE);
+		}
+
+		@Override
+		public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
+			mProgressBar.setVisibility(View.GONE);
+			mAttacher=new PhotoViewAttacher((ImageView) arg1);
+			mAttacher.update();
+
+			mAttacher.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
+				@Override
+				public void onPhotoTap(View view, float x, float y) {
+					finish();
+					overridePendingTransition(0, R.anim.alpha_scale_out);
+				}
+
+				@Override
+				public void onOutsidePhotoTap() {
+
+				}
+			});
+
+			mAttacher.setOnLongClickListener(new View.OnLongClickListener() {
+				@Override
+				public boolean onLongClick(View v) {
+					longclickshowppw(mImageUri);
+					return true;
+				}
+			});
+		}
+
+		@Override
+		public void onLoadingCancelled(String arg0, View arg1) {
+			mProgressBar.setVisibility(View.GONE);
+		}
+	};
+
+
+
+
+
+}

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/im/Scheme.java → app_modular/apputils/src/main/java/com/modular/apputils/utils/Scheme.java

@@ -1,4 +1,4 @@
-package com.xzjmyk.pm.activity.util.im;
+package com.modular.apputils.utils;
 
 
 import java.util.Locale;
 import java.util.Locale;