Переглянути джерело

Merge branch 'draft' of https://gitlab.com/Arisono/SkWeiChat-Baidu into csdn

Arison 9 роки тому
батько
коміт
3a68c02c07
26 змінених файлів з 301 додано та 121 видалено
  1. 16 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/BaseFragment.java
  2. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  3. 32 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/base/ActionBackActivity.java
  4. 14 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/base/EasyFragment.java
  5. 2 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonFragmentActivity.java
  6. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ManageAllSubscriptionActivity.java
  7. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubcribeManageActivity.java
  8. 45 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeDetailActivity.java
  9. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java
  10. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java
  11. 17 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/BaseFragment.java
  12. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  13. 12 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java
  14. 35 25
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionMyFragment.java
  15. 20 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java
  16. 8 0
      WeiChat/src/main/res/anim/anim_activity_back_in.xml
  17. 8 0
      WeiChat/src/main/res/anim/anim_activity_back_out.xml
  18. 8 0
      WeiChat/src/main/res/anim/anim_activity_in.xml
  19. 12 0
      WeiChat/src/main/res/anim/anim_activity_out.xml
  20. 4 0
      WeiChat/src/main/res/anim/anim_to_main_in.xml
  21. 14 0
      WeiChat/src/main/res/anim/anim_to_main_out.xml
  22. 8 64
      WeiChat/src/main/res/layout/activity_subscribe_detail.xml
  23. 1 0
      WeiChat/src/main/res/layout/layout_all_subscription_list.xml
  24. 1 0
      WeiChat/src/main/res/layout/layout_my_subscribe_list.xml
  25. 17 0
      WeiChat/src/main/res/values-v14/styles.xml
  26. 14 0
      WeiChat/src/main/res/values/styles.xml

+ 16 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/BaseFragment.java

@@ -1,6 +1,7 @@
 package com.xzjmyk.pm.activity.ui;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.util.Log;
@@ -8,6 +9,8 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.xzjmyk.pm.activity.R;
+
 public class BaseFragment extends Fragment {
 
 	public String TAG() {
@@ -79,4 +82,17 @@ public class BaseFragment extends Fragment {
 		super.onDetach();
 		Log.d("roamer", TAG() + " onDetach");
 	}
+
+
+	@Override
+	public void startActivity(Intent intent) {
+		super.startActivity(intent);
+		getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+	}
+
+	@Override
+	public void startActivityForResult(Intent intent, int requestCode) {
+		super.startActivityForResult(intent, requestCode);
+		getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+	}
 }

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -744,5 +744,4 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         return (BusinessCircleFragment) sfmanager.findFragmentByTag(TAG_BusinessCircle);
     }
 
-
 }

+ 32 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/base/ActionBackActivity.java

@@ -1,6 +1,7 @@
 package com.xzjmyk.pm.activity.ui.base;
 
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.os.Build;
 import android.os.Bundle;
