Arison 9 лет назад
Родитель
Сommit
efa07701e8
19 измененных файлов с 521 добавлено и 112 удалено
  1. 29 16
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/AllSubscriptionAdapter.java
  2. 15 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/MySubscriptionAdapter.java
  3. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/PersonalSubscriptionBean.java
  4. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/SubscriptionNumber.java
  5. 57 27
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ManageAllSubscriptionActivity.java
  6. 91 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/AllRemovedSubsAdapter.java
  7. 128 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/AllRemovedSubsItemAdapter.java
  8. 13 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java
  9. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java
  10. 21 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java
  11. 30 17
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionMyFragment.java
  12. 12 22
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java
  13. 4 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java
  14. 40 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java
  15. 3 4
      WeiChat/src/main/res/layout/activity_manage_all_subs.xml
  16. 0 1
      WeiChat/src/main/res/layout/layout_all_subscription_list.xml
  17. 31 0
      WeiChat/src/main/res/layout/layout_list_manage_all_subs.xml
  18. 28 0
      WeiChat/src/main/res/layout/layout_list_manage_all_subs_item.xml
  19. 0 1
      WeiChat/src/main/res/layout/layout_my_subscribe_list.xml

+ 29 - 16
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/AllSubscriptionAdapter.java

@@ -2,6 +2,7 @@ package com.xzjmyk.pm.activity.adapter;
 
 import android.annotation.TargetApi;
 import android.content.Context;
+import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.os.Build;
 import android.os.Handler;
@@ -20,6 +21,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
+import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.ArrayList;
@@ -31,14 +33,14 @@ import java.util.Map;
 /**
  * Created by RaoMeng on 2016/9/7.
  */
