Commit c7ea65ea71770a8879597f76fb1d3475bfa36017

Authored by xiongwei
1 parent 9cbee19cbb
Exists in master

版本跟新接口

PersonalCenter/app/build.gradle
... ... @@ -8,7 +8,7 @@ android {
8 8 minSdkVersion 15
9 9 targetSdkVersion 25
10 10 versionCode 1
11   - versionName "1.0"
  11 + versionName "1.0.0"
12 12 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13 13 }
14 14 buildTypes {
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/FeedBackActivity.java
... ... @@ -143,6 +143,7 @@ public class FeedBackActivity extends AppCompatActivity implements View.OnClickL
143 143 break;
144 144 case R.id.show_iv:
145 145  
  146 +
146 147 break;
147 148 }
148 149 }
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/MainActivity.java
... ... @@ -36,6 +36,7 @@ import com.hjx.personalcenter.http.HttpManager;
36 36 import com.hjx.personalcenter.interfaces.DialogCallBack;
37 37 import com.hjx.personalcenter.model.PesonalInfo;
38 38 import com.hjx.personalcenter.model.SignInfo;
  39 +import com.hjx.personalcenter.update.UpdateChecker;
39 40 import com.hjx.personalcenter.util.AlertUtils;
40 41 import com.hjx.personalcenter.util.CropUtils;
41 42 import com.hjx.personalcenter.util.DialogPermission;
... ... @@ -119,6 +120,14 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
119 120 initView();
120 121 initData();
121 122 initLister();
  123 + updateVersion();
  124 + }
  125 +//////版本更新
  126 + private void updateVersion() {
  127 + UpdateChecker updateChecker = new UpdateChecker(this);
  128 + updateChecker.checkForUpdates();
  129 +
  130 +
122 131 }
123 132  
124 133 private void initView() {
... ... @@ -340,21 +349,26 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
340 349 //回调头像监听
341 350 @Override
342 351 public void heard(Context context, View v,int headpitiaon) {
  352 + String picUrl;
343 353 switch (v.getId()){
344 354 //选择默认图片
345 355 case R.id.oktakephone:
346 356 if (headpitiaon==1){
347 357 mSimpleDraweeView.setImageDrawable(null);
348 358 mSimpleDraweeView.setImageResource(R.mipmap.default_avatar1);
  359 + picUrl = "http://hjxprodbucket.oss.aliyuncs.com/static/upload/boss_api/announcement/2017-08-29/61e8d8cf-651f-49c9-beb2-ff1387af390a.png";
349 360 }else if (headpitiaon==2){
350 361 mSimpleDraweeView.setImageDrawable(null);
351 362 mSimpleDraweeView.setImageResource(R.mipmap.default_avatar2);
  363 + picUrl = "http://hjxprodbucket.oss.aliyuncs.com/static/upload/boss_api/announcement/2017-08-29/8480ff7b-42f1-4d64-b848-c8f4f3afd385.png";
352 364 }else if (headpitiaon==3){
353 365 mSimpleDraweeView.setImageDrawable(null);
354 366 mSimpleDraweeView.setImageResource(R.mipmap.default_avatar3);
  367 + picUrl = "http://hjxprodbucket.oss.aliyuncs.com/static/upload/boss_api/announcement/2017-08-29/184112f4-bfe0-4db8-bc1e-6212755b241c.png";
355 368 }else if (headpitiaon==4){
356 369 mSimpleDraweeView.setImageDrawable(null);
357 370 mSimpleDraweeView.setImageResource(R.mipmap.default_avatar4);
  371 + picUrl = "http://hjxprodbucket.oss.aliyuncs.com/static/upload/boss_api/announcement/2017-08-29/e31c9e11-9276-4bf4-a162-b66272fdc351.png ";
358 372 }else if (headpitiaon==0){
359 373 AlertUtils.showToast(this, "你还没有设置头像 ");
360 374 }
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/activity/RegisterInfoActivity.java
... ... @@ -111,7 +111,7 @@ public class RegisterInfoActivity extends AppCompatActivity implements View.OnCl
111 111 String register8 = et_school.getText().toString().trim();
112 112 try {
113 113 long auserID = Long.parseLong(userID);
114   - HttpManager.getInstance().addchildAccountinfo(RegisterInfoActivity.this,auserID,"",
  114 + HttpManager.getInstance().addchildAccountinfo(RegisterInfoActivity.this,auserID,"http://hjxprodbucket.oss.aliyuncs.com/static/upload/boss_api/announcement/2017-08-29/a00de899-2f6d-43fb-9e30-71883842540e.png",
115 115 register5,register7,register8,register6);
116 116  
117 117 } catch (NumberFormatException e) {
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/adapter/AccountChildsAdapter.java
... ... @@ -6,9 +6,9 @@ import android.support.v7.widget.RecyclerView;
6 6 import android.view.LayoutInflater;
7 7 import android.view.View;
8 8 import android.view.ViewGroup;
9   -import android.widget.ImageView;
10 9 import android.widget.TextView;
11 10  
  11 +import com.facebook.drawee.view.SimpleDraweeView;
12 12 import com.hjx.personalcenter.R;
13 13 import com.hjx.personalcenter.http.HttpManager;
14 14 import com.hjx.personalcenter.model.ChildsInfo;
... ... @@ -59,7 +59,7 @@ public class AccountChildsAdapter extends RecyclerView.Adapter<AccountChildsAdap
59 59 public void onBindViewHolder(AccountChildsHolder holder, int position) {
60 60 final ChildsInfo.DataBean bean = specailList.get(position);
61 61 if (bean != null) {
62   - holder.iv_child_head.setImageResource(R.mipmap.header_default);
  62 + holder.mSimpleDraweeView.setImageURI(bean.getImage());
63 63 holder.iv_child_name.setText(bean.getName());
64 64 holder.iv_child_grade.setText(bean.getGrade());
65 65 holder.iv_child_school.setText(bean.getSchool());
... ... @@ -116,12 +116,12 @@ public class AccountChildsAdapter extends RecyclerView.Adapter<AccountChildsAdap
116 116 }
117 117  
118 118 class AccountChildsHolder extends RecyclerView.ViewHolder {
119   - ImageView iv_child_head;
  119 + SimpleDraweeView mSimpleDraweeView;
120 120 TextView iv_child_name, iv_child_grade, iv_child_school, iv_child_adress,
121 121 delete_account,chang_account;
122 122 public AccountChildsHolder(View itemView) {
123 123 super(itemView);
124   - iv_child_head = (ImageView) itemView.findViewById(R.id.iv_child_head);
  124 + mSimpleDraweeView = (SimpleDraweeView) itemView.findViewById(R.id.iv_child_head);
125 125 iv_child_name = (TextView) itemView.findViewById(R.id.iv_child_name);
126 126 iv_child_grade = (TextView) itemView.findViewById(R.id.iv_child_grade);
127 127 iv_child_school = (TextView) itemView.findViewById(R.id.iv_child_school);
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/adapter/GalleryAdapter.java
... ... @@ -5,9 +5,9 @@ import android.support.v7.widget.RecyclerView;
5 5 import android.view.LayoutInflater;
6 6 import android.view.View;
7 7 import android.view.ViewGroup;
8   -import android.widget.ImageView;
9 8 import android.widget.TextView;
10 9  
  10 +import com.facebook.drawee.view.SimpleDraweeView;
11 11 import com.hjx.personalcenter.R;
12 12  
13 13 import java.util.List;
... ... @@ -32,7 +32,7 @@ public class GalleryAdapter extends
32 32 super(arg0);
33 33 }
34 34  
35   - ImageView mImg;
  35 + SimpleDraweeView mSimpleDraweeView;
36 36 TextView mTxt;
37 37 }
38 38  
... ... @@ -52,7 +52,7 @@ public class GalleryAdapter extends
52 52 viewGroup, false);
53 53 ViewHolder viewHolder = new ViewHolder(view);
54 54  
55   - viewHolder.mImg = (ImageView) view
  55 + viewHolder.mSimpleDraweeView = (SimpleDraweeView) view
56 56 .findViewById(R.id.id_index_gallery_item_image);
57 57 return viewHolder;
58 58 }
... ... @@ -63,7 +63,7 @@ public class GalleryAdapter extends
63 63 @Override
64 64 public void onBindViewHolder(final ViewHolder viewHolder, final int i)
65 65 {
66   - viewHolder.mImg.setImageResource(mDatas.get(i));
  66 + viewHolder.mSimpleDraweeView.setImageResource(mDatas.get(i));
67 67 }
68 68  
69 69 }
70 70 \ No newline at end of file
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/fragment/PresonInfoFragment.java
... ... @@ -32,9 +32,7 @@ import com.hjx.personalcenter.model.SchoolInfo;
32 32 import com.hjx.personalcenter.util.AlertUtils;
33 33 import com.hjx.personalcenter.util.BrithdayStar;
34 34 import com.mylhyl.circledialog.CircleDialog;
35   -import com.mylhyl.circledialog.callback.ConfigButton;
36 35 import com.mylhyl.circledialog.callback.ConfigDialog;
37   -import com.mylhyl.circledialog.params.ButtonParams;
38 36 import com.mylhyl.circledialog.params.DialogParams;
39 37  
40 38 import org.apache.http.util.TextUtils;
... ... @@ -143,14 +141,6 @@ public class PresonInfoFragment extends Fragment implements View.OnClickListener
143 141  
144 142 }
145 143 })
146   - .setNegative("取消", null)
147   - .configNegative(new ConfigButton() {
148   - @Override
149   - public void onConfig(ButtonParams params) {
150   - //取消按钮字体颜色
151   - params.textColor = Color.RED;
152   - }
153   - })
154 144 .show();
155 145 break;
156 146 case R.id.tv_useinfo_adress:
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpCode.java
... ... @@ -41,6 +41,9 @@ public class HttpCode {
41 41 public static final int LOGIN_SUCESS = 18;
42 42 //获取子账户信息
43 43 public static final int CHILDS_SUCESS = 19;
  44 + //版本升级
  45 + public static final int APPUPDATE_SUCESS = 20;
  46 +
44 47  
45 48  
46 49  
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpManager.java
... ... @@ -2,7 +2,6 @@ package com.hjx.personalcenter.http;
2 2  
3 3 import android.app.Activity;
4 4 import android.app.ProgressDialog;
5   -import android.content.ComponentName;
6 5 import android.content.Context;
7 6 import android.content.Intent;
8 7 import android.os.Handler;
... ... @@ -20,6 +19,7 @@ import com.hjx.personalcenter.activity.LoginAndRegisterActivity;
20 19 import com.hjx.personalcenter.activity.TheStartPageActivity;
21 20 import com.hjx.personalcenter.db.SaveParam;
22 21 import com.hjx.personalcenter.gson.GsonTool;
  22 +import com.hjx.personalcenter.model.AppVersion;
23 23 import com.hjx.personalcenter.model.CardInfo;
24 24 import com.hjx.personalcenter.model.ChildsInfo;
25 25 import com.hjx.personalcenter.model.CityInfo;
... ... @@ -635,23 +635,21 @@ public class HttpManager {
635 635 new CircleDialog.Builder((FragmentActivity) mContext)
636 636 .setCanceledOnTouchOutside(false)
637 637 .setCancelable(false)
  638 + .setWidth(0.5f)
638 639 .configText(new ConfigText() {
639 640 @Override
640 641 public void onConfig(TextParams params) {
641 642 params.gravity = Gravity.CENTER;
642   - params.padding = new int[]{250, 50, 250, 50};
  643 + params.padding = new int[]{50, 50, 50, 50};
643 644 }
644 645 })
645 646 .setText("当前无网络,请检查网络设置")
646   - .setNegative("取消", null)
647   - .setPositive("确定", new View.OnClickListener() {
  647 + .setNegative("继续使用", null)
  648 + .setPositive("设置网络", new View.OnClickListener() {
648 649 @Override
649 650 public void onClick(View v) {
650   - Intent intent = new Intent("/");
651   - ComponentName cm = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");
652   - intent.setComponent(cm);
653   - intent.setAction("android.intent.action.VIEW");
654   - ((Activity) mContext).startActivityForResult( intent , 0);
  651 + Intent intent = new Intent(Settings.ACTION_SETTINGS);//系统设置界面
  652 + mContext.startActivity(intent);
655 653 }
656 654 })
657 655 .show();
... ... @@ -1296,6 +1294,61 @@ public class HttpManager {
1296 1294 });
1297 1295  
1298 1296 }
  1297 + /**
  1298 + * 系统升级
  1299 + * @param mContext
  1300 + * @param pid
  1301 + * appName
  1302 + *
  1303 + */
  1304 + public void updateAPP(final Context mContext, String pid , String appName, final Handler handler) {
  1305 + mProgress = DialogPermission.showProgress(mContext, null, "正在切换子账户...",
  1306 + false, true, null);
  1307 + HttpClient.getInstance().setTimeout(5 * 1000);
  1308 + HttpClient.getInstance().addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
  1309 + HttpClient.getInstance().get(HttpUrl.updateappURL+ "?pid=" + pid+"&appName="+ appName, new AsyncHttpResponseHandler() {
  1310 + @Override
  1311 + public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
  1312 + closeProgress();
  1313 + Log.e("test", "版本升级信息" + new String(arg2));
  1314 + AppVersion appVersion = GsonTool.getPerson(new String(arg2), AppVersion.class);//解析json数据
  1315 + Message msg = Message.obtain();
  1316 + msg.what = HttpCode.APPUPDATE_SUCESS;
  1317 + msg.obj = appVersion;
  1318 + handler.sendMessage(msg);
  1319 +
  1320 +
  1321 + }
  1322 +
  1323 + @Override
  1324 + public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
  1325 + closeProgress();
  1326 + Log.e("test", "错误信息" + new String(arg2));
  1327 + new CircleDialog.Builder((FragmentActivity) mContext)
  1328 + .setCanceledOnTouchOutside(false)
  1329 + .setCancelable(false)
  1330 + .setWidth(0.5f)
  1331 + .configText(new ConfigText() {
  1332 + @Override
  1333 + public void onConfig(TextParams params) {
  1334 + params.gravity = Gravity.CENTER;
  1335 + params.padding = new int[]{50, 50, 50, 50};
  1336 + }
  1337 + })
  1338 + .setText("当前无网络,请检查网络设置")
  1339 + .setNegative("继续使用", null)
  1340 + .setPositive("设置网络", new View.OnClickListener() {
  1341 + @Override
  1342 + public void onClick(View v) {
  1343 + Intent intent = new Intent(Settings.ACTION_SETTINGS);//系统设置界面
  1344 + mContext.startActivity(intent);
  1345 + }
  1346 + })
  1347 + .show();
  1348 + }
  1349 + });
  1350 +
  1351 + }