@@ -12,6 +13,7 @@ import android.view.VelocityTracker;
 
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
 
 public class ActionBackActivity extends StackActivity {
 
@@ -136,6 +138,7 @@ public class ActionBackActivity extends StackActivity {
 
     protected boolean onHomeAsUp() {
         finish();
+        overridePendingTransition(R.anim.anim_activity_back_in, R.anim.anim_activity_back_out);
         return true;
     }
 
@@ -160,4 +163,33 @@ public class ActionBackActivity extends StackActivity {
     protected void setNotTouchEvent(boolean b) {
         this.b = b;
     }
+
+
+    @Override
+    public void startActivity(Intent intent) {
+        if (intent.getAction() != null){
+            if (!intent.getAction().equals(Intent.ACTION_MAIN)){
+                super.startActivity(intent);
+                overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+            }else {
+                super.startActivity(intent);
+                overridePendingTransition(R.anim.anim_to_main_in, R.anim.anim_to_main_out);
+            }
+        }else {
+            super.startActivity(intent);
+            overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+        }
+    }
+
+    @Override
+    public void startActivityForResult(Intent intent, int requestCode) {
+        super.startActivityForResult(intent, requestCode);
+        overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+    }
+
+    @Override
+    public void onBackPressed() {
+        super.onBackPressed();
+        overridePendingTransition(R.anim.anim_activity_back_in,R.anim.anim_activity_back_out);
+    }
 }

+ 14 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/base/EasyFragment.java

@@ -1,6 +1,7 @@
 package com.xzjmyk.pm.activity.ui.base;
 
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.util.Log;
@@ -9,6 +10,7 @@ import android.view.View;
 import android.view.ViewGroup;
 
 import com.lidroid.xutils.ViewUtils;
+import com.xzjmyk.pm.activity.R;
 
 /**
  * @author Dean Tao
@@ -146,4 +148,16 @@ public abstract class EasyFragment extends Fragment {
         Log.d("roamer", TAG() + " onDetach");
     }
 
+
+    @Override
+    public void startActivity(Intent intent) {
+        super.startActivity(intent);
+        getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+    }
+
+    @Override
+    public void startActivityForResult(Intent intent, int requestCode) {
+        super.startActivityForResult(intent, requestCode);
+        getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+    }
 }

+ 2 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonFragmentActivity.java

@@ -1,15 +1,12 @@
 package com.xzjmyk.pm.activity.ui.erp.activity;
 
-import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.FragmentTransaction;
-import android.view.KeyEvent;
 import android.widget.FrameLayout;
 
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.groupchat.AutoCreateChatFragment;
@@ -60,12 +57,12 @@ public class CommonFragmentActivity extends BaseActivity {
         return imStatus;
     }
 
-    @Override
+  /*  @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK) { //监控/拦截/屏蔽返回键
             startActivity(new Intent(CommonFragmentActivity.this, MainActivity.class));
             return false;
         }
         return super.onKeyDown(keyCode, event);
-    }
+    }*/
 }

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

@@ -37,7 +37,7 @@ public class ManageAllSubscriptionActivity extends BaseActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        getSupportActionBar().setTitle("未订阅管理");
+        getSupportActionBar().setTitle("未订阅设置");
         setContentView(R.layout.activity_manage_all_subs);
 
         initViews();

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

@@ -66,7 +66,7 @@ public class SubcribeManageActivity extends BaseActivity{
     public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.menu_apply_subscribe,menu);
         MenuItem item = menu.getItem(0);
-        item.setTitle("整理");
+        item.setTitle("设置");
         return super.onCreateOptionsMenu(menu);
     }
 

+ 45 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeDetailActivity.java

@@ -2,23 +2,24 @@ package com.xzjmyk.pm.activity.ui.erp.activity;
 
 import android.annotation.TargetApi;
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.text.TextUtils;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.webkit.WebChromeClient;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
 import android.widget.Button;
