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