1299 1352  
1300 1353  
1301 1354  
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/http/HttpUrl.java
... ... @@ -35,6 +35,7 @@ public class HttpUrl {
35 35 public static String deletechildUserURL=GetDomain()+"/childUser/delete";//删除子账户
36 36 public static String addchildUserURL=GetDomain()+"/childUser/addChildUser";//添加子账户
37 37 public static String changechildUserURL=GetDomain()+"/childUser/update";//切换子账户
  38 + public static String updateappURL=GetDomain()+"/general/release/version";//系统升级
38 39  
39 40  
40 41  
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/model/AppVersion.java
... ... @@ -0,0 +1,154 @@
  1 +package com.hjx.personalcenter.model;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +/**
  6 + * Created by h on 2017/8/29.
  7 + */
  8 +
  9 +public class AppVersion implements Serializable{
  10 +
  11 + /**
  12 + * version_name : 1.7.1.201608028708
  13 + * versioncode : 176
  14 + * pid : com.ozing.appstore
  15 + * downloads :
  16 + * app_name : 应用商城
  17 + * msg : 919,929,939界面优化
  18 + * url : http://hjxprodbucket.oss.aliyuncs.com/static/upload/app/pad/2016-08-18/AppStore-816.apk
  19 + * forceupdate : false
  20 + * size : 4805
  21 + * encrypted : false
  22 + * encryptedUrl :
  23 + * order :
  24 + * visiable : true
  25 + * release_date : 1471449600000
  26 + */
  27 +
  28 + private String version_name;
  29 + private int versioncode;
  30 + private String pid;
  31 + private String downloads;
  32 + private String app_name;
  33 + private String msg;
  34 + private String url;
  35 + private String forceupdate;
  36 + private int size;
  37 + private boolean encrypted;
  38 + private String encryptedUrl;
  39 + private String order;
  40 + private String visiable;
  41 + private long release_date;
  42 +
  43 + public String getVersion_name() {
  44 + return version_name;
  45 + }
  46 +
  47 + public void setVersion_name(String version_name) {
  48 + this.version_name = version_name;
  49 + }
  50 +
  51 + public int getVersioncode() {
  52 + return versioncode;
  53 + }
  54 +
  55 + public void setVersioncode(int versioncode) {
  56 + this.versioncode = versioncode;
  57 + }
  58 +
  59 + public String getPid() {
  60 + return pid;
  61 + }
  62 +
  63 + public void setPid(String pid) {
  64 + this.pid = pid;
  65 + }
  66 +
  67 + public String getDownloads() {
  68 + return downloads;
  69 + }
  70 +
  71 + public void setDownloads(String downloads) {
  72 + this.downloads = downloads;
  73 + }
  74 +
  75 + public String getApp_name() {
  76 + return app_name;
  77 + }
  78 +
  79 + public void setApp_name(String app_name) {
  80 + this.app_name = app_name;
  81 + }
  82 +
  83 + public String getMsg() {
  84 + return msg;
  85 + }
  86 +
  87 + public void setMsg(String msg) {
  88 + this.msg = msg;
  89 + }
  90 +
  91 + public String getUrl() {
  92 + return url;
  93 + }
  94 +
  95 + public void setUrl(String url) {
  96 + this.url = url;
  97 + }
  98 +
  99 + public String getForceupdate() {
  100 + return forceupdate;
  101 + }
  102 +
  103 + public void setForceupdate(String forceupdate) {
  104 + this.forceupdate = forceupdate;
  105 + }
  106 +
  107 + public int getSize() {
  108 + return size;
  109 + }
  110 +
  111 + public void setSize(int size) {
  112 + this.size = size;
  113 + }
  114 +
  115 + public boolean isEncrypted() {
  116 + return encrypted;
  117 + }
  118 +
  119 + public void setEncrypted(boolean encrypted) {
  120 + this.encrypted = encrypted;
  121 + }
  122 +
  123 + public String getEncryptedUrl() {
  124 + return encryptedUrl;
  125 + }
  126 +
  127 + public void setEncryptedUrl(String encryptedUrl) {
  128 + this.encryptedUrl = encryptedUrl;
  129 + }
  130 +
  131 + public String getOrder() {
  132 + return order;
  133 + }
  134 +
  135 + public void setOrder(String order) {
  136 + this.order = order;
  137 + }
  138 +
  139 + public String getVisiable() {
  140 + return visiable;
  141 + }
  142 +
  143 + public void setVisiable(String visiable) {
  144 + this.visiable = visiable;
  145 + }
  146 +
  147 + public long getRelease_date() {
  148 + return release_date;
  149 + }
  150 +
  151 + public void setRelease_date(long release_date) {
  152 + this.release_date = release_date;
  153 + }
  154 +}
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/update/DownloadService.java
... ... @@ -0,0 +1,61 @@
  1 +package com.hjx.personalcenter.update;
  2 +
  3 +/**
  4 + * Created by l on 2017/7/17.
  5 + */
  6 +
  7 +
  8 +import android.app.IntentService;
  9 +import android.content.Intent;
  10 +import android.os.Bundle;
  11 +import android.os.ResultReceiver;
  12 +
  13 +import java.io.BufferedInputStream;
  14 +import java.io.FileOutputStream;
  15 +import java.io.IOException;
  16 +import java.io.InputStream;
  17 +import java.io.OutputStream;
  18 +import java.net.URL;
  19 +import java.net.URLConnection;
  20 +
  21 +public class DownloadService extends IntentService {
  22 + public static final int UPDATE_PROGRESS = 8344;
  23 + public DownloadService() {
  24 + super("DownloadService");
  25 + }
  26 + @Override
  27 + protected void onHandleIntent(Intent intent) {
  28 + String urlToDownload = intent.getStringExtra("url");
  29 + String fileDestination = intent.getStringExtra("dest");
  30 + ResultReceiver receiver = (ResultReceiver) intent.getParcelableExtra("receiver");
  31 + try {
  32 + URL url = new URL(urlToDownload);
  33 + URLConnection connection = url.openConnection();
  34 + connection.connect();
  35 + // this will be useful so that you can show a typical 0-100% progress bar
  36 + int fileLength = connection.getContentLength();
  37 + // download the file
  38 + InputStream input = new BufferedInputStream(connection.getInputStream());
  39 + OutputStream output = new FileOutputStream(fileDestination);
  40 + byte data[] = new byte[100];
  41 + long total = 0;
  42 + int count;
  43 + while ((count = input.read(data)) != -1) {
  44 + total += count;
  45 + // publishing the progress....
  46 + Bundle resultData = new Bundle();
  47 + resultData.putInt("progress" ,(int) (total * 100 / fileLength));
  48 + receiver.send(UPDATE_PROGRESS, resultData);
  49 + output.write(data, 0, count);
  50 + }
  51 + output.flush();
  52 + output.close();
  53 + input.close();
  54 + } catch (IOException e) {
  55 + e.printStackTrace();
  56 + }
  57 + Bundle resultData = new Bundle();
  58 + resultData.putInt("progress" ,100);
  59 + receiver.send(UPDATE_PROGRESS, resultData);
  60 + }
  61 +}
0 62 \ No newline at end of file
... ...
PersonalCenter/app/src/main/java/com/hjx/personalcenter/update/UpdateChecker.java
... ... @@ -0,0 +1,191 @@
  1 +package com.hjx.personalcenter.update;
  2 +
  3 +/**
  4 + * Created by l on 2017/7/17.
  5 + */
  6 +
  7 +import android.app.Activity;
  8 +import android.app.ProgressDialog;
  9 +import android.content.Context;
  10 +import android.content.DialogInterface;
  11 +import android.content.Intent;
  12 +import android.content.pm.PackageManager;
  13 +import android.net.Uri;
  14 +import android.os.Bundle;
  15 +import android.os.Environment;
  16 +import android.os.Handler;
  17 +import android.os.Message;
  18 +import android.os.ResultReceiver;
  19 +import android.support.v4.app.FragmentActivity;
  20 +import android.view.View;
  21 +
  22 +import com.hjx.personalcenter.http.HttpCode;
  23 +import com.hjx.personalcenter.http.HttpManager;
  24 +import com.hjx.personalcenter.model.AppVersion;
  25 +import com.mylhyl.circledialog.CircleDialog;
  26 +
  27 +import java.io.File;
  28 +
  29 +public class UpdateChecker{
  30 + private static final String TAG = "UpdateChecker";
  31 + private Context mContext;
  32 + //检查版本信息的线程
  33 + private Thread mThread;
  34 +
  35 + private AppVersion mAppVersion;
  36 + //下载apk的对话框
  37 + private ProgressDialog mProgressDialog;
  38 +
  39 + private File apkFile;
  40 +
  41 +
  42 + public UpdateChecker(Context context) {
  43 + mContext = context;
  44 + // instantiate it within the onCreate method
  45 + mProgressDialog = new ProgressDialog(context);
  46 + mProgressDialog.setMessage("正在下载");
  47 + mProgressDialog.setIndeterminate(false);
  48 + mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  49 + mProgressDialog.setCancelable(true);
  50 + mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
  51 + @Override
  52 + public void onCancel(DialogInterface dialog) {
  53 +
  54 + }
  55 + });
  56 + mProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
  57 + @Override
  58 + public void onDismiss(DialogInterface dialog) {
  59 + // TODO Auto-generated method stub
  60 +
  61 + }
  62 + });
  63 + }
  64 +
  65 + public void checkForUpdates() {
  66 +
  67 + final Handler handler = new Handler(){
  68 + public void handleMessage(Message msg) {
  69 + if (msg.what == HttpCode.APPUPDATE_SUCESS) {
  70 + mAppVersion = (AppVersion) msg.obj;
  71 + try{
  72 + int versionCode = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionCode;
  73 + if (mAppVersion.getVersioncode() > versionCode) {
  74 + if(mAppVersion.isEncrypted()){
  75 + showForceUpdateDialog();
  76 + }else{
  77 + showUpdateDialog();
  78 + }
  79 + } else {
  80 + //Toast.makeText(mContext, "已经是最新版本", Toast.LENGTH_SHORT).show();
  81 + }
  82 + }catch (PackageManager.NameNotFoundException ignored) {
  83 + //
  84 + }
  85 + }
  86 + }
  87 + };
  88 +
  89 + mThread = new Thread() {
  90 + @Override
  91 + public void run() {
  92 + try {
  93 + HttpManager.getInstance().updateAPP(mContext,"com.hjx.personalcenter","呼叫老师安卓Pad",handler);
  94 + }catch (Exception e){
  95 + e.printStackTrace();
  96 + }
  97 +
  98 + }
  99 + };
  100 + mThread.start();
  101 + }
  102 +
  103 + private void showForceUpdateDialog() {
  104 + new CircleDialog.Builder((FragmentActivity)mContext)
  105 + .setCanceledOnTouchOutside(false)
  106 + .setCancelable(false)
  107 + .setWidth(0.5f)
  108 + .setTitle("升级提示")
  109 + .setNegative("取消", new View.OnClickListener() {
  110 + @Override
  111 + public void onClick(View v) {
  112 + ((Activity)mContext).finish();
  113 +
  114 + }
  115 + })
  116 + .setPositive("确定", new View.OnClickListener() {
  117 + @Override
  118 + public void onClick(View v) {
  119 + downLoadApk();
  120 + }
  121 + })
  122 + .show();
  123 + }
  124 +
  125 + private void showUpdateDialog() {
  126 + new CircleDialog.Builder((FragmentActivity)mContext)
  127 + .setCanceledOnTouchOutside(false)
  128 + .setCancelable(false)
  129 + .setWidth(0.5f)
  130 + .setTitle("升级提示")
  131 + .setNegative("取消", null)
  132 + .setPositive("确定", new View.OnClickListener() {
  133 + @Override
  134 + public void onClick(View v) {
  135 + downLoadApk();
  136 + }
  137 + })
  138 + .show();
  139 + }
  140 +
  141 + private void downLoadApk() {
  142 + String apkUrl = mAppVersion.getUrl();
  143 + String dir = mContext.getExternalFilesDir( "apk").getAbsolutePath();
  144 + File folder = Environment.getExternalStoragePublicDirectory(dir);
  145 + if(folder.exists() && folder.isDirectory()) {
  146 + //do nothing
  147 + }else {
  148 + folder.mkdirs();
  149 + }
  150 + String filename = apkUrl.substring(apkUrl.lastIndexOf("/"),apkUrl.length());
  151 + String destinationFilePath = dir + "/" + filename;
  152 + apkFile = new File(destinationFilePath);
  153 + if(mAppVersion.isEncrypted()){
  154 + mProgressDialog.setCancelable(false);
  155 + }
  156 + mProgressDialog.show();
  157 + Intent intent = new Intent(mContext, DownloadService.class);
  158 + intent.putExtra("url", apkUrl);
  159 + intent.putExtra("dest", destinationFilePath);
  160 + intent.putExtra("receiver", new DownloadReceiver(new Handler()));
  161 + mContext.startService(intent);
  162 + }
  163 +
  164 + private class DownloadReceiver extends ResultReceiver{
  165 + public DownloadReceiver(Handler handler) {
  166 + super(handler);
  167 + }
  168 + @Override
  169 + protected void onReceiveResult(int resultCode, Bundle resultData) {
  170 + super.onReceiveResult(resultCode, resultData);
  171 + if (resultCode == DownloadService.UPDATE_PROGRESS) {
  172 + int progress = resultData.getInt("progress");
  173 + mProgressDialog.setProgress(progress);
  174 + if (progress == 100) {
  175 + mProgressDialog.dismiss();
  176 + //如果没有设置SDCard写权限,或者没有sdcard,apk文件保存在内存中,需要授予权限才能安装
  177 + String[] command = {"chmod","777",apkFile.toString()};
  178 + try{
  179 + ProcessBuilder builder = new ProcessBuilder(command);
  180 + builder.start();
  181 + Intent intent = new Intent(Intent.ACTION_VIEW);
  182 + intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
  183 + mContext.startActivity(intent);
  184 + }catch (Exception e){
  185 + e.printStackTrace();
  186 + }
  187 + }
  188 + }
  189 + }
  190 + }
  191 +}
0 192 \ No newline at end of file
... ...
PersonalCenter/app/src/main/res/drawable/search_clear.xml
... ... @@ -0,0 +1,5 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<selector xmlns:android="http://schemas.android.com/apk/res/android">
  3 + <item android:drawable="@drawable/search_clear_normal" android:state_pressed="false"/>
  4 + <item android:drawable="@drawable/search_clear_pressed" android:state_pressed="true"/>
  5 +</selector>
... ...
PersonalCenter/app/src/main/res/layout/activity_change_preson_info.xml
... ... @@ -47,7 +47,7 @@
47 47 <LinearLayout
48 48 android:layout_width="wrap_content"
49 49 android:layout_height="wrap_content"
50   - android:layout_marginTop="20dp"
  50 + android:layout_marginTop="30dp"
51 51 android:layout_below="@+id/title"
52 52 android:orientation="vertical">
53 53  
... ...
PersonalCenter/app/src/main/res/layout/fragment_changge_presonal_info.xml
... ... @@ -9,14 +9,14 @@
9 9 <LinearLayout
10 10 android:layout_width="wrap_content"
11 11 android:layout_height="wrap_content"
12   - android:layout_marginTop="60dp"
  12 + android:layout_marginTop="80dp"
13 13 android:orientation="horizontal">
14 14  
15 15 <View
16 16 android:layout_width="450dp"
17 17 android:layout_height="0.7dp"
18 18 android:layout_marginLeft="150dp"
19   - android:background="@color/electronic_text">
  19 + android:background="@color/cutoff_line">
