7 changed files with 204 additions and 10 deletions
-
4app/build.gradle
-
51app/src/main/java/com/ouxuan/oxface/DebugActivity.java
-
5app/src/main/java/com/ouxuan/oxface/network/NetworkConfig.java
-
84app/src/main/java/com/ouxuan/oxface/network/NetworkEnvironmentManager.java
-
29app/src/main/java/com/ouxuan/oxface/network/NetworkManager.java
-
10app/src/main/java/com/ouxuan/oxface/network/utils/NetworkUtils.java
-
31app/src/main/res/layout/activity_debug.xml
@ -0,0 +1,84 @@ |
|||||
|
package com.ouxuan.oxface.network; |
||||
|
|
||||
|
import android.content.Context; |
||||
|
import android.content.SharedPreferences; |
||||
|
|
||||
|
/** |
||||
|
* 网络环境管理器 |
||||
|
* 用于管理正式环境和测试环境的切换 |
||||
|
*/ |
||||
|
public class NetworkEnvironmentManager { |
||||
|
|
||||
|
private static final String PREF_NAME = "network_environment"; |
||||
|
private static final String KEY_CURRENT_ENV = "current_environment"; |
||||
|
|
||||
|
// 环境类型 |
||||
|
public static final int ENVIRONMENT_PRODUCTION = 0; // 正式环境 |
||||
|
public static final int ENVIRONMENT_TEST = 1; // 测试环境 |
||||
|
|
||||
|
private static NetworkEnvironmentManager instance; |
||||
|
private SharedPreferences sharedPreferences; |
||||
|
|
||||
|
private NetworkEnvironmentManager(Context context) { |
||||
|
sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); |
||||
|
} |
||||
|
|
||||
|
public static NetworkEnvironmentManager getInstance(Context context) { |
||||
|
if (instance == null) { |
||||
|
synchronized (NetworkEnvironmentManager.class) { |
||||
|
if (instance == null) { |
||||
|
instance = new NetworkEnvironmentManager(context.getApplicationContext()); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return instance; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取当前环境类型 |
||||
|
* @return 环境类型 (ENVIRONMENT_PRODUCTION 或 ENVIRONMENT_TEST) |
||||
|
*/ |
||||
|
public int getCurrentEnvironment() { |
||||
|
return sharedPreferences.getInt(KEY_CURRENT_ENV, ENVIRONMENT_PRODUCTION); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 切换到下一个环境 |
||||
|
* @return 切换后的环境类型 |
||||
|
*/ |
||||
|
public int toggleEnvironment() { |
||||
|
int currentEnv = getCurrentEnvironment(); |
||||
|
int newEnv = (currentEnv == ENVIRONMENT_PRODUCTION) ? ENVIRONMENT_TEST : ENVIRONMENT_PRODUCTION; |
||||
|
saveEnvironment(newEnv); |
||||
|
return newEnv; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 设置环境类型 |
||||
|
* @param environment 环境类型 |
||||
|
*/ |
||||
|
public void setEnvironment(int environment) { |
||||
|
saveEnvironment(environment); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 保存环境设置 |
||||
|
* @param environment 环境类型 |
||||
|
*/ |
||||
|
private void saveEnvironment(int environment) { |
||||
|
sharedPreferences.edit().putInt(KEY_CURRENT_ENV, environment).apply(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取当前环境的BASE_URL |
||||
|
* @return BASE_URL |
||||
|
*/ |
||||
|
public String getCurrentBaseUrl() { |
||||
|
int currentEnv = getCurrentEnvironment(); |
||||
|
if (currentEnv == ENVIRONMENT_TEST) { |
||||
|
return NetworkConfig.BASE_URL_TEST; |
||||
|
} else { |
||||
|
return NetworkConfig.BASE_URL_FORMAT; |
||||
|
} |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue