Forráskód Böngészése

baseUrl 可配置化设置。

zhaoyi 8 éve
szülő
commit
bba505dc3b

+ 14 - 3
app/src/main/java/com/jiuyan/sheep_children/Config.java

@@ -5,9 +5,20 @@ package com.jiuyan.sheep_children;
  */
 
 public class Config {
-    public static String mBaseUrl = "http://10.8.220.213:8088";
+    static Config mConfig = new Config();
 
-    public String getBaseUrl() {
-        return mBaseUrl;
+    private Config() {
+
+    }
+
+    public static Config instance() {
+        return mConfig;
+    }
+
+    public String mBaseUrl = "http://10.8.220.213:8088";
+    public String[] mUrlList = new String[]{"http://10.8.220.213:8088", "http://10.8.220.213:8089", "http://10.8.220.250:8088"};
+
+    public void setBaseUrl(String url) {
+        this.mBaseUrl = url;
     }
 }

+ 4 - 3
app/src/main/java/com/jiuyan/sheep_children/net/NetManager.java

@@ -2,6 +2,7 @@ package com.jiuyan.sheep_children.net;
 
 import android.content.Context;
 
+import com.jiuyan.sheep_children.SheepApp;
 import com.readystatesoftware.chuck.ChuckInterceptor;
 
 import java.io.File;
@@ -46,7 +47,7 @@ public class NetManager {
     }
 
 
-    public static void get(String url, Map<String, String> parma, Context context, Callback callback) {
+    public static void get(String url, Map<String, String> parma, Context context, SheepCallback callback) {
         if (parma != null) {
             String param = "";
             for (Map.Entry<String, String> el : parma.entrySet()) {
@@ -59,7 +60,7 @@ public class NetManager {
         getInstancce(context).newCall(request).enqueue(callback);
     }
 
-    public static void post(String url, Map<String, String> parma, Context context, Callback callback) {
+    public static void post(String url, Map<String, String> parma, Context context, SheepCallback callback) {
         FormBody.Builder builder = new FormBody.Builder();
         for (Map.Entry<String, String> el : parma.entrySet()) {
             builder.add(el.getKey(), el.getValue());
@@ -69,7 +70,7 @@ public class NetManager {
         getInstancce(context).newCall(request).enqueue(callback);
     }
 
-    public static void upload(String url, Map<String, String> parma, File file, Context context, Callback callback) {
+    public static void upload(String url, Map<String, String> parma, File file, Context context, SheepCallback callback) {
         String param = "";
         for (Map.Entry<String, String> el : parma.entrySet()) {
             param += el.getKey() + "=" + el.getValue();

+ 17 - 2
app/src/main/java/com/jiuyan/sheep_children/net/SheepCallback.java

@@ -1,12 +1,14 @@
 package com.jiuyan.sheep_children.net;
 
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Looper;
 import android.widget.Toast;
 
 import com.google.gson.internal.$Gson$Types;
 import com.google.gson.reflect.TypeToken;
 import com.jiuyan.sheep_children.SheepApp;
+import com.jiuyan.sheep_children.page.LoginActivity;
 import com.jiuyan.sheep_children.utils.GsonUtil;
 
 import java.io.IOException;
@@ -46,8 +48,9 @@ public abstract class SheepCallback<T> implements Callback {
 
     @Override
     public void onResponse(Call call, final Response response) throws IOException {
+        final int code = response.code();
         final String string = response.body().string();
-        if (response.code() == 200) {
+        if (code == 200) {
             final T data = (T) GsonUtil.getEntry(string, mType);
             mActivity.runOnUiThread(new Runnable() {
                 @Override
@@ -56,15 +59,27 @@ public abstract class SheepCallback<T> implements Callback {
                 }
             });
 
+        } else if (code == 401) {
+            mActivity.runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    Intent intent = new Intent(mActivity, LoginActivity.class);
+                    intent.putExtra("come", "other");
+                    mActivity.startActivity(intent);
+                }
+            });
         } else {
             mActivity.runOnUiThread(new Runnable() {
                 @Override
                 public void run() {
-                    Toast.makeText(SheepApp.mContext, string, Toast.LENGTH_SHORT).show();
+                    otherCode(code, string);
                 }
             });
         }
+    }
 
+    public void otherCode(int code, String string) {
+        Toast.makeText(SheepApp.mContext, string, Toast.LENGTH_SHORT).show();
     }
 
     public abstract void success(T t);

+ 4 - 3
app/src/main/java/com/jiuyan/sheep_children/net/Url.java

@@ -7,8 +7,9 @@ import com.jiuyan.sheep_children.Config;
  */
 
 public class Url {
-    public static String UPLOAD_IMG = Config.mBaseUrl + "/v1/up/";
-    public static String PUBLISH_TASKS = Config.mBaseUrl + "/v1/task_publish/getTasks/";
-    public static String BIND_WX = Config.mBaseUrl + "/v1/user/bindWx";
+    public static String UPLOAD_IMG = Config.instance().mBaseUrl + "/v1/up/";
+    public static String PUBLISH_TASKS =Config.instance().mBaseUrl + "/v1/task_publish/getTasks/";
+    public static String BIND_WX = Config.instance().mBaseUrl + "/v1/user/bindWx";
+    public static String USER_INFO=Config.instance().mBaseUrl + "/v1/user/getUserInfo";
 
 }

+ 56 - 0
app/src/main/java/com/jiuyan/sheep_children/page/LoginActivity.java

@@ -1,9 +1,19 @@
 package com.jiuyan.sheep_children.page;
 
+import android.app.AlertDialog;
+import android.app.Dialog;
 import android.content.Intent;
+import android.os.Build;
+import android.support.design.widget.TextInputEditText;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.TextView;
 
+import com.jiuyan.sheep_children.BuildConfig;
+import com.jiuyan.sheep_children.Config;
 import com.jiuyan.sheep_children.R;
 import com.jiuyan.sheep_children.base.BaseActivity;
 import com.jiuyan.sheep_children.utils.SpUtils;
@@ -14,6 +24,7 @@ import com.jiuyan.sheep_children.utils.SpUtils;
 
 public class LoginActivity extends BaseActivity {
     private ImageView mImgLogin;
+    private AlertDialog mDialog;
 
     @Override
     protected int getLayoutId() {
@@ -42,9 +53,54 @@ public class LoginActivity extends BaseActivity {
                 finish();
             }
         });
+        if (BuildConfig.DEBUG)
+            mImgLogin.setOnLongClickListener(new View.OnLongClickListener() {
+                @Override
+                public boolean onLongClick(View v) {
+                    initDialog();
+                    return true;
+                }
+            });
+    }
+
+    private void initDialog() {
+        if (mDialog == null) {
+            final View view = View.inflate(this, R.layout.baseurl_dialog, null);
+            final RadioGroup mRgUrl = (RadioGroup) view.findViewById(R.id.rg_url);
+            final TextInputEditText mEtUrl = (TextInputEditText) view.findViewById(R.id.et_url);
+            TextView tvEnter = (TextView) view.findViewById(R.id.tv_enter);
+            for (String url : Config.instance().mUrlList) {
+                RadioButton button = new RadioButton(this);
+                button.setText(url);
+                mRgUrl.addView(button);
+            }
+            AlertDialog.Builder builder = new AlertDialog.Builder(this);
+            mDialog = builder.setView(view).create();
+            mDialog.setCanceledOnTouchOutside(true);
+            tvEnter.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    String url = mEtUrl.getText().toString().trim();
+                    if (TextUtils.isEmpty(url)) {
+                        int id = mRgUrl.getCheckedRadioButtonId();
+                        if (id != -1) {
+                            RadioButton btn = view.findViewById(id);
+                            url = btn.getText().toString().trim();
+                        }
+                    }
+                    if (!TextUtils.isEmpty(url)) {
+                        Config.instance().setBaseUrl(url);
+                    }
+                    mDialog.dismiss();
+                }
+            });
+        }
+        mDialog.show();
     }
 
     private void loginFromWx() {
         SpUtils.login(this, "testkajhsdasdjoasd");
     }
+
+
 }

+ 11 - 9
app/src/main/java/com/jiuyan/sheep_children/page/MainActivity.java

@@ -22,6 +22,7 @@ import android.widget.Toast;
 
 import com.google.gson.reflect.TypeToken;
 import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.jiuyan.sheep_children.BuildConfig;
 import com.jiuyan.sheep_children.R;
 import com.jiuyan.sheep_children.base.BaseActivity;
 import com.jiuyan.sheep_children.event.FloatMsg;
@@ -74,15 +75,16 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
     @Override
     public void initListener() {
         mTvWithdraw.setOnClickListener(this);
-        mTvWithdraw.setOnLongClickListener(new View.OnLongClickListener() {
-
-            @Override
-            public boolean onLongClick(View v) {
-                Intent intent = Chuck.getLaunchIntent(MainActivity.this);
-                startActivity(intent);
-                return true;
-            }
-        });
+        if (BuildConfig.DEBUG)
+            mTvWithdraw.setOnLongClickListener(new View.OnLongClickListener() {
+
+                @Override
+                public boolean onLongClick(View v) {
+                    Intent intent = Chuck.getLaunchIntent(MainActivity.this);
+                    startActivity(intent);
+                    return true;
+                }
+            });
     }
 
 

+ 16 - 1
app/src/main/java/com/jiuyan/sheep_children/page/WithdrawActivity.java

@@ -14,9 +14,13 @@ import android.widget.GridView;
 import android.widget.ImageView;
 import android.widget.RadioButton;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.jiuyan.sheep_children.R;
 import com.jiuyan.sheep_children.base.BaseActivity;
+import com.jiuyan.sheep_children.net.NetManager;
+import com.jiuyan.sheep_children.net.SheepCallback;
+import com.jiuyan.sheep_children.net.Url;
 import com.jiuyan.sheep_children.utils.SpUtils;
 
 /**
@@ -81,7 +85,18 @@ public class WithdrawActivity extends BaseActivity implements View.OnClickListen
         if (!SpUtils.isLogin(getApplicationContext())) {
             startActivity(new Intent(this, LoginActivity.class));
         } else {
-            startActivity(new Intent(this, BindWxActivity.class));
+            NetManager.get(Url.BIND_WX, null, getApplicationContext(), new SheepCallback<String>(this) {
+                @Override
+                public void success(String o) {
+                    Toast.makeText(WithdrawActivity.this, o, Toast.LENGTH_SHORT).show();
+                }
+
+                @Override
+                public void otherCode(int code, String string) {
+                    if (code == 406)
+                        startActivity(new Intent(WithdrawActivity.this, BindWxActivity.class));
+                }
+            });
         }
     }
 

+ 33 - 0
app/src/main/res/layout/baseurl_dialog.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical">
+
+    <RadioGroup
+        android:id="@+id/rg_url"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="15dp"
+        android:gravity="center"
+        android:orientation="vertical">
+    </RadioGroup>
+
+    <android.support.design.widget.TextInputEditText
+        android:id="@+id/et_url"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="15dp"
+        android:hint="请输入服务器地址"/>
+
+    <TextView
+        android:id="@+id/tv_enter"
+        android:layout_width="200dp"
+        android:layout_height="30dp"
+        android:layout_gravity="center"
+        android:layout_margin="15dp"
+        android:background="@drawable/text_backgroud"
+        android:gravity="center"
+        android:text="确定"
+        android:textColor="@drawable/text_color"/>
+</LinearLayout>