20 20  
21 21 </View>
22 22  
... ... @@ -24,7 +24,7 @@
24 24 android:layout_width="450dp"
25 25 android:layout_height="0.7dp"
26 26 android:layout_marginLeft="80dp"
27   - android:background="@color/electronic_text">
  27 + android:background="@color/cutoff_line">
28 28  
29 29 </View>
30 30  
... ... @@ -48,7 +48,6 @@
48 48 android:layout_width="wrap_content"
49 49 android:layout_height="wrap_content"
50 50 android:text="昵称"
51   - android:textColor="@color/pickerview_wheelview_textcolor_center"
52 51 android:textSize="22sp" />
53 52  
54 53 <EditText
... ... @@ -73,7 +72,6 @@
73 72 android:layout_width="wrap_content"
74 73 android:layout_height="wrap_content"
75 74 android:text="地区"
76   - android:textColor="@color/pickerview_wheelview_textcolor_center"
77 75 android:textSize="22sp" />
78 76  
79 77 <TextView
... ... @@ -105,7 +103,7 @@
105 103 android:layout_width="450dp"
106 104 android:layout_height="0.7dp"
107 105 android:layout_marginLeft="150dp"
108   - android:background="@color/electronic_text">
  106 + android:background="@color/cutoff_line">
109 107  
110 108 </View>
111 109  
... ... @@ -113,7 +111,7 @@
113 111 android:layout_width="450dp"
114 112 android:layout_height="0.7dp"
115 113 android:layout_marginLeft="80dp"
116   - android:background="@color/electronic_text">
  114 + android:background="@color/cutoff_line">
