1
0
mirror of https://github.com/yexuejc/hexi-prv.git synced 2025-09-28 06:14:36 +08:00

README文档完善

This commit is contained in:
2017-07-13 16:24:09 +08:00
parent fb07a7bb83
commit 7ede3026b1
15 changed files with 474 additions and 95 deletions

View File

@@ -50,65 +50,5 @@ public class ResultPptIco {
private @SerializedName("JKJ_BY_GT")List<ResultPptIcoItem> JKJ_BY_GT;
private @SerializedName("SY_QXS_TB")List<ResultPptIcoItem> SY_QXS_TB;
private @SerializedName("QB_GGT_TB")List<ResultPptIcoItem> QB_GGT_TB;
}
class ResultPptIcoItem{
private String imgUrl;
private int orderBy;
private String name;
private String M;
private double version;
public String getImgUrl() {
return imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
public int getOrderBy() {
return orderBy;
}
public void setOrderBy(int orderBy) {
this.orderBy = orderBy;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getM() {
return M;
}
public void setM(String m) {
M = m;
}
public double getVersion() {
return version;
}
public void setVersion(double version) {
this.version = version;
}
@Override
public String toString() {
return "ResultPptIcoItem{" +
"imgUrl='" + imgUrl + '\'' +
", orderBy=" + orderBy +
", name='" + name + '\'' +
", M='" + M + '\'' +
", version=" + version +
'}';
}
}

View File

@@ -0,0 +1,67 @@
package com.yexue.android.hexiprv.bean;
/**
* @author yexue
* @version 1.0
* @name com.yexue.android.hexiprv.bean
* @explain
* @time 2017/7/13 13:55
*/
public class ResultPptIcoItem {
private String imgUrl;
private int orderBy;
private String name;
private String M;
private double version;
public String getImgUrl() {
return imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
public int getOrderBy() {
return orderBy;
}
public void setOrderBy(int orderBy) {
this.orderBy = orderBy;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getM() {
return M;
}
public void setM(String m) {
M = m;
}
public double getVersion() {
return version;
}
public void setVersion(double version) {
this.version = version;
}
@Override
public String toString() {
return "ResultPptIcoItem{" +
"imgUrl='" + imgUrl + '\'' +
", orderBy=" + orderBy +
", name='" + name + '\'' +
", M='" + M + '\'' +
", version=" + version +
'}';
}
}

View File

@@ -2,13 +2,21 @@ package com.yexue.android.hexiprv.sys;
import android.util.Log;
import com.yexue.android.hexiprv.bean.ResultData;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import rx.Observer;
import rx.Subscriber;
import rx.Subscription;
import rx.functions.Action1;
/**
* @author yexue
* @version 1.0
* @name com.yexue.android.hexiprv.sys
* @explain
* @explain 完整BaseObserver
* @time 2017/7/11 15:00
*/
public class BaseObserver<T> implements Observer<T> {
@@ -23,7 +31,7 @@ public class BaseObserver<T> implements Observer<T> {
*/
@Override
public void onCompleted() {
callBack.onComplete(0, null);
//callBack.onComplete(0, null);
}
/**
@@ -61,4 +69,43 @@ public class BaseObserver<T> implements Observer<T> {
*/
public void onComplete(int code, T t);
}
/**
* 创建观察者
* @param callBack
* @return
*/
public static <T> BaseObserver newObservable(HttpCallBack<? super T> callBack) {
return new BaseObserver<T>(callBack);
}
/**
* 创建观察者
*
* @param onNext
* @param <T>
* @return
*/
public static <T> Subscriber newSubscriber(final Subscription subscription, final Action1<? super T> onNext) {
return new Subscriber<T>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(T t) {
//TODO subscription.isUnsubscribed()=true
if (!subscription.isUnsubscribed()) {
onNext.call(t);
}
}
};
}
}

View File

@@ -6,6 +6,7 @@ import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import com.yexue.android.hexiprv.sys.AppUtils;
import com.yexue.android.hexiprv.ui.dialog.DialogLoading;
import butterknife.ButterKnife;
import rx.Subscription;
@@ -63,4 +64,29 @@ public abstract class BaseActivity extends Activity {
* </pre>
*/
protected abstract void onInitLayoutAfter();
/***********************************加载框********************************************/
/**
* 显示加载框
*/
protected void showLoadingDialog() {
if (loading == null) {
loading = new DialogLoading(this);
}
loading.show();
}
/**
* 关闭加载框
*/
protected void hideLoadingDialog() {
if (loading != null) {
loading.dismiss();
}
}
private DialogLoading loading;
/***********************************加载框********************************************/
}

View File

@@ -0,0 +1,31 @@
package com.yexue.android.hexiprv.ui.dialog;
import android.app.Dialog;
import android.content.Context;
import android.widget.TextView;
import com.yexue.android.hexiprv.R;
/**
* @author yexue
* @version 1.0
* @name com.yexue.android.hexiprv.ui.dialog
* @explain
* @time 2017/7/13 10:41
*/
public class DialogLoading extends Dialog {
private TextView loadingLabel;
public DialogLoading(Context context) {
super(context, R.style.Dialog);
setContentView(R.layout.dialog_loading_layout);
setCanceledOnTouchOutside(false);
loadingLabel = (TextView) findViewById(R.id.loading_text);
}
public void setDialogLabel(String label) {
loadingLabel.setText(label);
}
}

View File

@@ -1,5 +1,7 @@
package com.yexue.android.hexiprv.ui.main;
import com.yexue.android.hexiprv.bean.ResultData;
/**
* @author yexue
* @version 1.0
@@ -8,4 +10,7 @@ package com.yexue.android.hexiprv.ui.main;
* @time 2017/7/11 11:50
*/
public interface IMainView {
void updateInit(String resulrStr);
void updateList(String resultStr);
}

View File

@@ -1,16 +1,17 @@
package com.yexue.android.hexiprv.ui.main;
import android.os.Bundle;
import android.widget.TextView;
import com.yexue.android.hexiprv.R;
import com.yexue.android.hexiprv.bean.ResultData;
import com.yexue.android.hexiprv.ui.base.MvpActivity;
import butterknife.Bind;
import butterknife.ButterKnife;
public class MainActivity extends MvpActivity<IMainView, MainPresenter> implements IMainView {
@Bind(R.id.pptIco_list_all)
TextView pptIcoListAll;
@Bind(R.id.pptIco_list)
TextView pptIcoList;
@@ -21,11 +22,24 @@ public class MainActivity extends MvpActivity<IMainView, MainPresenter> implemen
@Override
protected void onInitLayoutAfter() {
objBeanPresenter.loadInit();
showLoadingDialog();//显示加载框
objBeanPresenter.loadInit();//到presenter去处理逻辑加载数据
}
@Override
protected MainPresenter ceatePresenter() {
return new MainPresenter(subscription);
}
@Override
public void updateInit(String resultStr) {
hideLoadingDialog();
pptIcoListAll.setText(resultStr);
}
@Override
public void updateList(String resultStr) {
hideLoadingDialog();
pptIcoList.setText(resultStr);
}
}

View File

@@ -1,13 +1,13 @@
package com.yexue.android.hexiprv.ui.main;
import android.content.Context;
import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yexue.android.hexiprv.R;
import com.yexue.android.hexiprv.bean.ResultData;
import com.yexue.android.hexiprv.bean.ResultPptIco;
import com.yexue.android.hexiprv.bean.ResultPptIcoGsonFormat;
import com.yexue.android.hexiprv.bean.ResultPptIcoMap;
import com.yexue.android.hexiprv.bean.ResultPptIcoItem;
import com.yexue.android.hexiprv.model.impl.PptIcoImpl;
import com.yexue.android.hexiprv.sys.BaseObserver;
import com.yexue.android.hexiprv.ui.base.BasePresenter;
@@ -15,10 +15,9 @@ import com.yexue.android.hexiprv.utils.T;
import java.io.File;
import rx.Observable;
import rx.Observer;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.schedulers.Schedulers;
/**
@@ -43,33 +42,80 @@ public class MainPresenter extends BasePresenter<IMainView> {
* </pre>
*/
public void loadInit() {
/***
* 请求第一种方式
*/
subscription = PptIcoImpl.getPptIco()
.listALL()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getInitObservable());
.subscribe(getInitObservable(ResultPptIcoGsonFormat.class));
loadList("SY_BOT_TB");
}
private BaseObserver getInitObservable() {
return new BaseObserver<ResultData<ResultPptIcoGsonFormat>>(new BaseObserver.HttpCallBack<ResultData<ResultPptIcoGsonFormat>>() {
private <S> BaseObserver getInitObservable(final Class<S> resultDataClass) {
return new BaseObserver<ResultData<S>>(new BaseObserver.HttpCallBack<ResultData<S>>() {
@Override
public void onComplete(int code, ResultData<ResultPptIcoGsonFormat> resultData) {
switch (code) {
case 0:
break;
case 200:
Log.e("resule",resultData.toString());
break;
case 500:
T.showShort(getContext(), getContext().getString(R.string.error_code_500));
break;
}
public void onComplete(int code, ResultData<S> resultDataClass) {
onComplete4Init(code, resultDataClass);//okHttp请求网络之后回调
}
});
}
private <S> void onComplete4Init(int code, ResultData<S> resultDataClass) {
String resultStr = "";
switch (code) {
case 200://请求成功
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(resultDataClass.toString());
System.out.println(json);
Log.e("resule", json);
resultStr = json;
break;
case 500://请求失败
T.showShort(getContext(), getContext().getString(R.string.error_code_500));
break;
}
//返回到UI的处理 *ps: 更改UI数据通过view回调到UI(activity)*
IMainView view = getView();
if (view != null) {
view.updateInit(resultStr);
}
}
public void uploadImg(File file,String method){
/**
* 获取指定图标
*
* @param pptKey
*/
public void loadList(String pptKey) {
/**
* 请求第二种方式
*/
subscription = PptIcoImpl.getPptIco()
.list(pptKey)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver.newSubscriber(subscription,new Action1<ResultPptIcoItem>() {
@Override
public void call(ResultPptIcoItem resultPptIcoItem) {
//TODO 回调失败
onComplete4List(resultPptIcoItem);
}
}));
}
private void onComplete4List(ResultPptIcoItem resultDataClass) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(resultDataClass.toString());
Log.e("resule", json);
IMainView view = getView();
if (view != null) {
view.updateList(json);
}
}
public void uploadImg(File file, String method) {
}

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:angle="270.0"
android:centerColor="#99000000"
android:centerY="0.5"
android:endColor="#99000000"
android:startColor="#99000000" >
</gradient>
<corners android:radius="5dip" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
</shape>

View File

@@ -4,16 +4,33 @@
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="https://shop.globalhexi.cn/shop/pptIco/list?pptKey=SY_BOT_TB" />
android:layout_height="match_parent">
<TextView
android:id="@+id/pptIco_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!"
android:background="@color/gray"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="https://shop.globalhexi.cn/shop/pptIco/list?pptKey=SY_BOT_TB" />
<TextView
android:id="@+id/pptIco_list_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray"
android:text="Hello World!" />
<TextView
android:id="@+id/pptIco_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/lavender_blush"
android:text="Hello World!" />
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_dialog"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="140dip"
android:layout_height="140dip"
android:layout_centerInParent="true"
android:background="@drawable/loading_progress_bg"
android:gravity="center"
android:orientation="vertical" >
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/loading_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="加载中"
android:textColor="#B4B4B4" />
</LinearLayout>
</RelativeLayout>

View File

@@ -4,4 +4,8 @@
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="gray">#dddddd</color>
<!--脸红的淡紫色-->
<color name="lavender_blush">#FFF0F5</color>
<!---->
<color name="thistle">#D8BFD8</color>
</resources>

View File

@@ -8,4 +8,21 @@
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="Dialog" parent="@android:style/Theme.Holo.Dialog">
<item name="android:windowSoftInputMode">stateHidden|adjustResize</item>
<!-- 边框 -->
<item name="android:windowFrame">@null</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsFloating">true</item>
<!-- 半透明 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 无标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 背景透明 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 模糊 -->
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>