Browse Source

订阅功能完善

RaoMeng 9 years ago
parent
commit
db447c273f

+ 1 - 1
WeiChat/build.gradle

@@ -4,7 +4,7 @@ apply plugin: 'com.getkeepsafe.dexcount'
 android {
     signingConfigs {
         config {
-            storeFile file('D:/config/applicationsignname[20150409]')
+            storeFile file('E:/CompanyProject/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

+ 19 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/AllSubscriptionNumbersAdapter.java

@@ -16,6 +16,7 @@ import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
 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.view.crouton.Crouton;
 
 import java.util.HashMap;
@@ -30,10 +31,14 @@ public class AllSubscriptionNumbersAdapter extends BaseAdapter {
     private Context mContext;
     private List<SubscriptionNumber> mSubscriptionNumbers;
     private int clickPosition;
+    private int status;
+    protected CustomProgressDialog progressDialog;
 
     public AllSubscriptionNumbersAdapter(Context mContext, List<SubscriptionNumber> mSubscriptionNumbers) {
         this.mContext = mContext;
         this.mSubscriptionNumbers = mSubscriptionNumbers;
+
+        progressDialog = CustomProgressDialog.createDialog(mContext);
     }
 
     @Override
@@ -66,19 +71,24 @@ public class AllSubscriptionNumbersAdapter extends BaseAdapter {
             viewHolder = (ViewHolder) convertView.getTag();
         }
 
-        boolean sub = mSubscriptionNumbers.get(position).isSub();
         viewHolder.nameTextView.setText(mSubscriptionNumbers.get(position).getTitle());
+        status = mSubscriptionNumbers.get(position).getStatus();
 
-        if (sub){
+        if (status == 1){
             viewHolder.nameTextView.setTextColor(mContext.getResources().getColor(R.color.gray));
             viewHolder.nameTextView.setBackground(mContext.getResources().getDrawable(R.drawable.shape_subscribe_selet_bg));
             viewHolder.applyTextView.setText("已订阅");
             viewHolder.applyTextView.setEnabled(false);
-        }else {
+        }else if (status == 3){
             viewHolder.nameTextView.setTextColor(mContext.getResources().getColor(R.color.white));
             viewHolder.nameTextView.setBackground(mContext.getResources().getDrawable(R.drawable.shape_subscribe_bg));
             viewHolder.applyTextView.setText("申请");
             viewHolder.applyTextView.setEnabled(true);
+        }else if (status == 2){
+            viewHolder.nameTextView.setTextColor(mContext.getResources().getColor(R.color.gray));
+            viewHolder.nameTextView.setBackground(mContext.getResources().getDrawable(R.drawable.shape_subscribe_selet_bg));
+            viewHolder.applyTextView.setText("已申请");
+            viewHolder.applyTextView.setEnabled(false);
         }
 
         viewHolder.applyTextView.setOnClickListener(new View.OnClickListener() {
@@ -87,6 +97,7 @@ public class AllSubscriptionNumbersAdapter extends BaseAdapter {
 //                Intent intent = new Intent();
 //                intent.setClass(mContext, ApplySubscribeActivity.class);
 //                mContext.startActivity(intent);
+
                 clickPosition = position;
                 sendApplySubs(clickPosition);
             }
@@ -99,6 +110,7 @@ public class AllSubscriptionNumbersAdapter 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());
@@ -121,12 +133,14 @@ public class AllSubscriptionNumbersAdapter extends BaseAdapter {
         public void handleMessage(Message msg) {
             switch (msg.what){
                 case APPLY_SUBSCRIPTION:
+                    progressDialog.dismiss();
                     Log.d("applysubscription", msg.getData().getString("result"));
-                    Crouton.makeText(mContext, "添加订阅成功");
-                    mSubscriptionNumbers.get(clickPosition).setSub(true);
+                    CommonUtil.imageToast(mContext,R.drawable.ic_apply_submit_success,"",2000);
+                    mSubscriptionNumbers.get(clickPosition).setStatus(2);
                     notifyDataSetChanged();
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    progressDialog.dismiss();
                     Crouton.makeText(mContext,msg.getData().getString("result"));
                     break;
             }

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

@@ -76,8 +76,10 @@ public class MySubscriptionAdapter extends BaseAdapter {
         int itemViewType = getItemViewType(i);
         if (itemViewType == 0){
             viewHolder.lockIv.setVisibility(View.VISIBLE);
+            viewHolder.contentTv.setText("该订阅号不可取消订阅");
         }else if (itemViewType == -1){
             viewHolder.lockIv.setVisibility(View.GONE);
+            viewHolder.contentTv.setText("该订阅号可以取消订阅");
         }
         viewHolder.subscribeIv.setImageResource(mImageIds.get(i % 5));
         if ("private".equals(mPersonalSubscriptionBeans.get(i).getKIND())){
@@ -85,7 +87,6 @@ public class MySubscriptionAdapter extends BaseAdapter {
         }else {
             viewHolder.titleTv.setText(mPersonalSubscriptionBeans.get(i).getTITLE()+"(公)");
         }
-        viewHolder.contentTv.setText("该订阅号属于"+mPersonalSubscriptionBeans.get(i).getTYPE()+"类订阅号");
         return view;
     }
 

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

@@ -8,14 +8,14 @@ public class SubscriptionNumber {
     private int id;
     private String title;
     private String kind;
-    private boolean sub;
+    private int status;
 
-    public boolean isSub() {
-        return sub;
+    public int getStatus() {
+        return status;
     }
 
-    public void setSub(boolean sub) {
-        this.sub = sub;
+    public void setStatus(int status) {
+        this.status = status;
     }
 
     public int getId() {

+ 5 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/BaseFragment.java

@@ -7,11 +7,14 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
+
 /**
  * Created by PROD on 2016/8/19.
  */
 public abstract class BaseFragment extends Fragment {
     protected View root;
+    protected CustomProgressDialog progressDialog;
 
     public static <T extends BaseFragment> T newInstance(Class<T> tClass){
         if (tClass != null){
@@ -37,6 +40,8 @@ public abstract class BaseFragment extends Fragment {
     @Override
     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
+        progressDialog = CustomProgressDialog.createDialog(getActivity());
+
         initViews();
         initEvents();
         initDatas();

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

@@ -14,6 +14,7 @@ import com.xzjmyk.pm.activity.bean.message.AllSubscriptonKindMessage;
 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.EmptyLayout;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.crouton.Style;
 
@@ -35,6 +36,7 @@ public class SubscriptionAllFragment extends BaseFragment {
     private PullToRefreshListView mPullToRefreshListView;
     private AllSubscriptionAdapter mAllSubscriptionAdapter;
     private List<AllSubscriptonKindMessage> mAllSubscriptonKindMessages;
+    private EmptyLayout mEmptyLayout;
     @Override
     protected int getLayout() {
         return R.layout.fragment_all_subscription;
@@ -46,6 +48,11 @@ public class SubscriptionAllFragment extends BaseFragment {
         mAllSubscriptonKindMessages = new ArrayList<>();
         mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(),mAllSubscriptonKindMessages);
 
+        mEmptyLayout = new EmptyLayout(getActivity(),mPullToRefreshListView.getRefreshableView());
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("没有任何可订阅号");
     }
 
     @Override
@@ -82,6 +89,7 @@ public class SubscriptionAllFragment extends BaseFragment {
      * 获取全部订阅
      */
     private void sendAllSubscriptionRequest() {
+        progressDialog.show();
         String allSubsUrl = Constants.getAppBaseUrl(getActivity()) + "common/charts/getApplySubs.action";
         Map<String, Object> params = new HashMap<>();
         params.put("em_code", CommonUtil.getSharedPreferences(getActivity(),"erp_username"));
@@ -97,6 +105,7 @@ public class SubscriptionAllFragment extends BaseFragment {
         public void handleMessage(Message msg) {
             switch (msg.what){
                 case GET_ALL_SUBSCRIPTION:
+                    progressDialog.dismiss();
                     String resultJson = msg.getData().getString("result");
                     Log.d("allsubscriptionResult: ", resultJson);
                     try {
@@ -104,6 +113,14 @@ public class SubscriptionAllFragment extends BaseFragment {
                         JSONArray datasArray = resultObject.getJSONArray("datas");
                         JSONObject datasObject = datasArray.getJSONObject(0);
                         Iterator<String> iterator = datasObject.keys();
+                        if (!iterator.hasNext()){
+                            mEmptyLayout.showEmpty();
+                            if (mPullToRefreshListView.isRefreshing()){
+                                mPullToRefreshListView.onRefreshComplete();
+                                Crouton.makeText(getActivity(),"没有订阅数据", 0xff99cc00,1500).show();
+                            }
+                            return;
+                        }
                         while (iterator.hasNext()){
                             String key = iterator.next().toString();
                             Log.d("allsubskeys: ",key);
@@ -118,28 +135,28 @@ public class SubscriptionAllFragment extends BaseFragment {
                                 subscriptionNumber.setId(subsObject.getInt("id"));
                                 subscriptionNumber.setTitle(subsObject.getString("title"));
                                 subscriptionNumber.setKind(subsObject.getString("kind"));
+                                subscriptionNumber.setStatus(subsObject.getInt("status"));
                                 subscriptionNumbers.add(subscriptionNumber);
                             }
                             subscriptonKindMessage.setSubscriptionNumbers(subscriptionNumbers);
                             mAllSubscriptonKindMessages.add(subscriptonKindMessage);
                             mAllSubscriptionAdapter.notifyDataSetChanged();
-                            if (mPullToRefreshListView.isRefreshing()){
-                                mPullToRefreshListView.onRefreshComplete();
-                                Crouton.makeText(getActivity(),"刷新成功", 0xff99cc00,1500).show();
-                            }
+
                         }
                     } catch (JSONException e) {
                         e.printStackTrace();
                     }
+                    if (mPullToRefreshListView.isRefreshing()){
+                        mPullToRefreshListView.onRefreshComplete();
+                        Crouton.makeText(getActivity(),"刷新成功", 0xff99cc00,1500).show();
+                    }
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    progressDialog.dismiss();
                     Crouton.makeText(getActivity(),msg.getData().getString("result"), Style.ALERT).show();
                     break;
             }
         }
     };
 
-    public interface OnRefreshAllSubsListener{
-        public void onRefreshAllSubs();
-    }
 }

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

@@ -22,9 +22,9 @@ import com.xzjmyk.pm.activity.bean.PersonalSubscriptionBean;
 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.EmptyLayout;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
-import com.xzjmyk.pm.activity.view.crouton.Style;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -53,6 +53,7 @@ public class SubscriptionMyFragment extends BaseFragment {
     private final static int REMOVE_MY_SUBSCRIPTION = 13;
 
     private int mCanclePosition;
+    private EmptyLayout mEmptyLayout;
     @Override
     protected int getLayout() {
         return R.layout.fragment_my_subscription;
@@ -66,6 +67,12 @@ public class SubscriptionMyFragment extends BaseFragment {
         mMySubscriptionAdapter = new MySubscriptionAdapter(getActivity(),mPersonalSubscriptionBeans);
         mMySwipeMenuCreator = new MySwipeMenuCreator(getActivity());
 
+
+        mEmptyLayout = new EmptyLayout(getActivity(),mSwipeMenuListView);
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("您没有任何订阅号");
     }
 
     @Override
@@ -153,6 +160,7 @@ public class SubscriptionMyFragment extends BaseFragment {
      * 获取当前用户的订阅号
      */
     private void sendSubscriptionRequest() {
+        progressDialog.show();
         String subsUrl = Constants.getAppBaseUrl(getActivity()) + "common/charts/getPersonalSubs.action";
         Map<String, Object> params = new HashMap<>();
         params.put("em_code", CommonUtil.getSharedPreferences(getActivity(),"erp_username"));
@@ -166,6 +174,7 @@ public class SubscriptionMyFragment extends BaseFragment {
      * 取消订阅
      */
     private void sendRemoveRequest(int position) {
+        progressDialog.show();
         String subsUrl = Constants.getAppBaseUrl(getActivity()) + "common/charts/removeSubsMans.action";
         Map<String, Object> params = new HashMap<>();
         params.put("em_code", CommonUtil.getSharedPreferences(getActivity(),"erp_username"));
@@ -183,26 +192,40 @@ public class SubscriptionMyFragment extends BaseFragment {
         public void handleMessage(Message msg) {
             switch (msg.what){
                 case GET_MY_SUBSCRIPTION:
+                    progressDialog.dismiss();
                     String resultJson = msg.getData().getString("result");
                     Log.d("subscriptionResult",resultJson);
                     try {
                         JSONObject resultObject = new JSONObject(resultJson);
                         JSONArray resultArray = resultObject.getJSONArray("datas");
-                        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_"));
-
-                            mPersonalSubscriptionBeans.add(personalSubscriptionBean);
+                        if (resultArray != null){
+                            if (resultArray.length() == 0){
+                                mEmptyLayout.showEmpty();
+                                if (mPullToRefreshScrollView.isRefreshing()){
+                                    mPullToRefreshScrollView.onRefreshComplete();
+                                    Crouton.makeText(getActivity(),"您没有任何订阅号", 0xff99cc00, 1500).show();
+                                }
+                            }else {
+                                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_"));
+
+                                    mPersonalSubscriptionBeans.add(personalSubscriptionBean);
+                                }
+                                mMySubscriptionAdapter.notifyDataSetChanged();
+                                if (mPullToRefreshScrollView.isRefreshing()){
+                                    mPullToRefreshScrollView.onRefreshComplete();
+                                    Crouton.makeText(getActivity(),"刷新成功", 0xff99cc00, 1500).show();
+                                }
+                            }
                         }
-                        mMySubscriptionAdapter.notifyDataSetChanged();
                         if (mPullToRefreshScrollView.isRefreshing()){
                             mPullToRefreshScrollView.onRefreshComplete();
-                            Crouton.makeText(getActivity(),"刷新成功", Style.CONFIRM).show();
                         }
                     } catch (JSONException e) {
                         e.printStackTrace();
@@ -211,13 +234,15 @@ public class SubscriptionMyFragment extends BaseFragment {
                     break;
 
                 case REMOVE_MY_SUBSCRIPTION:
+                    progressDialog.dismiss();
                     Crouton.makeText(getActivity(), "取消订阅成功", 0xff99cc00, 1500).show();
                     mPersonalSubscriptionBeans.remove(mCanclePosition);
                     mMySubscriptionAdapter.notifyDataSetChanged();
                     break;
 
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
-                    Crouton.makeText(getActivity(), msg.getData().getString("result"), Style.CONFIRM).show();
+                    progressDialog.dismiss();
+                    Crouton.makeText(getActivity(), msg.getData().getString("result"), 0xff99cc00, 1500).show();
                     if (mPullToRefreshScrollView.isRefreshing()){
                         mPullToRefreshScrollView.onRefreshComplete();
                     }

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

@@ -699,6 +699,34 @@ public class CommonUtil {
     }
 
 
+    /**
+     * @desc:修改textView样式(添加下划线)
+     * @author:Arison on 2016/8/3
+     */
+    public static void textUnderlineForStyle(
+            TextView view,
+            String input,
+            String match,
+            int color) {
+        SpannableStringBuilder style = new SpannableStringBuilder(input);
+        Pattern highlight = Pattern.compile(match);
+        Matcher m = highlight.matcher(style.toString());
+        while (m.find()) {
+            style.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), m.start(), m.end(),
+                    Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+            style.setSpan(new ForegroundColorSpan(color), m.start(), m.end(),
+                    Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+//            style.setSpan(new StrikethroughSpan(), m.start(), m.end(),
+//                    Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+//            style.setSpan(new UnderlineSpan(), m.start(), m.end(),
+//                    Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+        }
+        view.setText(style);
+    }
+
+
+
+
     private static long mLastClickTime;
     private static final long SPACE_TIME = 1000;//重复点击间隔时间
 

+ 9 - 7
WeiChat/src/main/res/layout/layout_my_subscribe_list.xml

@@ -1,14 +1,14 @@
 <?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="80dp"
+    android:layout_height="70dp"
     android:padding="10dp"
     android:gravity="center_vertical">
 
     <ImageView
         android:id="@+id/my_subscribe_iv"
-        android:layout_width="60dp"
-        android:layout_height="60dp"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
         android:scaleType="fitXY"
         />
 
@@ -18,7 +18,8 @@
         android:layout_height="wrap_content"
         android:layout_toRightOf="@id/my_subscribe_iv"
         android:layout_marginLeft="10dp"
-        android:textSize="18sp"/>
+        android:textSize="16sp"
+        android:text="xxxxxxx"/>
 
     <TextView
         android:id="@+id/my_subscribe_content_tv"
@@ -28,12 +29,13 @@
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="10dp"
         android:layout_marginBottom="5dp"
-        android:textSize="14sp"/>
+        android:textSize="14sp"
+        android:text="yyyyyy"/>
 
     <ImageView
         android:id="@+id/my_subscribe_lock_iv"
-        android:layout_width="25dp"
-        android:layout_height="25dp"
+        android:layout_width="18dp"
+        android:layout_height="18dp"
         android:layout_alignParentRight="true"
         android:src="@drawable/ic_lock"
         android:layout_marginRight="10dp"

+ 1 - 1
library-swipemenu_lv/src/main/java/com/baoyz/swipemenulistview/MySwipeMenuListView.java

@@ -8,7 +8,7 @@ import android.view.MotionEvent;
 import android.view.View;
 
 /**
- * Created by PROD on 2016/9/7.
+ * Created by RaoMeng on 2016/9/7.
  */
 public class MySwipeMenuListView extends SwipeMenuListView {
     private GestureDetector mGestureDetector;