117 115  
118 116 </View>
119 117  
... ... @@ -137,7 +135,6 @@
137 135 android:layout_width="wrap_content"
138 136 android:layout_height="wrap_content"
139 137 android:text="性别"
140   - android:textColor="@color/pickerview_wheelview_textcolor_center"
141 138 android:textSize="22sp" />
142 139  
143 140 <TextView
... ... @@ -195,7 +192,7 @@
195 192 android:layout_width="450dp"
196 193 android:layout_height="0.7dp"
197 194 android:layout_marginLeft="150dp"
198   - android:background="@color/electronic_text">
  195 + android:background="@color/cutoff_line">
199 196  
200 197 </View>
201 198  
... ... @@ -203,7 +200,7 @@
203 200 android:layout_width="450dp"
204 201 android:layout_height="0.7dp"
205 202 android:layout_marginLeft="80dp"
206   - android:background="@color/electronic_text">
  203 + android:background="@color/cutoff_line">
207 204  
208 205 </View>
209 206  
... ... @@ -228,7 +225,6 @@
228 225 android:layout_width="wrap_content"
229 226 android:layout_height="wrap_content"
230 227 android:text="生日"
231   - android:textColor="@color/pickerview_wheelview_textcolor_center"
232 228 android:textSize="22sp" />
233 229  
234 230 <TextView
... ... @@ -255,7 +251,6 @@
255 251 android:layout_width="wrap_content"
256 252 android:layout_height="wrap_content"
257 253 android:text="年级"
258   - android:textColor="@color/pickerview_wheelview_textcolor_center"
259 254 android:textSize="22sp" />
260 255  
261 256 <TextView
... ... @@ -285,7 +280,7 @@
285 280 android:layout_width="450dp"
286 281 android:layout_height="0.7dp"
287 282 android:layout_marginLeft="150dp"
288   - android:background="@color/electronic_text">
  283 + android:background="@color/cutoff_line">