-public class AllSubscriptionAdapter extends BaseAdapter{
+public class AllSubscriptionAdapter extends BaseAdapter {
     private Context mContext;
     private List<SubscriptionNumber> mSubscriptionNumbers;
     private List<Integer> mImageIds;
     private int clickPosition;
     protected CustomProgressDialog progressDialog;
     private DBManager mDbManager;
-    
+
 
     public AllSubscriptionAdapter(Context mContext, List<SubscriptionNumber> mSubscriptionNumbers) {
         this.mContext = mContext;
@@ -72,30 +74,41 @@ public class AllSubscriptionAdapter extends BaseAdapter{
     @Override
     public View getView(final int position, View convertView, ViewGroup parent) {
         ViewHolder viewHolder = null;
-        if (convertView == null){
-            convertView = View.inflate(mContext, R.layout.layout_all_subscription_list,null);
+        if (convertView == null) {
+            convertView = View.inflate(mContext, R.layout.layout_all_subscription_list, null);
             viewHolder = new ViewHolder();
 
             viewHolder.subImageView = (ImageView) convertView.findViewById(R.id.all_subscribe_iv);
             viewHolder.subNameTextView = (TextView) convertView.findViewById(R.id.all_subscribe_title_tv);
             viewHolder.applyTextView = (TextView) convertView.findViewById(R.id.all_subscribe_apply_tv);
             convertView.setTag(viewHolder);
-        }else {
+        } else {
             viewHolder = (ViewHolder) convertView.getTag();
         }
 
-//        viewHolder.subImageView.setImageResource(mImageIds.get(position % 5));
+        if (mSubscriptionNumbers.get(position).getImg() != null) {
+            byte[] imgBytes = mSubscriptionNumbers.get(position).getImg();
+            if (imgBytes.length != 0) {
+                Bitmap bitmap = ImageUtil.compressBitmapWithByte(imgBytes,40,40);
+                viewHolder.subImageView.setImageBitmap(bitmap);
+            }else {
+                viewHolder.subImageView.setImageResource(R.drawable.ic_subscription_number);
+            }
+        } else {
+            viewHolder.subImageView.setImageResource(R.drawable.ic_subscription_number);
+        }
+
         viewHolder.subNameTextView.setText(mSubscriptionNumbers.get(position).getTitle());
-        if (mSubscriptionNumbers.get(position).getStatus()== 1){
+        if (mSubscriptionNumbers.get(position).getStatus() == 1) {
             viewHolder.applyTextView.setText("已订阅");
             viewHolder.applyTextView.setTextColor(Color.GRAY);
             viewHolder.applyTextView.setEnabled(false);
-        }else if (mSubscriptionNumbers.get(position).getStatus() == 3){
+        } else if (mSubscriptionNumbers.get(position).getStatus() == 3) {
 //            CommonUtil.textUnderlineForStyle(viewHolder.applyTextView,"申请","申请");
             viewHolder.applyTextView.setText("+订阅");
             viewHolder.applyTextView.setTextColor(Color.BLUE);
             viewHolder.applyTextView.setEnabled(true);
-        }else if (mSubscriptionNumbers.get(position).getStatus() == 2){
+        } else if (mSubscriptionNumbers.get(position).getStatus() == 2) {
             viewHolder.applyTextView.setText("已申请");
             viewHolder.applyTextView.setTextColor(Color.GRAY);
             viewHolder.applyTextView.setEnabled(false);
@@ -117,26 +130,26 @@ public class AllSubscriptionAdapter extends BaseAdapter{
     private void sendApplySubs(int position) {
         progressDialog.show();
         String applyUrl = Constants.getAppBaseUrl(mContext) + "common/charts/vastAddSubsApply.action";
-        Map<String,Object> params = new HashMap<>();
-        params.put("ids",mSubscriptionNumbers.get(position).getId());
+        Map<String, Object> params = new HashMap<>();
+        params.put("ids", mSubscriptionNumbers.get(position).getId());
         params.put("caller", "VastAddSubsApply");
 
-        LinkedHashMap<String,Object> headers = new LinkedHashMap<>();
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(mContext, "sessionId"));
         ViewUtil.httpSendRequest(mContext, applyUrl, params, mHandler, headers, APPLY_SUBSCRIPTION, null, null, "post");
     }
 
 
     private final static int APPLY_SUBSCRIPTION = 101;
-    private Handler mHandler = new Handler(){
+    private Handler mHandler = new Handler() {
         @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
         @Override
         public void handleMessage(Message msg) {
-            switch (msg.what){
+            switch (msg.what) {
                 case APPLY_SUBSCRIPTION:
                     progressDialog.dismiss();
                     Log.d("applysubscription", msg.getData().getString("result"));
-                    CommonUtil.imageToast(mContext,R.drawable.ic_apply_submit_success,"",2000);
+                    CommonUtil.imageToast(mContext, R.drawable.ic_apply_submit_success, "", 2000);
                     mSubscriptionNumbers.get(clickPosition).setStatus(2);
                     mDbManager.updateAllSubs(mSubscriptionNumbers.get(clickPosition));
                     notifyDataSetChanged();
@@ -149,7 +162,7 @@ public class AllSubscriptionAdapter extends BaseAdapter{
         }
     };
 
-    class ViewHolder{
+    class ViewHolder {
         ImageView subImageView;
         TextView subNameTextView;
         TextView applyTextView;

+ 15 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/MySubscriptionAdapter.java

@@ -1,6 +1,7 @@
 package com.xzjmyk.pm.activity.adapter;
 
 import android.content.Context;
+import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.os.Handler;
 import android.os.Message;
@@ -21,6 +22,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
+import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.ArrayList;
@@ -84,7 +86,19 @@ public class MySubscriptionAdapter extends BaseAdapter {
         }else {
             viewHolder = (ViewHolder) view.getTag();
         }
-//        viewHolder.subscribeIv.setImageResource(mImageIds.get(i % 5));
+
+        if (mPersonalSubscriptionBeans.get(i).getIMG() != null){
+            byte[] imgBytes = mPersonalSubscriptionBeans.get(i).getIMG();
+            if (imgBytes.length != 0){
+                Bitmap bitmap = ImageUtil.compressBitmapWithByte(imgBytes,40,40);
+                viewHolder.subscribeIv.setImageBitmap(bitmap);
+            }else {
+                viewHolder.subscribeIv.setImageResource(R.drawable.ic_subscription_number);
+            }
+        }else {
+            viewHolder.subscribeIv.setImageResource(R.drawable.ic_subscription_number);
+        }
+
         viewHolder.titleTv.setText(mPersonalSubscriptionBeans.get(i).getTITLE());
         if (mPersonalSubscriptionBeans.get(i).getISAPPLED() == -1){
             viewHolder.applyTv.setText("-退订");

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/PersonalSubscriptionBean.java

@@ -11,6 +11,15 @@ public class PersonalSubscriptionBean {
     private int ISAPPLED;
     private String MASTER;
     private String USERNAME;
+    private byte[] IMG;
+
+    public byte[] getIMG() {
+        return IMG;
+    }
+
+    public void setIMG(byte[] IMG) {
+        this.IMG = IMG;
+    }
 
     public String getUSERNAME() {
         return USERNAME;

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/SubscriptionNumber.java

@@ -13,6 +13,15 @@ public class SubscriptionNumber {
     private String master;//订阅号所属账套
     private String username;//订阅号所属账号
     private int removed;//是否被本地移除
+    private byte[] img;
+
+    public byte[] getImg() {
+        return img;
+    }
+
+    public void setImg(byte[] img) {
+        this.img = img;
+    }
 
     public int getRemoved() {
         return removed;

+ 57 - 27
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ManageAllSubscriptionActivity.java

@@ -2,14 +2,17 @@ package com.xzjmyk.pm.activity.ui.erp.activity;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.widget.ListView;
 
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
+import com.xzjmyk.pm.activity.bean.message.AllSubscriptonKindMessage;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.adapter.AllRemovedSubsAdapter;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.util.Constants;
-import com.xzjmyk.pm.activity.util.SharedUtil;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -22,9 +25,15 @@ public class ManageAllSubscriptionActivity extends BaseActivity {
     private DBManager mDbManager;
     private String currentMaster;//当前账套
     private String currentUser;//当前账号
-    private List<SubscriptionNumber> dbSubscriptionNumbers;
+    private List<SubscriptionNumber> dbSubscriptionNumbers;//数据库数据
+    private List<SubscriptionNumber> mSubscriptionNumbers;//被移除的订阅数据
     private List<Object> keyStrings;
-    private List<Object> allKeyStrings;
+    private List<Object> removedKeyStrings;
+
+    private ListView mRemovedListView;
+    private EmptyLayout mEmptyLayout;
+    private List<AllSubscriptonKindMessage> mAllSubscriptonKindMessages;
+    private AllRemovedSubsAdapter mAllRemovedSubsAdapter;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -46,20 +55,58 @@ public class ManageAllSubscriptionActivity extends BaseActivity {
         if (dbSubscriptionNumbers != null && dbSubscriptionNumbers.size() != 0) {
             for (int i = 0; i < dbSubscriptionNumbers.size(); i++) {
                 SubscriptionNumber subscriptionNumber = dbSubscriptionNumbers.get(i);
-                subscriptionNumber.setRemoved(0);
-                allKeyStrings.add(subscriptionNumber.getType());
+                if (subscriptionNumber.getRemoved() == 1 && subscriptionNumber.getStatus() != 1){
+                    mSubscriptionNumbers.add(subscriptionNumber);
+                }
+            }
+            if (mSubscriptionNumbers == null || mSubscriptionNumbers.size() == 0){
+                mEmptyLayout.showEmpty();
+            }else {
+                for (int i = 0; i < mSubscriptionNumbers.size(); i++) {
+                    removedKeyStrings.add(mSubscriptionNumbers.get(i).getType());
+                }
+                keyStrings = CommonUtil.getSingleElement(removedKeyStrings);
+
+                for (int i = 0; i < keyStrings.size(); i++) {
+                    List<SubscriptionNumber> tempSubscriptionNumbers = null;
+                    String key = keyStrings.get(i).toString();
+                    AllSubscriptonKindMessage subscriptonKindMessage = new AllSubscriptonKindMessage();
+                    subscriptonKindMessage.setSubscriptionKind(key);
+                    tempSubscriptionNumbers = new ArrayList<>();
+                    for (int j = 0; j < mSubscriptionNumbers.size(); j++) {
+                        SubscriptionNumber tempSubscriptionNumber = mSubscriptionNumbers.get(j);
+                        if (tempSubscriptionNumber.getType().equals(key)){
+                            tempSubscriptionNumbers.add(tempSubscriptionNumber);
+                        }
+                    }
+                    if (tempSubscriptionNumbers != null && tempSubscriptionNumbers.size() != 0){
+                        subscriptonKindMessage.setSubscriptionNumbers(tempSubscriptionNumbers);
+                    }
+                    mAllSubscriptonKindMessages.add(subscriptonKindMessage);
+                }
+                mAllRemovedSubsAdapter.notifyDataSetChanged();
             }
-            mDbManager.updateListAllSubs(dbSubscriptionNumbers);
+
+        }else {
+            mEmptyLayout.showEmpty();
         }
 
-        keyStrings = CommonUtil.getSingleElement(allKeyStrings);
-        initKeyStrings();
-//        Toast.makeText(this, "整理完成", Toast.LENGTH_SHORT).show();
     }
 
     private void initViews() {
+        mRemovedListView = (ListView) findViewById(R.id.manage_all_subs_lv);
+        mSubscriptionNumbers = new ArrayList<>();
+        mAllSubscriptonKindMessages = new ArrayList<>();
+
+        mAllRemovedSubsAdapter = new AllRemovedSubsAdapter(mAllSubscriptonKindMessages,this);
+        mRemovedListView.setAdapter(mAllRemovedSubsAdapter);
+        mEmptyLayout = new EmptyLayout(this, mRemovedListView);
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setEmptyMessage("您没有隐藏的订阅号");
         keyStrings = new ArrayList<>();
-        allKeyStrings = new ArrayList<>();
+        removedKeyStrings = new ArrayList<>();
         mDbManager = new DBManager(this);
         currentMaster = CommonUtil.getSharedPreferences(this, "erp_master");
         currentUser = CommonUtil.getSharedPreferences(this, "erp_username");
@@ -68,23 +115,6 @@ public class ManageAllSubscriptionActivity extends BaseActivity {
 
     }
 
-    private void initKeyStrings() {
-        StringBuilder keyStringBuilder = null;
-        if (keyStrings.size() != 0) {
-            keyStringBuilder = new StringBuilder();
-            for (int i = 0; i < keyStrings.size(); i++) {
-                keyStringBuilder.append("," + keyStrings.get(i));
-            }
-            if (keyStringBuilder.length() > 2) {
-                keyStringBuilder.delete(0, 1);
-            }
-            SharedUtil.putString(currentMaster + currentUser + "subs", keyStringBuilder.toString());
-        } else {
-            SharedUtil.putString(currentMaster + currentUser + "subs", null);
-        }
-
-    }
-
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 91 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/AllRemovedSubsAdapter.java

@@ -0,0 +1,91 @@
+package com.xzjmyk.pm.activity.ui.erp.adapter;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
+import com.xzjmyk.pm.activity.bean.message.AllSubscriptonKindMessage;
+import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
+import com.xzjmyk.pm.activity.view.MyListView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 被隐藏的所有订阅号的适配器
+ * Created by RaoMeng on 2016/10/31.
+ */
+public class AllRemovedSubsAdapter extends BaseAdapter {
+    private List<AllSubscriptonKindMessage> mAllSubscriptonKindMessages;
+    private Context mContext;
+    private List<SubscriptionNumber> mSubscriptionNumbers;
+    private AllRemovedSubsItemAdapter mAllRemovedSubsItemAdapter;
+    public AllRemovedSubsAdapter(List<AllSubscriptonKindMessage> mAllSubscriptonKindMessages, Context mContext) {
+        this.mAllSubscriptonKindMessages = mAllSubscriptonKindMessages;
+        this.mContext = mContext;
+
+        mSubscriptionNumbers = new ArrayList<>();
+    }
+
+    @Override
+    public int getCount() {
+        return mAllSubscriptonKindMessages.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return mAllSubscriptonKindMessages.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder viewHolder = null;
+        if (convertView == null){
+            convertView = View.inflate(mContext, R.layout.layout_list_manage_all_subs,null);
+            viewHolder = new ViewHolder();
+            viewHolder.subsListView = (MyListView) convertView.findViewById(R.id.manage_all_subs_list_mlv);
+            viewHolder.typeTextView = (TextView) convertView.findViewById(R.id.manage_all_subs_list_type_tv);
+            convertView.setTag(viewHolder);
+        }else {
+            viewHolder = (ViewHolder) convertView.getTag();
+        }
+
+        viewHolder.typeTextView.setText(mAllSubscriptonKindMessages.get(position).getSubscriptionKind());
+        mSubscriptionNumbers = mAllSubscriptonKindMessages.get(position).getSubscriptionNumbers();
+        mAllRemovedSubsItemAdapter = new AllRemovedSubsItemAdapter(mSubscriptionNumbers,mContext,mHandler);
+        viewHolder.subsListView.setAdapter(mAllRemovedSubsItemAdapter);
+        return convertView;
+    }
+
+    private Handler mHandler = new Handler(){
+        @Override
+        public void handleMessage(Message msg) {
+            super.handleMessage(msg);
+            if (msg.what == 111){
+                String key = (String) msg.obj;
+                for (int i = 0; i < mAllSubscriptonKindMessages.size(); i++) {
+                    if (mAllSubscriptonKindMessages.get(i).getSubscriptionKind().equals(key)){
+                        mAllSubscriptonKindMessages.remove(i);
+                        notifyDataSetChanged();
+                    }
+                }
+            }
+        }
+    };
+
+    class ViewHolder{
+        TextView typeTextView;
+        MyListView subsListView;
+    }
+}

+ 128 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/AllRemovedSubsItemAdapter.java

@@ -0,0 +1,128 @@
+package com.xzjmyk.pm.activity.ui.erp.adapter;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
+import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.util.SharedUtil;
+
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 被移除订阅号的item适配器
+ * Created by RaoMeng on 2016/10/31.
+ */
+public class AllRemovedSubsItemAdapter extends BaseAdapter {
+    private List<SubscriptionNumber> mSubscriptionNumbers;
+    private Context mContext;
+    private List<Object> keyStrings;
+    private List<Object> cacheKeyStrings;
+    private String currentMaster;//当前账套
+    private String currentUser;//当前账号
+    private DBManager mDbManager;
+    private Handler mHandler;
+    public AllRemovedSubsItemAdapter(List<SubscriptionNumber> mSubscriptionNumbers, Context mContext, Handler mHandler) {
+        this.mSubscriptionNumbers = mSubscriptionNumbers;
+        this.mContext = mContext;
+        this.mHandler = mHandler;
+        keyStrings = new ArrayList<>();
+        cacheKeyStrings = new ArrayList<>();
+        mDbManager = new DBManager(mContext);
+        currentMaster = CommonUtil.getSharedPreferences(mContext, "erp_master");
+        currentUser = CommonUtil.getSharedPreferences(mContext, "erp_username");
+
+        String cacheKeys = SharedUtil.getString(currentMaster + currentUser + "subs");
+        if (cacheKeys != null) {
+            String[] cacheKeysArray = cacheKeys.split(",");
+            for (int i = 0; i < cacheKeysArray.length; i++) {
+                cacheKeyStrings.add(cacheKeysArray[i]);
+            }
+        }
+    }
+
+    @Override
+    public int getCount() {
+        return mSubscriptionNumbers.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return mSubscriptionNumbers.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(final int position, View convertView, ViewGroup parent) {
+        ViewHolder viewHolder = null;
+        if (convertView == null){
+            convertView = View.inflate(mContext, R.layout.layout_list_manage_all_subs_item,null);
+            viewHolder = new ViewHolder();
+            viewHolder.addTextView = (TextView) convertView.findViewById(R.id.manage_all_subs_list_item_add_tv);
+            viewHolder.nameTextView = (TextView) convertView.findViewById(R.id.manage_all_subs_list_item_name_tv);
+            convertView.setTag(viewHolder);
+        }else {
+            viewHolder = (ViewHolder) convertView.getTag();
+        }
+        viewHolder.nameTextView.setText(mSubscriptionNumbers.get(position).getTitle());
+        viewHolder.addTextView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mSubscriptionNumbers.get(position).setRemoved(0);
+                mDbManager.updateAllSubs(mSubscriptionNumbers.get(position));
+                cacheKeyStrings.add(mSubscriptionNumbers.get(position).getType());
+                String type = mSubscriptionNumbers.get(position).getType();
+                mSubscriptionNumbers.remove(position);
+                notifyDataSetChanged();
+                keyStrings = CommonUtil.getSingleElement(cacheKeyStrings);
+                initKeyStrings();
+
+                if (mSubscriptionNumbers.size() == 0){
+                    Message message = Message.obtain();
+                    message.what = 111;
+                    message.obj = type;
+                    mHandler.sendMessage(message);
+                }
+            }
+        });
+        return convertView;
+    }
+
+
+    private void initKeyStrings() {
+        StringBuilder keyStringBuilder = null;
+        if (keyStrings.size() != 0) {
+            keyStringBuilder = new StringBuilder();
+            for (int i = 0; i < keyStrings.size(); i++) {
+                keyStringBuilder.append("," + keyStrings.get(i));
+            }
+            if (keyStringBuilder.length() > 2) {
+                keyStringBuilder.delete(0, 1);
+            }
+            SharedUtil.putString(currentMaster + currentUser + "subs", keyStringBuilder.toString());
+        } else {
+            SharedUtil.putString(currentMaster + currentUser + "subs", null);
+        }
+
+    }
+
+
+    class ViewHolder{
+        TextView nameTextView;
+        TextView addTextView;
+    }
+}

+ 13 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java

@@ -497,10 +497,8 @@ public class DBManager {
         sqLiteStatement.bindLong(8, subscriptionNumber.getRemoved());
         sqLiteStatement.execute();
     }*/
-
-   
-    public void saveListToAllSubs(List<SubscriptionNumber> subscriptionNumbers){
-        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master,subs_username,subs_removed) values (?,?,?,?,?,?,?,?)";
+    public void saveListToAllSubs(List<SubscriptionNumber> subscriptionNumbers) {
+        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master,subs_username,subs_removed,subs_img) values (?,?,?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         for (int i = 0; i < subscriptionNumbers.size(); i++) {
             SubscriptionNumber subscriptionNumber = subscriptionNumbers.get(i);
@@ -512,6 +510,8 @@ public class DBManager {
             sqLiteStatement.bindString(6, subscriptionNumber.getMaster());
             sqLiteStatement.bindString(7, subscriptionNumber.getUsername());
             sqLiteStatement.bindLong(8, subscriptionNumber.getRemoved());
+            sqLiteStatement.bindBlob(9, subscriptionNumber.getImg());
+
             sqLiteStatement.execute();
         }
     }
@@ -533,6 +533,7 @@ public class DBManager {
             subscriptionNumber.setMaster(cursor.getString(cursor.getColumnIndex("subs_master")));
             subscriptionNumber.setUsername(cursor.getString(cursor.getColumnIndex("subs_username")));
             subscriptionNumber.setRemoved(cursor.getInt(cursor.getColumnIndex("subs_removed")));
+            subscriptionNumber.setImg(cursor.getBlob(cursor.getColumnIndex("subs_img")));
             subscriptionNumbers.add(subscriptionNumber);
         }
         cursor.close();
@@ -554,7 +555,7 @@ public class DBManager {
         sta.executeInsert();
     }
 
-    public void updateListAllSubs(List<SubscriptionNumber> subscriptionNumbers){
+    public void updateListAllSubs(List<SubscriptionNumber> subscriptionNumbers) {
         String sql = "update AllSubs"
                 + " set subs_status=?, subs_removed=? "
                 + " where subs_id=? and subs_master=? and subs_username=? ;";
@@ -600,7 +601,7 @@ public class DBManager {
      * ************* 已订阅表MySubs操作  ***************************************
      *************************************************************************/
     public void saveToMySubs(PersonalSubscriptionBean personalSubscriptionBean) {
-        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username) values (?,?,?,?,?,?,?)";
+        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username,subs_img) values (?,?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         sqLiteStatement.bindLong(1, personalSubscriptionBean.getNUM_ID());
         sqLiteStatement.bindString(2, personalSubscriptionBean.getTITLE());
@@ -609,11 +610,12 @@ public class DBManager {
         sqLiteStatement.bindLong(5, personalSubscriptionBean.getISAPPLED());
         sqLiteStatement.bindString(6, personalSubscriptionBean.getMASTER());
         sqLiteStatement.bindString(7, personalSubscriptionBean.getUSERNAME());
+        sqLiteStatement.bindBlob(8, personalSubscriptionBean.getIMG());
         sqLiteStatement.execute();
     }
 
     public void saveListToMySubs(List<PersonalSubscriptionBean> personalSubscriptionBeans) {
-        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username) values (?,?,?,?,?,?,?)";
+        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username,subs_img) values (?,?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         for (int i = 0; i < personalSubscriptionBeans.size(); i++) {
             PersonalSubscriptionBean personalSubscriptionBean = personalSubscriptionBeans.get(i);
@@ -624,6 +626,7 @@ public class DBManager {
             sqLiteStatement.bindLong(5, personalSubscriptionBean.getISAPPLED());
             sqLiteStatement.bindString(6, personalSubscriptionBean.getMASTER());
             sqLiteStatement.bindString(7, personalSubscriptionBean.getUSERNAME());
+            sqLiteStatement.bindBlob(8, personalSubscriptionBean.getIMG());
             sqLiteStatement.execute();
         }
     }
@@ -644,6 +647,7 @@ public class DBManager {
             personalSubscriptionBean.setISAPPLED(cursor.getInt(cursor.getColumnIndex("subs_applied")));
             personalSubscriptionBean.setMASTER(cursor.getString(cursor.getColumnIndex("subs_master")));
             personalSubscriptionBean.setUSERNAME(cursor.getString(cursor.getColumnIndex("subs_username")));
+            personalSubscriptionBean.setIMG(cursor.getBlob(cursor.getColumnIndex("subs_img")));
             personalSubscriptionBeans.add(personalSubscriptionBean);
         }
         cursor.close();
@@ -681,9 +685,9 @@ public class DBManager {
         }
     }*/
 
-    public void deleteMasterMySubs(String master, String username){
+    public void deleteMasterMySubs(String master, String username) {
         String table = "MySubs";
-        String[] whereArgs = {master,username};
+        String[] whereArgs = {master, username};
         String whereClause = "subs_master=? and subs_username=? ";
         db.delete(table, whereClause, whereArgs);
     }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java

@@ -13,7 +13,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
  */
 public class DBOpenHelper extends SQLiteOpenHelper {
 
-    private static final int DATABASE_VERSION = 57;//数据库版本号(每添加一个表要增加版本号)
+    private static final int DATABASE_VERSION = 58;//数据库版本号(每添加一个表要增加版本号)
     public static String dataBaseName = "erp.db";//数据库名称
     public Context context;
 

+ 21 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java

@@ -4,6 +4,7 @@ import android.content.Intent;
 import android.graphics.drawable.BitmapDrawable;
 import android.os.Handler;
 import android.os.Message;
+import android.util.Base64;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.View;
@@ -29,7 +30,6 @@ import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.SharedUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
-import com.xzjmyk.pm.activity.view.crouton.Style;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -110,8 +110,15 @@ public class SubscriptionAllFragment extends BaseFragment {
         mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
-                mAllSubscriptonKindMessages.clear();
-                sendAllSubscriptionRequest();
+                if (CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())){
+                    mAllSubscriptonKindMessages.clear();
+                    sendAllSubscriptionRequest();
+                }else {
+                    if (mPullToRefreshListView.isRefreshing()){
+                        mPullToRefreshListView.onRefreshComplete(500);
+                    }
+                    Crouton.makeText(getActivity(), "网络未连接", 0xffff4444, 1500).show();
+                }
             }
 
             @Override
@@ -145,7 +152,7 @@ public class SubscriptionAllFragment extends BaseFragment {
             public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
                 View popView = View.inflate(getActivity(), R.layout.pop_subs_delete, null);
                 TextView deleteTv = (TextView) popView.findViewById(R.id.pop_subs_delete_tv);
-                deleteTv.setText("删除该订阅号");
+                deleteTv.setText("隐藏该订阅号");
                 deleteTv.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
@@ -217,7 +224,7 @@ public class SubscriptionAllFragment extends BaseFragment {
             public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
                 View popView = View.inflate(getActivity(), R.layout.pop_subs_delete, null);
                 TextView deleteTv = (TextView) popView.findViewById(R.id.pop_subs_delete_tv);
-                deleteTv.setText("删除该订阅类");
+                deleteTv.setText("隐藏该订阅类");
                 deleteTv.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
@@ -348,7 +355,9 @@ public class SubscriptionAllFragment extends BaseFragment {
                     String currentKey = keyStrings.get(i);
                     for (int j = 0; j < dbSubscriptionNumbers.size(); j++) {
                         SubscriptionNumber currentSubscriptionNumber = dbSubscriptionNumbers.get(j);
-                        if (currentSubscriptionNumber.getType().equals(currentKey)) {
+                        if (currentSubscriptionNumber.getType().equals(currentKey)
+                                && currentSubscriptionNumber.getRemoved() != 1
+                                && currentSubscriptionNumber.getStatus() != 1) {
                             tempSubscriptionNumbers.add(currentSubscriptionNumber);
                         }
                     }
@@ -422,14 +431,15 @@ public class SubscriptionAllFragment extends BaseFragment {
                             for (int i = 0; i < subsArray.length(); i++) {
                                 JSONObject subsObject = subsArray.getJSONObject(i);
                                 SubscriptionNumber subscriptionNumber = new SubscriptionNumber();
-                                subscriptionNumber.setId(subsObject.getInt("id"));
-                                subscriptionNumber.setTitle(subsObject.getString("title"));
-                                subscriptionNumber.setKind(subsObject.getString("kind"));
-                                subscriptionNumber.setStatus(subsObject.getInt("status"));
+                                subscriptionNumber.setId(subsObject.optInt("id"));
+                                subscriptionNumber.setTitle(subsObject.optString("title"));
+                                subscriptionNumber.setKind(subsObject.optString("kind"));
+                                subscriptionNumber.setStatus(subsObject.optInt("status"));
                                 subscriptionNumber.setType(key);
                                 subscriptionNumber.setMaster(currentMaster);
                                 subscriptionNumber.setUsername(currentUser);
                                 subscriptionNumber.setRemoved(0);
+                                subscriptionNumber.setImg(Base64.decode(subsObject.optString("img"),Base64.DEFAULT));
                                 mNetSubscriptionNumbers.add(subscriptionNumber);
                             }
                             if (mDbSubscriptionNumbers == null || mDbSubscriptionNumbers.size() == 0){
@@ -488,7 +498,7 @@ public class SubscriptionAllFragment extends BaseFragment {
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
-                    Crouton.makeText(getActivity(), msg.getData().getString("result"), Style.ALERT).show();
+                    Crouton.makeText(getActivity(), msg.getData().getString("result"), 0xffff4444, 1500).show();
                     if (mPullToRefreshListView.isRefreshing()){
                         mPullToRefreshListView.onRefreshComplete();
                     }

+ 30 - 17
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionMyFragment.java

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.fragment;
 import android.content.Intent;
 import android.os.Handler;
 import android.os.Message;
+import android.util.Base64;
 import android.util.Log;
 import android.view.View;
 import android.widget.AdapterView;
@@ -21,6 +22,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
+import com.xzjmyk.pm.activity.view.crouton.Style;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -77,8 +79,15 @@ public class SubscriptionMyFragment extends BaseFragment {
         mPullListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
-                mPersonalSubscriptionBeans.clear();
-                sendSubscriptionRequest();
+                if (CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())) {
+                    mPersonalSubscriptionBeans.clear();
+                    sendSubscriptionRequest();
+                } else {
+                    if (mPullListView.isRefreshing()) {
+                        mPullListView.onRefreshComplete(500);
+                    }
+                    Crouton.makeText(getActivity(), "网络未连接", Style.holoRedLight, 1500).show();
+                }
             }
 
             @Override
@@ -105,17 +114,20 @@ public class SubscriptionMyFragment extends BaseFragment {
 
     @Override
     protected void initDatas() {
-        List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
-        if (dbPersonalSubscriptionBeans == null
-                || dbPersonalSubscriptionBeans.size() == 0
-                || CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())){
+        if (CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())){
             sendSubscriptionRequest();
         }else {
-            mPersonalSubscriptionBeans.clear();
-            mPersonalSubscriptionBeans.addAll(dbPersonalSubscriptionBeans);
-            mMySubscriptionAdapter.notifyDataSetChanged();
-            if (mPersonalSubscriptionBeans.size() == 0){
-                mEmptyLayout.showEmpty();
+            List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
+            if (dbPersonalSubscriptionBeans != null){
+                mPersonalSubscriptionBeans.clear();
+                mPersonalSubscriptionBeans.addAll(dbPersonalSubscriptionBeans);
+                mMySubscriptionAdapter.notifyDataSetChanged();
+                if (mPersonalSubscriptionBeans.size() == 0){
+                    mEmptyLayout.showEmpty();
+                }
+            }else {
+                mEmptyLayout.setErrorMessage("网络未连接");
+                mEmptyLayout.showError();
             }
         }
     }
@@ -166,13 +178,14 @@ public class SubscriptionMyFragment extends BaseFragment {
                                 for (int i = 0; i < resultArray.length(); i++) {
                                     JSONObject currentObject = resultArray.getJSONObject(i);
                                     PersonalSubscriptionBean personalSubscriptionBean = new PersonalSubscriptionBean();
-                                    personalSubscriptionBean.setNUM_ID(currentObject.getInt("NUM_ID"));
-                                    personalSubscriptionBean.setTITLE(currentObject.getString("TITLE_"));
-                                    personalSubscriptionBean.setKIND(currentObject.getString("KIND_"));
-                                    personalSubscriptionBean.setTYPE(currentObject.getString("TYPE_"));
-                                    personalSubscriptionBean.setISAPPLED(currentObject.getInt("ISAPPLIED_"));
+                                    personalSubscriptionBean.setNUM_ID(currentObject.optInt("NUM_ID"));
+                                    personalSubscriptionBean.setTITLE(currentObject.optString("TITLE_"));
+                                    personalSubscriptionBean.setKIND(currentObject.optString("KIND_"));
+                                    personalSubscriptionBean.setTYPE(currentObject.optString("TYPE_"));
+                                    personalSubscriptionBean.setISAPPLED(currentObject.optInt("ISAPPLIED_"));
                                     personalSubscriptionBean.setMASTER(currentMaster);
                                     personalSubscriptionBean.setUSERNAME(currentUser);
+                                    personalSubscriptionBean.setIMG(Base64.decode(currentObject.optString("IMG_"),Base64.DEFAULT));
                                     mPersonalSubscriptionBeans.add(personalSubscriptionBean);
                                 }
                                 mMySubscriptionAdapter.notifyDataSetChanged();
@@ -193,7 +206,7 @@ public class SubscriptionMyFragment extends BaseFragment {
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
-                    Crouton.makeText(getActivity(), msg.getData().getString("result"), 0xff99cc00, 1500).show();
+                    Crouton.makeText(getActivity(), msg.getData().getString("result"), 0xffff4444, 1500).show();
                     if (mPullListView.isRefreshing()){
                         mPullListView.onRefreshComplete();
                     }

+ 12 - 22
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java

@@ -62,10 +62,14 @@ import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.xmpp.listener.ChatMessageListener;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
+import java.lang.ref.SoftReference;
 import java.net.URL;
 import java.net.URLConnection;
 import java.text.SimpleDateFormat;
@@ -204,10 +208,10 @@ public class CommonUtil {
                 .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)
                 .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片以如何的编码方式显示
                 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
-                //.decodingOptions(BitmapFactory.Options decodingOptions)//设置图片的解码配置
+                        //.decodingOptions(BitmapFactory.Options decodingOptions)//设置图片的解码配置
                 .delayBeforeLoading(0)//int delayInMillis为你设置的下载前的延迟时间
-                //设置图片加入缓存前,对bitmap进行设置
-                //.preProcessor(BitmapProcessor preProcessor)
+                        //设置图片加入缓存前,对bitmap进行设置
+                        //.preProcessor(BitmapProcessor preProcessor)
                 .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
                 .build();//构建完成
         return options;
@@ -357,14 +361,6 @@ public class CommonUtil {
         }
     }
 
-    public static void setSharedPreferences(Context ct, String key, float value) {
-        if (key != null) {
-            SharedPreferences sPreferences = ct.getSharedPreferences(AppShareName, Context.MODE_PRIVATE);
-            sPreferences.edit().putFloat(key, value);
-            sPreferences.edit().putFloat(key, value).apply();
-        }
-    }
-
     public static boolean setSharedPreferences(Context ct, String key, String value) {
         if (key != null) {
             SharedPreferences sPreferences = ct.getSharedPreferences(AppShareName, Context.MODE_PRIVATE);
@@ -450,14 +446,7 @@ public class CommonUtil {
         long value = sPreferences.getLong(key, 0);
         return value;
     }
-    public static double getSharedPreferencesfloat(Context ct, String key, float defValues) {
-        if (key == null) {
-            return 0;
-        }
-        SharedPreferences sPreferences = ct.getSharedPreferences(AppShareName, Context.MODE_PRIVATE);
-        double value = sPreferences.getFloat(key, defValues);
-        return value;
-    }
+
     public static int getSharedPreferencesInt(Context ct, String key, int defValues) {
         if (key == null) {
             return 0;
@@ -1144,15 +1133,16 @@ public class CommonUtil {
 
     /**
      * 去除集合中相同元素
+     *
      * @param datas
      * @return
      */
-    public static List<Object> getSingleElement(List<Object> datas){
+    public static List<Object> getSingleElement(List<Object> datas) {
         List<Object> resultList = new ArrayList<>();
         Iterator<Object> iterator = datas.iterator();
-        while (iterator.hasNext()){
+        while (iterator.hasNext()) {
             Object next = iterator.next();
-            if (!resultList.contains(next)){
+            if (!resultList.contains(next)) {
                 resultList.add(next);
             }
         }

+ 4 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java

@@ -94,7 +94,8 @@ public class Constants {
             + "subs_type varchar(50),"
             + "subs_master varchar(50),"
             + "subs_username varchar(50),"
-            + "subs_removed integer"
+            + "subs_removed integer,"
+            + "subs_img BLOB"
             +")";
 
     //已订阅号表
@@ -106,7 +107,8 @@ public class Constants {
             + "subs_type varchar(50),"
             + "subs_applied integer,"
             + "subs_master varchar(50),"
-            + "subs_username varchar(50)"
+            + "subs_username varchar(50),"
+            + "subs_img BLOB"
             + ")";
 
 

+ 40 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java

@@ -13,10 +13,13 @@ import android.media.ExifInterface;
 import android.util.Log;
 
 import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.lang.ref.SoftReference;
 
 /**
  * Created by Arisono on 2016/5/25.
@@ -341,4 +344,41 @@ public class ImageUtil {
             return null;
         }
     }
+
+
+
+    /**
+     * 字节数组转换成bitmap
+     * @param bytes
+     * @return
+     */
+    public static Bitmap decodeImg(byte[] bytes) {
+        Bitmap bitmap = null;
+
+        byte[] imgByte = null;
+        InputStream input = null;
+        try {
+            imgByte = bytes;
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inSampleSize = 8;
+            input = new ByteArrayInputStream(imgByte);
+            SoftReference softRef = new SoftReference(BitmapFactory.decodeStream(input, null, options));
+            bitmap = (Bitmap) softRef.get();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (imgByte != null) {
+                imgByte = null;
+            }
+
+            if (input != null) {
+                try {
+                    input.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return bitmap;
+    }
 }

+ 3 - 4
WeiChat/src/main/res/layout/activity_manage_all_subs.xml

@@ -4,9 +4,8 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
 
-    <TextView
+    <ListView
+        android:id="@+id/manage_all_subs_lv"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:gravity="center"
-        android:text="未订阅整理页面"/>
+        android:layout_height="match_parent"/>
 </LinearLayout>

+ 0 - 1
WeiChat/src/main/res/layout/layout_all_subscription_list.xml

@@ -10,7 +10,6 @@
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:scaleType="fitXY"
-        android:src="@drawable/ic_subscription_number"
         />
     <LinearLayout
         android:layout_width="match_parent"

+ 31 - 0
WeiChat/src/main/res/layout/layout_list_manage_all_subs.xml

@@ -0,0 +1,31 @@
+<?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="45dp"
+    android:orientation="vertical"
+    android:padding="5dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:orientation="horizontal">
+        <ImageView
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:src="@drawable/ic_subscription_number"/>
+        <TextView
+            android:id="@+id/manage_all_subs_list_type_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:text="销售管理"
+            android:layout_marginLeft="10dp"
+            android:textSize="16sp"/>
+    </LinearLayout>
+    <com.xzjmyk.pm.activity.view.MyListView
+        android:id="@+id/manage_all_subs_list_mlv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"/>
+</LinearLayout>

+ 28 - 0
WeiChat/src/main/res/layout/layout_list_manage_all_subs_item.xml

@@ -0,0 +1,28 @@
+<?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:padding="3dp">
+
+    <TextView
+        android:id="@+id/manage_all_subs_list_item_name_tv"
+        android:layout_width="200dp"
+        android:layout_height="30dp"
+        android:layout_centerInParent="true"
+        android:paddingLeft="5dp"
+        android:gravity="center_vertical"
+        android:textColor="@color/white"
+        android:text="毛利润分析"
+        android:singleLine="true"
+        android:background="@drawable/shape_subscribe_bg"/>
+
+    <TextView
+        android:id="@+id/manage_all_subs_list_item_add_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_toRightOf="@id/manage_all_subs_list_item_name_tv"
+        android:layout_marginLeft="10dp"
+        android:text="+添加"
+        android:layout_centerVertical="true"
+        android:textColor="@color/blue"/>
+</RelativeLayout>

+ 0 - 1
WeiChat/src/main/res/layout/layout_my_subscribe_list.xml

@@ -10,7 +10,6 @@
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:scaleType="fitXY"
-        android:src="@drawable/ic_subscription_number"
         />
 
     <TextView