-import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.PopupWindow;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import com.umeng.socialize.ShareAction;
@@ -37,11 +38,10 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 /**
+ * 订阅号详情页
  * Created by RaoMeng on 2016/10/11.
  */
 public class SubscribeDetailActivity extends BaseActivity {
-    private ImageView mHeadImageView;
-    private TextView mNameTextView, mTitleTextView, mContentTextView;
     private Button mApplyButton;
     private int mSubId = -1;
     private String mSubName;
@@ -55,6 +55,7 @@ public class SubscribeDetailActivity extends BaseActivity {
 
     private WebView mWebView;
     private String subscribeUrl;
+    private ProgressBar mProgressBar;
 
     private Handler mHandler = new Handler() {
         @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@@ -231,9 +232,6 @@ public class SubscribeDetailActivity extends BaseActivity {
     }
 
     private void initDatas() {
-        if (!TextUtils.isEmpty(mSubName)) {
-            mNameTextView.setText(mSubName);
-        }
         if (mSubStatus != -1) {
             if (mSubStatus == 1) {
                 mApplyButton.setText("已订阅");
@@ -263,14 +261,11 @@ public class SubscribeDetailActivity extends BaseActivity {
     }
 
     private void initViews() {
-        mHeadImageView = (ImageView) findViewById(R.id.subscribe_detail_iv);
-        mNameTextView = (TextView) findViewById(R.id.subscribe_detail_name_tv);
-        mTitleTextView = (TextView) findViewById(R.id.subscribe_detail_title_tv);
-        mContentTextView = (TextView) findViewById(R.id.subscribe_detail_content_tv);
+        mProgressBar = (ProgressBar) findViewById(R.id.subscribe_detail_pb);
         mApplyButton = (Button) findViewById(R.id.subscribe_detail_apply_btn);
         mWebView = (WebView) findViewById(R.id.subscribe_detail_wv);
 
-        WebSettings webSettings = mWebView.getSettings();
+        final WebSettings webSettings = mWebView.getSettings();
         //允许加载JavaScript
         webSettings.setJavaScriptEnabled(true);
         //网页自适应屏幕
@@ -278,7 +273,44 @@ public class SubscribeDetailActivity extends BaseActivity {
         webSettings.setLoadWithOverviewMode(true);
 
         webSettings.setDomStorageEnabled(true);
-        mWebView.setWebViewClient(new WebViewClient());
+//        webSettings.setSupportZoom(true);
+//        webSettings.setBuiltInZoomControls(true);
+        webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
+        webSettings.setBlockNetworkImage(true);
+        if (Build.VERSION.SDK_INT >= 19) {//硬件加速器的使用
+            mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
+        } else {
+            mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
+        }
+
+        mWebView.setWebViewClient(new WebViewClient() {
+            @Override
+            public void onPageStarted(WebView view, String url, Bitmap favicon) {
+                if (mProgressBar.getVisibility() == View.GONE) {
+                    mProgressBar.setVisibility(View.VISIBLE);
+                }
+            }
+
+            @Override
+            public void onPageFinished(WebView view, String url) {
+                webSettings.setBlockNetworkImage(false);
+                if (mProgressBar.getVisibility() == View.VISIBLE){
+                    mProgressBar.setVisibility(View.GONE);
+                }
+            }
+
+        });
+
+        mWebView.setWebChromeClient(new WebChromeClient() {
+            @Override
+            public void onProgressChanged(WebView view, int newProgress) {
+                if (mProgressBar.getVisibility() == View.GONE) {
+                    mProgressBar.setVisibility(View.VISIBLE);
+                }
+                mProgressBar.setProgress(newProgress);
+            }
+        });
+
         subscribeUrl = Constants.getAppBaseUrl(this) + "common/charts/mobilePreview.action?id="
                 +mSubId+"&sessionId="+CommonUtil.getSharedPreferences(ct, "sessionId")
                 +"&master="+CommonUtil.getSharedPreferences(ct,"erp_master");

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java

@@ -315,7 +315,7 @@ public class OutSigninOKActivity extends BaseActivity {
                     }
 
                     waterBitmapToFile = ImageUtil.compressWaterBitmapToFile(path, 100, 300, 300
-                            , MyApplication.getInstance().mLoginUser.getNickName()
+                            , CommonUtil.getSharedPreferences(getApplicationContext(),"erp_emname")
                             , netDate, addr_tv.getText().toString().trim(), 0);
 
                     ImageLoader.getInstance().displayImage(Uri.fromFile(waterBitmapToFile).toString(), image);

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

@@ -23,6 +23,15 @@ import java.util.Map;
  */
 public class DBManager {
     private DBOpenHelper helper;
+
+    public SQLiteDatabase getDb() {
+        return db;
+    }
+
+    public void setDb(SQLiteDatabase db) {
+        this.db = db;
+    }
+
     private SQLiteDatabase db;
 
     public DBManager(Context ct) {

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

@@ -1,5 +1,6 @@
 package com.xzjmyk.pm.activity.ui.erp.fragment;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
@@ -7,6 +8,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
 
 /**
@@ -17,6 +19,7 @@ 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){
             try {
@@ -55,4 +58,18 @@ public abstract class BaseFragment extends Fragment {
     protected abstract void initEvents();
 
     protected abstract void initDatas();
+
+
+    @Override
+    public void startActivity(Intent intent) {
+        super.startActivity(intent);
+        getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+    }
+
+    @Override
+    public void startActivityForResult(Intent intent, int requestCode) {
+        super.startActivityForResult(intent, requestCode);
+        getActivity().overridePendingTransition(R.anim.anim_activity_in, R.anim.anim_activity_out);
+    }
+
 }

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

@@ -267,6 +267,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                 break;
             case R.id.back:
                 ct.finish();
+                getActivity().overridePendingTransition(R.anim.anim_activity_back_in, R.anim.anim_activity_back_out);
                 break;
             case R.id.signin_btn:
                 if (isPlay()) {

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

@@ -332,7 +332,7 @@ public class SubscriptionAllFragment extends BaseFragment {
                 keyStrings.add(cacheKeysArray[i]);
             }
         }
-        rbPos = 0;
+//        rbPos = 0;
         List<SubscriptionNumber> dbSubscriptionNumbers
                 = mDbManager.queryFromAllSubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
         if (dbSubscriptionNumbers == null || dbSubscriptionNumbers.size() == 0) {
@@ -397,7 +397,9 @@ public class SubscriptionAllFragment extends BaseFragment {
             switch (msg.what) {
                 case GET_ALL_SUBSCRIPTION:
                     progressDialog.dismiss();
-                    mDbManager.deleteMasterAllSubs(currentMaster, currentUser);
+                    if (mDbManager.getDb().isOpen()){
+                        mDbManager.deleteMasterAllSubs(currentMaster, currentUser);
+                    }
                     String resultJson = msg.getData().getString("result");
                     Log.d("allsubscriptionResult: ", resultJson);
                     try {
@@ -439,7 +441,11 @@ public class SubscriptionAllFragment extends BaseFragment {
                                 subscriptionNumber.setMaster(currentMaster);
                                 subscriptionNumber.setUsername(currentUser);
                                 subscriptionNumber.setRemoved(0);
-                                subscriptionNumber.setImg(Base64.decode(subsObject.optString("img"),Base64.DEFAULT));
+                                if ("null".equals(subsObject.optString("img")) || "".equals(subsObject.optString("img"))){
+                                    subscriptionNumber.setImg(new byte[0]);
+                                }else {
+                                    subscriptionNumber.setImg(Base64.decode(subsObject.optString("img"),Base64.DEFAULT));
+                                }
                                 mNetSubscriptionNumbers.add(subscriptionNumber);
                             }
                             if (mDbSubscriptionNumbers == null || mDbSubscriptionNumbers.size() == 0){
@@ -454,7 +460,9 @@ public class SubscriptionAllFragment extends BaseFragment {
                                         }
                                     }
                                 }
-                                mDbManager.saveListToAllSubs(mNetSubscriptionNumbers);
+                                if (mDbManager.getDb().isOpen()){
+                                    mDbManager.saveListToAllSubs(mNetSubscriptionNumbers);
+                                }
                             }
 
                             //遍历更新removed属性的列表,筛选出stautus不等于1且removed不等于1的数据

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

@@ -50,6 +50,7 @@ public class SubscriptionMyFragment extends BaseFragment {
     private DBManager mDbManager;
     private String currentMaster;
     private String currentUser;
+
     @Override
     protected int getLayout() {
         return R.layout.fragment_my_subscription;
@@ -62,7 +63,7 @@ public class SubscriptionMyFragment extends BaseFragment {
         currentUser = CommonUtil.getSharedPreferences(getActivity(), "erp_username");
         mPersonalSubscriptionBeans = new ArrayList<>();
         mPullListView = (PullToRefreshListView) root.findViewById(R.id.my_subscripton_smlv);
-        mMySubscriptionAdapter = new MySubscriptionAdapter(getActivity(),mPersonalSubscriptionBeans);
+        mMySubscriptionAdapter = new MySubscriptionAdapter(getActivity(), mPersonalSubscriptionBeans);
         mEmptyLayout = new EmptyLayout(getActivity(), mPullListView.getRefreshableView());
         mEmptyLayout.setShowLoadingButton(false);
         mEmptyLayout.setShowEmptyButton(false);
@@ -114,18 +115,18 @@ public class SubscriptionMyFragment extends BaseFragment {
 
     @Override
     protected void initDatas() {
-        if (CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())){
+        if (CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())) {
             sendSubscriptionRequest();
-        }else {
-            List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
-            if (dbPersonalSubscriptionBeans != null){
+        } else {
+            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){
+                if (mPersonalSubscriptionBeans.size() == 0) {
                     mEmptyLayout.showEmpty();
                 }
-            }else {
+            } else {
                 mEmptyLayout.setErrorMessage("网络未连接");
                 mEmptyLayout.showError();
             }
@@ -139,42 +140,44 @@ public class SubscriptionMyFragment extends BaseFragment {
         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"));
+        params.put("em_code", CommonUtil.getSharedPreferences(getActivity(), "erp_username"));
 
         LinkedHashMap headers = new LinkedHashMap();
-        headers.put("Cookie","JSESSIONID=" + CommonUtil.getSharedPreferences(getActivity(),"sessionId"));
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(getActivity(), "sessionId"));
         ViewUtil.httpSendRequest(getActivity(), subsUrl, params, mHandler, headers, GET_MY_SUBSCRIPTION, null, null, "post");
     }
 
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode == SUBSCRIBE_MY_DETAIL_REQUEST && resultCode == 44){
+        if (requestCode == SUBSCRIBE_MY_DETAIL_REQUEST && resultCode == 44) {
             mDbManager.deleteFromMySubs(mPersonalSubscriptionBeans.get(mClickedPosition - 1));
             mPersonalSubscriptionBeans.remove(mClickedPosition - 1);
             mMySubscriptionAdapter.notifyDataSetChanged();
         }
     }
 
-    private Handler mHandler = new Handler(){
+    private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-            switch (msg.what){
+            switch (msg.what) {
                 case GET_MY_SUBSCRIPTION:
                     progressDialog.dismiss();
-                    mDbManager.deleteMasterMySubs(currentMaster,currentUser);
+                    if (mDbManager.getDb().isOpen()) {
+                        mDbManager.deleteMasterMySubs(currentMaster, currentUser);
+                    }
                     String resultJson = msg.getData().getString("result");
-                    Log.d("subscriptionResult",resultJson);
+                    Log.d("subscriptionResult", resultJson);
                     try {
                         JSONObject resultObject = new JSONObject(resultJson);
                         JSONArray resultArray = resultObject.getJSONArray("datas");
-                        if (resultArray != null){
-                            if (resultArray.length() == 0){
+                        if (resultArray != null) {
+                            if (resultArray.length() == 0) {
                                 mEmptyLayout.showEmpty();
-                                if (mPullListView.isRefreshing()){
+                                if (mPullListView.isRefreshing()) {
                                     mPullListView.onRefreshComplete();
-                                    Crouton.makeText(getActivity(),"您没有任何订阅号", 0xff99cc00, 1500).show();
+                                    Crouton.makeText(getActivity(), "您没有任何订阅号", 0xff99cc00, 1500).show();
                                 }
-                            }else {
+                            } else {
                                 for (int i = 0; i < resultArray.length(); i++) {
                                     JSONObject currentObject = resultArray.getJSONObject(i);
                                     PersonalSubscriptionBean personalSubscriptionBean = new PersonalSubscriptionBean();
@@ -185,18 +188,25 @@ public class SubscriptionMyFragment extends BaseFragment {
                                     personalSubscriptionBean.setISAPPLED(currentObject.optInt("ISAPPLIED_"));
                                     personalSubscriptionBean.setMASTER(currentMaster);
                                     personalSubscriptionBean.setUSERNAME(currentUser);
-                                    personalSubscriptionBean.setIMG(Base64.decode(currentObject.optString("IMG_"),Base64.DEFAULT));
+                                    String s = currentObject.optString("IMG_");
+                                    if ("null".equals(currentObject.optString("IMG_")) || "".equals(currentObject.optString("IMG_"))){
+                                        personalSubscriptionBean.setIMG(new byte[0]);
+                                    }else {
+                                        personalSubscriptionBean.setIMG(Base64.decode(currentObject.optString("IMG_"), Base64.DEFAULT));
+                                    }
                                     mPersonalSubscriptionBeans.add(personalSubscriptionBean);
                                 }
                                 mMySubscriptionAdapter.notifyDataSetChanged();
-                                mDbManager.saveListToMySubs(mPersonalSubscriptionBeans);
-                                if (mPullListView.isRefreshing()){
+                                if (mDbManager.getDb().isOpen()) {
+                                    mDbManager.saveListToMySubs(mPersonalSubscriptionBeans);
+                                }
+                                if (mPullListView.isRefreshing()) {
                                     mPullListView.onRefreshComplete();
-                                    Crouton.makeText(getActivity(),"刷新成功", 0xff99cc00, 1500).show();
+                                    Crouton.makeText(getActivity(), "刷新成功", 0xff99cc00, 1500).show();
                                 }
                             }
                         }
-                        if (mPullListView.isRefreshing()){
+                        if (mPullListView.isRefreshing()) {
                             mPullListView.onRefreshComplete();
                         }
                     } catch (JSONException e) {
@@ -207,7 +217,7 @@ public class SubscriptionMyFragment extends BaseFragment {
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
                     Crouton.makeText(getActivity(), msg.getData().getString("result"), 0xffff4444, 1500).show();
-                    if (mPullListView.isRefreshing()){
+                    if (mPullListView.isRefreshing()) {
                         mPullListView.onRefreshComplete();
                     }
                     break;

+ 20 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java

@@ -6,10 +6,12 @@ import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Matrix;
-import android.graphics.Paint;
 import android.graphics.Rect;
 import android.graphics.Typeface;
 import android.media.ExifInterface;
+import android.text.Layout;
+import android.text.StaticLayout;
+import android.text.TextPaint;
 import android.util.Log;
 
 import java.io.BufferedOutputStream;
@@ -224,7 +226,7 @@ public class ImageUtil {
     public final static File compressWaterBitmapToFile(String filePath, int quality, int reqsW, int reqsH, String nickName, String time, String address, int alpha) {
         Bitmap bitmap = compressBitmapWithFilePath(filePath, reqsW, reqsH);
         try {
-            Paint paint = new Paint();
+            TextPaint paint = new TextPaint();
             paint.setAlpha(alpha);
             paint.setAntiAlias(true);
             paint.setShadowLayer(2, 3, 3, Color.BLACK);
@@ -242,15 +244,27 @@ public class ImageUtil {
             paint.getTextBounds(nameTime, 0, nameTime.length(), bounds);
             canvas.drawText(nameTime, canvas.getWidth() - 10 - paint.measureText(nameTime), canvas.getHeight() - 60, paint);
 
+            canvas.save();
             paint.setTextSize(16);
-            paint.getTextBounds(address, 0, address.length(), bounds);
-            if (paint.measureText(address) <= (float) (canvas.getWidth() - 20)) {
+//            paint.getTextBounds(address, 0, address.length(), bounds);
+            //文字过长时自动换行
+            StaticLayout staticLayout = new StaticLayout(address, paint, canvas.getWidth() - 20, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, true);
+            float startX = 0;
+            if (paint.measureText(address) > canvas.getWidth() - 10) {
+                startX = 10;
+            } else {
+                startX = canvas.getWidth() - 10 - paint.measureText(address);
+            }
+            canvas.translate(startX, canvas.getHeight() - 50);
+            staticLayout.draw(canvas);
+            canvas.restore();
+            /*if (paint.measureText(address) <= (float) (canvas.getWidth() - 20)) {
                 canvas.drawText(address, canvas.getWidth() - 10 - paint.measureText(address), canvas.getHeight() - 30, paint);
             } else {
                 String subAddress = address.substring(0, (int) (((canvas.getWidth() - 25) / paint.measureText(address)) * address.length())) + "...";
                 paint.getTextBounds(subAddress, 0, subAddress.length(), bounds);
                 canvas.drawText(subAddress,canvas.getWidth() - 10 - paint.measureText(subAddress), canvas.getHeight() - 30, paint);
-            }
+            }*/
 
             File file = new File(filePath);
             BufferedOutputStream baos = new BufferedOutputStream(new FileOutputStream(file));
@@ -346,9 +360,9 @@ public class ImageUtil {
     }
 
 
-
     /**
      * 字节数组转换成bitmap
+     *
      * @param bytes
      * @return
      */

+ 8 - 0
WeiChat/src/main/res/anim/anim_activity_back_in.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300"
+    android:fromXDelta="-100%p"
+    android:toXDelta="0"
+    >
+
+</translate>

+ 8 - 0
WeiChat/src/main/res/anim/anim_activity_back_out.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300"
+    android:fromXDelta="0"
+    android:toXDelta="100%p"
+    >
+
+</translate>

+ 8 - 0
WeiChat/src/main/res/anim/anim_activity_in.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300"
+    android:fromXDelta="100%p"
+    android:toXDelta="0"
+    >
+
+</translate>

+ 12 - 0
WeiChat/src/main/res/anim/anim_activity_out.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<scale xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300"
+    android:fromYScale="1"
+    android:toYScale="0.9"
+    android:fromXScale="1"
+    android:toXScale="0.9"
+    android:pivotX="50%"
+    android:pivotY="50%"
+    >
+
+</scale>

+ 4 - 0
WeiChat/src/main/res/anim/anim_to_main_in.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android">
+
+</translate>

+ 14 - 0
WeiChat/src/main/res/anim/anim_to_main_out.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="200"
+        android:fromYDelta="0"
+        android:toYDelta="50%p"
+        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
+    <alpha
+        android:duration="150"
+        android:fromAlpha="1"
+        android:toAlpha="0"
+        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
+        />
+</set>

+ 8 - 64
WeiChat/src/main/res/layout/activity_subscribe_detail.xml

@@ -3,71 +3,15 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical">
-
-    <ScrollView
+    <ProgressBar
+        android:id="@+id/subscribe_detail_pb"
         android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"
-        android:visibility="gone">
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="80dp"
-                android:padding="15dp"
-                android:background="#F5F3F4"
-                android:orientation="horizontal">
-
-                <ImageView
-                    android:id="@+id/subscribe_detail_iv"
-                    android:layout_width="50dp"
-                    android:layout_height="50dp"
-                    android:layout_marginLeft="10dp"
-                    android:src="@drawable/ic_subscription_icon1"/>
-                <TextView
-                    android:id="@+id/subscribe_detail_name_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center_vertical"
-                    android:textSize="18sp"
-                    android:layout_marginLeft="10dp"
-                    android:text="当月采购订单分析"/>
-            </LinearLayout>
-            <View
-                style="@style/app_line_gray_1dp"/>
-            <RelativeLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:padding="15dp">
-                <TextView
-                    android:id="@+id/subscribe_detail_jianjie_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="简介:"
-                    android:textColor="@color/red"/>
-                <TextView
-                    android:id="@+id/subscribe_detail_title_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_toRightOf="@id/subscribe_detail_jianjie_tv"
-                    android:text="当月采购金额汇总表"/>
-                <TextView
-                    android:id="@+id/subscribe_detail_content_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_below="@id/subscribe_detail_title_tv"
-                    android:layout_alignLeft="@id/subscribe_detail_title_tv"
-                    android:layout_marginTop="10dp"
-                    android:text="描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述"/>
-            </RelativeLayout>
-
-            <View
-                style="@style/app_line_gray_1dp"/>
-        </LinearLayout>
-    </ScrollView>
-
+        android:layout_height="3dp"
+        android:max="100"
+        android:progress="0"
+        android:visibility="gone"
+        android:progressTint="@color/titleBlue"
+        style="?android:attr/progressBarStyleHorizontal" />
     <WebView
         android:id="@+id/subscribe_detail_wv"
         android:layout_width="match_parent"

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

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

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

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

+ 17 - 0
WeiChat/src/main/res/values-v14/styles.xml

@@ -3,6 +3,7 @@
     <!-- Application theme. -->
     <style name="AppTheme" parent="AppBaseTheme">
         <!-- All customizations that are NOT specific to a particular API-level can go here. -->
+        <!--<item name="android:windowAnimationStyle">@style/noAnimation</item>-->
     </style>
     
     <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
@@ -135,4 +136,20 @@
     <style name="MyActionBar" parent="Widget.AppCompat.ActionBar.TabView">
         <item name="android:background">@color/antionbaritemcolor</item>
     </style>
+
+    <style name="noAnimation">
+        <item name="android:activityOpenEnterAnimation">@null</item>
+        <item name="android:activityOpenExitAnimation">@null</item>
+        <item name="android:activityCloseEnterAnimation">@null</item>
+        <item name="android:activityCloseExitAnimation">@null</item>
+        <item name="android:taskOpenEnterAnimation">@null</item>
+        <item name="android:taskOpenExitAnimation">@null</item>
+        <item name="android:taskCloseEnterAnimation">@null</item>
+        <item name="android:taskCloseExitAnimation">@null</item>
+        <item name="android:taskToFrontEnterAnimation">@null</item>
+        <item name="android:taskToFrontExitAnimation">@null</item>
+        <item name="android:taskToBackEnterAnimation">@null</item>
+        <item name="android:taskToBackExitAnimation">@null</item>
+
+    </style>
 </resources>

+ 14 - 0
WeiChat/src/main/res/values/styles.xml

@@ -1042,5 +1042,19 @@
         <item name="android:windowExitAnimation">@anim/popup_exit</item>
     </style>
 
+    <style name="noAnimation">
+        <item name="android:activityOpenEnterAnimation">@null</item>
+        <item name="android:activityOpenExitAnimation">@null</item>
+        <item name="android:activityCloseEnterAnimation">@null</item>
+        <item name="android:activityCloseExitAnimation">@null</item>
+        <item name="android:taskOpenEnterAnimation">@null</item>
+        <item name="android:taskOpenExitAnimation">@null</item>
+        <item name="android:taskCloseEnterAnimation">@null</item>
+        <item name="android:taskCloseExitAnimation">@null</item>
+        <item name="android:taskToFrontEnterAnimation">@null</item>
+        <item name="android:taskToFrontExitAnimation">@null</item>
+        <item name="android:taskToBackEnterAnimation">@null</item>
+        <item name="android:taskToBackExitAnimation">@null</item>
 
+    </style>
 </resources>