289 284  
290 285 </View>
291 286  
... ... @@ -293,7 +288,7 @@
293 288 android:layout_width="450dp"
294 289 android:layout_height="0.7dp"
295 290 android:layout_marginLeft="80dp"
296   - android:background="@color/electronic_text">
  291 + android:background="@color/cutoff_line">
297 292  
298 293 </View>
299 294  
... ... @@ -318,7 +313,6 @@
318 313 android:layout_width="wrap_content"
319 314 android:layout_height="wrap_content"
320 315 android:text="Q Q"
321   - android:textColor="@color/pickerview_wheelview_textcolor_center"
322 316 android:textSize="22sp" />
323 317  
324 318 <EditText
... ... @@ -343,7 +337,6 @@
343 337 android:layout_width="wrap_content"
344 338 android:layout_height="wrap_content"
345 339 android:text="学校"
346   - android:textColor="@color/pickerview_wheelview_textcolor_center"
347 340 android:textSize="22sp" />
348 341  
349 342 <TextView
... ... @@ -375,7 +368,7 @@
375 368 android:layout_width="450dp"
376 369 android:layout_height="0.7dp"
377 370 android:layout_marginLeft="150dp"
378   - android:background="@color/electronic_text">
  371 + android:background="@color/cutoff_line">
379 372  
380 373 </View>
381 374  
... ... @@ -383,7 +376,7 @@
383 376 android:layout_width="450dp"
384 377 android:layout_height="0.7dp"
385 378 android:layout_marginLeft="80dp"
386   - android:background="@color/electronic_text">
  379 + android:background="@color/cutoff_line">
387 380  
388 381 </View>
389 382  
... ...
PersonalCenter/app/src/main/res/layout/recycler_childaccunt_item_view.xml
1 1 <?xml version="1.0" encoding="utf-8"?>
2 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3   - android:orientation="vertical" android:layout_width="415dp"
  3 + xmlns:fresco="http://schemas.android.com/apk/res-auto"
  4 + android:orientation="vertical"
  5 + android:layout_width="415dp"
4 6 android:layout_height="match_parent">
5 7 <LinearLayout
6 8 android:layout_width="wrap_content"
... ... @@ -12,13 +14,15 @@
12 14 android:layout_width="wrap_content"
13 15 android:layout_height="wrap_content"
14 16 android:orientation="horizontal">
15   -
16   - <ImageView
  17 + <com.facebook.drawee.view.SimpleDraweeView
17 18 android:id="@+id/iv_child_head"
18   - android:layout_width="wrap_content"
19   - android:layout_height="wrap_content"
  19 + android:layout_width="60dp"
  20 + android:layout_height="60dp"
20 21 android:layout_margin="10dp"
21   - android:src="@mipmap/header_default" />
  22 + fresco:placeholderImage="@mipmap/header_default"
  23 + fresco:roundAsCircle="true"
  24 + fresco:placeholderImageScaleType="fitCenter" />
  25 +
22 26  
23 27 <LinearLayout
24 28 android:layout_width="0dp"
... ...
PersonalCenter/app/src/main/res/layout/recycler_study_tem_view.xml
... ... @@ -2,17 +2,17 @@
2 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 3 android:layout_width="120dp"
4 4 android:layout_height="120dp"
5   - >
6   -
7   - <ImageView
  5 + xmlns:fresco="http://schemas.android.com/apk/res-auto">
  6 + <com.facebook.drawee.view.SimpleDraweeView
8 7 android:id="@+id/id_index_gallery_item_image"
9   - android:layout_width="80dp"
10   - android:layout_height="80dp"
  8 + android:layout_width="60dp"
  9 + android:layout_height="60dp"
  10 + android:scaleType="centerCrop"
11 11 android:layout_alignParentTop="true"
12 12 android:layout_centerHorizontal="true"
13   - android:layout_margin="5dp"
14   - android:scaleType="centerCrop" />
15   -
  13 + fresco:placeholderImage="@mipmap/header_default"
  14 + fresco:roundAsCircle="true"
  15 + fresco:placeholderImageScaleType="fitCenter" />
16 16 <TextView
17 17 android:id="@+id/id_index_gallery_item_text"
18 18 android:layout_width="wrap_content"
... ...